【Kubernetes】(二)k8s基础—— k8s集群架构
目录
2.1 控制平面(Control Plane):集群的 “大脑”
(4)Controller Manager(kube-controller-manager)
(5) Cloud Controller Manager(可选)
2.2 节点组件(Node Components):工作节点的 “基础设施”
Kubernetes(k8s)集群的架构是一个多层次协同的系统,核心由控制平面、节点组件和附加组件构成,各部分分工明确又紧密协作,共同支撑集群的完整功能。
ps:要理解k8s集群架构,首先需要明白k8s中的Node和Pod(在【Kubernetes】2-1 中,会详细讲解k8s中的Node和Pod)
一、k8s集群架构图
1.1 k8s集群组件图(源于k8s官方文档)

1.2 k8s集群与组件层级关系图
Kubernetes 集群由一个控制平面和一组用于运行容器化应用的工作机器组成(Master-Worker架构):
Master-Node负责管理整个集群(管理),Worker-Node负责运行应用程序和服务(干活);
在生产环境中,控制平面通常跨多台计算机运行,而一个集群通常运行多个节点,以提供容错和高可用。

二、k8s集群架构(详细版)
2.1 控制平面(Control Plane):集群的 “大脑”
控制平面负责全局决策(如调度、扩缩容、自愈),是集群的核心管理中枢,核心组件包括:
(1)API Server(kube-apiserver)
- 作用:集群的 “前端网关”,暴露 Kubernetes API(接收 kubectl 命令、UI 或第三方系统的请求),负责认证、授权、准入控制,并将所有资源状态持久化到 etcd。
- 特点:唯一与 etcd 直接交互的组件;支持水平扩展(多副本部署);可通过自定义 API 扩展功能。
(2)etcd
- 作用:分布式键值存储,保存集群的所有资源状态(如 Pod、Node、Service 的配置与运行状态)。
- 特点:基于 Raft 协议保证强一致性;生产环境需多节点集群部署(避免单点故障);支持快照备份与恢复。
(3)Scheduler(kube-scheduler)
- 作用:为新创建的 Pod 选择合适的 Node,基于资源需求(CPU / 内存)、亲和性 / 反亲和性、污点与容忍度等策略。
- 特点:通过 “过滤(Predicates)+ 打分(Priorities)” 算法选择最优节点;支持自定义调度插件。
(4)Controller Manager(kube-controller-manager)
- 作用:运行各类控制器,持续对比集群 “期望状态” 与 “实际状态”,自动修复偏差。
- 核心子控制器:
- Endpoint 控制器:维护 Service 与 Pod 的关联(自动更新 Endpoints 对象)。
- Node 控制器:监控 Node 健康状态,标记故障节点并驱逐其上的 Pod;
- ReplicaSet 控制器:确保 Pod 副本数符合预期;
(5) Cloud Controller Manager(可选)
- 作用:对接云服务商(如 AWS、阿里云)的基础设施,管理负载均衡器(Service 类为 LoadBalancer 时)、存储卷(如云盘挂载)、节点生命周期(如自动发现新节点)。
- 场景:仅在云环境中需要,自建集群可省略。
2.2 节点组件(Node Components):工作节点的 “基础设施”
节点组件是运行在每个工作节点(Worker Node)上的核心进程,负责管理本地 Pod、与控制平面通信、实现网络 / 存储功能,是 Pod 运行的基础:
(1)kubelet
- 作用:节点的 “管家”,是控制平面与节点之间的 “桥梁”,负责管理节点上的 Pod 生命周期
- 核心功能:
- 管理 Pod 与节点的存储卷挂载(如 PV/PVC 对应的本地路径)。
- 向控制平面上报节点状态(如资源使用率、是否 Ready)和 Pod 状态(如 Running、Pending);
- 执行 Pod 的健康检查(Liveness Probe、Readiness Probe、Startup Probe),异常时按重启策略处理;
- 监听 API Server 下发的 Pod 调度指令,调用容器运行时启动 / 停止 Pod 中的容器;
- 运行方式:以系统服务(如 systemd 服务)形式运行,节点启动时优先启动(需先于所有 Pod)。
(2) kube-proxy
- 作用:实现 Service 的网络代理功能,确保 Pod 之间、外部与 Pod 之间的通信。
- 核心功能:
- 实现 NodePort 类型 Service 的端口映射(节点端口→Service 端口)。
- 支持 Service 负载均衡(默认轮询),自动剔除不健康的 Pod(基于 Endpoints 状态);
- 维护节点上的网络规则(如 iptables 或 ipvs),将 Service 的虚拟 IP(ClusterIP)流量转发到后端 Pod;
- 运行方式:通常以 DaemonSet 形式部署为 Pod(每个节点一个副本),依赖节点网络配置。
(3) 容器运行时(Container Runtime)
- 作用:负责容器的实际创建、运行、销毁,是 Pod 中容器的 “运行引擎”。
- 常见实现:
- Docker:需配合 cri-dockerd 适配器(因 Docker 本身不直接支持 CRI)。
- CRI-O:专为 Kubernetes 设计的轻量级运行时,直接兼容 CRI;
- containerd:Kubernetes 推荐的默认运行时,轻量且符合 CRI(容器运行时接口);
- 核心功能:接收 kubelet 指令(通过 CRI 接口),拉取镜像、创建容器(调用底层 runc),实现资源隔离(CPU / 内存限制)。
- 运行方式:以系统服务(如 containerd.service)形式运行,直接与操作系统内核交互(如通过 cgroups 限制资源)。
(4) CNI 网络插件(容器网络接口)
- 作用:为 Pod 配置网络(分配 IP、设置路由),实现跨节点 Pod 通信,是 Kubernetes 网络模型的核心。
- 常见方案:
- Cilium:基于 eBPF 的高性能网络,支持 L7 流量控制和服务网格功能。
- Flannel:简单的 overlay 网络(如 VXLAN),适合入门场景;
- Calico:基于 BGP 的三层网络,支持网络策略(NetworkPolicy),性能优异;
- 核心功能:为每个 Pod 分配唯一 IP(从节点的 PodCIDR 网段),配置 Pod 与节点的网络链路(如 veth 对),实现跨节点通信(隧道或路由)。
- 运行方式:通常以 DaemonSet 形式部署(如 calico-node Pod),由 kubelet 通过 /etc/cni/net.d 配置文件调用。
(5) CSI 节点插件(可选,容器存储接口)
- 作用:配合控制平面的 CSI 控制器,实现存储卷在节点上的挂载与管理,为 Pod 提供持久化存储。
- 核心功能:将远程存储(如 Ceph、云盘)或本地存储(如 hostPath)挂载到 Pod 的挂载点,处理卷的格式化、权限设置。
- 运行方式:以 DaemonSet 形式部署(如 csi-node-driver),每个节点一个副本,与 kubelet 和容器运行时协同工作。
2.3 附加组件:扩展集群功能的 “支撑系统”
这些组件负责网络通信、存储管理、流量路由、监控告警等 “支撑性” 工作,是集群功能完整的关键:
(1)服务网格(Service Mesh)
- 作用:管理服务间的通信(流量路由、熔断、限流、可观测性),无需修改业务代码。
- 代表方案:Istio(通过 Sidecar 代理注入 Pod,实现微服务治理)。
(2) 可观测性系统
-
监控:
- Prometheus:采集节点、Pod、Service 的 metrics(如 CPU 使用率、请求延迟);
- Grafana:可视化监控指标,生成大盘。
-
日志:
- Fluentd + Elasticsearch + Kibana(EFK):采集 Pod 日志,支持检索与分析;
- Loki:轻量级日志系统,与 Prometheus 无缝集成。
-
告警:
-
Alertmanager:基于 Prometheus 规则发送告警(邮件、Slack 等)。
-
(3)Ingress 控制器
- 作用:统一管理外部流量入口,通过域名路由到不同 Service。
- 常见方案:Nginx Ingress Controller、HAProxy Ingress、Traefik。
(4)命令行工具与 UI
- kubectl:官方命令行工具,与 API Server 交互;
- Kubernetes Dashboard:Web 界面,可视化管理集群(需单独部署)。
(5)批处理与 CI/CD 组件
- Job/CronJob:管理一次性或定时任务(如数据备份、CI 构建);
- ArgoCD/FluxCD:实现 GitOps 风格的持续部署(自动同步代码仓库与集群状态)。
总结
Kubernetes 集群的架构是 “核心 + 扩展” 的协同体系:
- 控制平面(API Server、etcd、Scheduler 等)是 “决策中枢”,负责全局管理与调度;
- 节点组件(kubelet、kube-proxy、容器运行时等)是 “执行载体”,支撑 Pod 运行与节点级资源管理;
- 附加组件(服务网格、可观测性系统等)是 “功能扩展”,增强集群的网络、存储、运维能力。
三者协同工作,使 Kubernetes 成为一个功能完整的 “分布式系统运行框架”,能够支撑从简单应用到复杂微服务的全生命周期管理。
更多推荐


所有评论(0)