K8s-Outline

kubernete 概述。

Kubernetes(k8s)是一个复杂的容器编排系统,包含多个核心概念和资源对象。

以下是按功能分类的 Kubernetes 主要概念列表


一、基础核心概念

概念作用
Pod最小的部署单元,包含一个或多个容器(共享网络/存储命名空间)。
Node工作节点(物理机或虚拟机),运行 Pod 的宿主机。
Cluster由多个 Node 组成的 Kubernetes 集群。
Namespace逻辑上的资源隔离单元(如 dev/prod),用于多租户或环境隔离。

二、工作负载(Workloads)

概念作用
Deployment管理无状态应用的 Pod 副本,支持滚动更新和回滚。
StatefulSet管理有状态应用(如数据库),提供稳定的网络标识和持久化存储。
DaemonSet确保每个 Node 上运行一个指定的 Pod(如日志收集器)。
ReplicaSet确保指定数量的 Pod 副本运行(通常由 Deployment 自动管理)。
Job运行一次性任务,任务完成后 Pod 退出。
CronJob定时运行的 Job(类似 Linux Cron)。

三、网络与访问

概念作用
Service为 Pod 提供稳定的 IP/DNS 和负载均衡,类型包括:
- ClusterIP(集群内访问)
- NodePort(通过节点端口暴露)
- LoadBalancer(云厂商负载均衡器)
Ingress通过 HTTP/HTTPS 路由规则暴露服务(需配合 Ingress Controller 使用)。
Ingress Controller实现 Ingress 规则的组件(如 Nginx、Traefik)。
Endpoint记录 Service 后端 Pod 的 IP 和端口列表(自动维护)。
NetworkPolicy定义 Pod 之间的网络访问规则(如防火墙)。

四、存储管理

概念作用
VolumePod 中挂载的存储卷(生命周期与 Pod 绑定)。
PersistentVolume (PV)集群级别的持久化存储资源(如云磁盘/NFS)。
PersistentVolumeClaim (PVC)用户对 PV 的申请(类似“存储接口”)。
StorageClass定义动态分配 PV 的存储类型(如 standard/ssd)。

五、配置与安全

概念作用
ConfigMap存储非敏感的配置数据(如环境变量、配置文件)。
Secret存储敏感数据(如密码、密钥),以 Base64 编码。
ServiceAccount为 Pod 分配身份,用于权限控制(与 RBAC 配合)。
RBAC基于角色的访问控制(Role/ClusterRole + RoleBinding)。
ResourceQuota限制 Namespace 的资源使用量(如 CPU/内存/Pod 数量)。
LimitRange限制 Namespace 中单个 Pod/容器的资源范围。

六、扩展与运维

概念作用
CustomResourceDefinition (CRD)自定义资源类型,扩展 Kubernetes API。
Operator基于 CRD 的自动化运维框架(如管理数据库、中间件)。
HorizontalPodAutoscaler (HPA)根据 CPU/内存等指标自动扩缩 Pod 数量。
VerticalPodAutoscaler (VPA)自动调整 Pod 的资源请求(CPU/内存)。
HelmKubernetes 包管理工具,通过 Chart 定义和部署应用。

七、监控与调度

概念作用
Kubelet运行在 Node 上的代理,负责管理 Pod 生命周期。
kube-scheduler调度器,决定 Pod 运行在哪个 Node 上(基于资源、亲和性等)。
kube-proxy维护节点上的网络规则(如 Service 的负载均衡)。
Metrics Server收集集群资源指标(用于 HPA/Dashboard)。
Prometheus第三方监控系统,常用于 Kubernetes 指标采集和告警。
Grafana可视化监控数据(通常与 Prometheus 配合)。

八、其他重要概念

概念作用
Label键值对标签,用于资源分类和选择(如 app=frontend)。
Selector通过 Label 筛选资源(如 Service 选择 Pod)。
Annotation非标识性元数据(如构建信息、配置说明)。
Taint/Toleration控制 Pod 能否调度到特定 Node(如专用节点)。
Affinity/Anti-Affinity定义 Pod 的调度偏好(如“尽量运行在同一可用区”)。