当前位置: 首页 > news >正文

Kubernetes集群架构组件全解

前言

Kubernetes(简称 K8S)是目前业界主流的容器编排引擎,核心能力是实现容器化应用的自动化部署、弹性扩缩容、自愈与生命周期管理。想要真正掌握 K8S,吃透集群架构与核心组件的职责、协作逻辑是必经之路。

本文将从零拆解 K8S 集群的完整架构,清晰划分组件边界,讲透每个组件的核心作用、工作原理与协作流程,无论是入门学习还是面试备考,都能作为体系化的参考资料。

一、K8S 集群整体架构

K8S 采用经典的中心化分布式架构,整体划分为两大核心平面,所有组件协同工作,共同实现集群的声明式控制能力:

  • 控制平面(Control Plane):也叫 Master 节点,是集群的「大脑」,负责集群的全局决策、资源调度、状态管控与 API 暴露,不直接运行业务容器。
  • 数据平面(Data Plane):也叫 Worker/Node 节点,是集群的「手脚」,负责接收控制平面的指令,真正运行业务 Pod(容器组),处理集群网络与流量转发。

核心设计理念:K8S 的核心是声明式 API + 控制循环(调谐 Reconcile)。用户只需要通过 API 提交「期望状态」,集群各个组件会持续监听状态,自动将集群实际状态调谐至与期望状态一致,这也是 K8S 自愈能力的核心来源。

二、控制平面核心组件详解

控制平面是集群的管控核心,生产环境中建议至少 3 节点高可用部署,避免单点故障。其核心组件均运行在 Master 节点上,职责划分清晰,且所有组件仅通过kube-apiserver通信,无直接交互。

1. kube-apiserver:集群唯一入口与 API 网关

kube-apiserver是 K8S 集群的唯一前端入口,也是所有组件通信的唯一枢纽,更是声明式 API 的核心载体。

  • 核心职责
    1. 暴露 K8S RESTful API,处理所有集群操作请求(包括 kubectl 命令、控制台操作、组件间调用);
    2. 完成请求的全链路校验:身份认证(Authentication)、权限授权(Authorization)、准入控制(Admission Control)
    3. 唯一能与 etcd 集群直接交互的组件,负责集群状态的读写与持久化;
    4. 基于 watch 机制,向其他组件推送资源状态变更事件,是控制循环的触发核心。
  • 关键特性:无状态设计,支持水平扩容,生产环境可多实例部署提升可用性与并发能力。

2. etcd:集群的唯一状态数据库

etcd 是一款高可用的分布式键值(KV)存储数据库,是 K8S 集群唯一的持久化存储组件,相当于集群的「心脏」。

  • 核心职责
    1. 持久化存储集群的所有资源对象数据(Deployment、Pod、Service、ConfigMap 等)与集群状态;
    2. 基于 Raft 一致性协议,保证集群数据的强一致性与高可用;
    3. 为 apiserver 提供 watch 能力,支撑集群状态的实时变更推送。
  • 关键注意点
    • 只有 kube-apiserver 有权限直接读写 etcd,其他任何组件都不能直接操作 etcd;
    • 生产环境必须部署 etcd 集群(通常 3/5 节点),并做好定期数据备份,etcd 数据丢失意味着集群状态完全丢失。

3. kube-scheduler:集群的调度器

kube-scheduler是集群的「调度中枢」,核心职责是为新创建的、未绑定节点的 Pod,选择一个最合适的 Node 节点运行。

  • 核心工作流程(两步核心调度)
    1. 过滤阶段(Predicate):遍历所有 Node 节点,过滤掉不满足 Pod 运行要求的节点(比如资源不足、端口冲突、亲和性 / 反亲和性不匹配、污点容忍度不满足等);
    2. 打分阶段(Priority):对过滤后的合格节点进行优先级打分,综合考虑资源利用率、节点负载、亲和性、数据本地化等维度,选择得分最高的节点;
    3. 绑定操作:将调度结果写入 apiserver,完成 Pod 与 Node 的绑定,后续由对应节点的 kubelet 执行 Pod 创建。
  • 关键特性:支持自定义调度策略、自定义调度器,可满足复杂的业务调度需求。

4. kube-controller-manager:控制器管理器

kube-controller-manager是 K8S「声明式控制」的核心实现,本质是多个独立控制器的集合,每个控制器都是一个独立的控制循环,持续监听对应资源的状态,完成调谐工作。

  • 核心工作逻辑:每个控制器持续通过 apiserver 监听资源的「期望状态」与「实际状态」,若两者不一致,自动执行调谐操作,推动实际状态向期望状态对齐。
  • 核心内置控制器
    • Node 控制器:监控节点状态,节点故障时自动执行故障检测与 Pod 驱逐;
    • Deployment/ReplicaSet 控制器:管理无状态应用的副本数,确保 Pod 副本数量与用户声明的一致,实现滚动更新、回滚等能力;
    • EndpointSlice 控制器:为 Service 关联后端 Pod,维护服务与 Pod 的网络映射关系;
    • ServiceAccount/Token 控制器:管理集群账号与访问令牌,为新命名空间创建默认账号。
  • 关键特性:支持控制器的自定义扩展(CRD+Operator),是 K8S 生态扩展的核心能力。

5. cloud-controller-manager:云控制器管理器

cloud-controller-manager(简称 CCM)是 K8S 与底层云基础设施的解耦层,负责对接公有云 / 私有云厂商的 API,将集群与云平台的基础设施能力联动。

  • 核心职责:把 K8S 中与云厂商相关的控制逻辑从主集群中剥离,实现云平台适配与集群内核的解耦。
  • 核心内置控制器
    • 节点控制器:同步云服务器的生命周期,管理节点的创建、删除与状态同步;
    • 路由控制器:配置云平台的底层网络路由,实现 Pod 跨节点网络互通;
    • 服务控制器:对接云平台的负载均衡服务,为 LoadBalancer 类型的 Service 自动创建公网 / 内网负载均衡实例;
    • 卷控制器:对接云平台的块存储服务,自动创建、挂载云存储卷。
  • 关键注意点:仅在对接云平台时需要部署,纯本地私有集群(离线部署)无需该组件。

三、数据平面(Node 节点)核心组件详解

Node 节点是集群的工作节点,集群的所有业务容器都运行在 Node 节点上。每个 Node 节点都必须运行以下 3 个核心组件,持续与控制平面通信,执行管控指令,保障节点与 Pod 的正常运行。

1. kubelet:节点的核心代理

kubelet是运行在每个 Node 节点上的「节点代理」,是控制平面在节点上的执行入口,也是节点与 Pod 生命周期管理的核心组件。

  • 核心职责
    1. 持续从 kube-apiserver 监听绑定到当前节点的 Pod 清单,按照声明要求,调用容器运行时创建、启动、停止、销毁容器;
    2. 执行 Pod 的全生命周期健康检查:存活探针(Liveness Probe)、就绪探针(Readiness Probe)、启动探针(Startup Probe),根据探针结果执行容器重启、流量摘除等操作;
    3. 持续上报节点的资源状态(CPU、内存、磁盘)、节点健康状态、Pod 运行状态到 kube-apiserver,供调度器与控制器决策;
    4. 管理节点的容器资源、存储卷挂载、容器网络配置,保障 Pod 的运行环境符合声明要求。
  • 关键特性:通过 CRI(容器运行时接口)与容器运行时解耦,不绑定具体的容器 runtime,适配所有符合 CRI 规范的容器运行时。

2. 容器运行时(Container Runtime)

容器运行时是真正负责运行容器的软件,是 Node 节点上容器生命周期的底层执行者,符合 K8S CRI(容器运行时接口)规范。

  • 核心职责:负责容器的镜像拉取、容器创建 / 启动 / 停止 / 删除、容器资源隔离与限制、容器日志收集等底层操作。
  • 主流合规实现
    • containerd:目前 K8S 默认的容器运行时,轻量、稳定、兼容 OCI 标准,是生产环境的首选;
    • CRI-O:专为 K8S 设计的轻量级容器运行时,完全兼容 CRI 规范,无冗余功能;
    • 注意:K8S 自 1.24 版本起正式废弃 dockershim,Docker 不再作为默认容器运行时,若需使用 Docker 需额外适配 CRI 接口。

3. kube-proxy:节点网络代理

kube-proxy是运行在每个 Node 节点上的网络代理,是 K8S Service 资源的底层实现者,负责集群的服务发现与四层流量负载均衡。

  • 核心职责
    1. 持续从 kube-apiserver 监听 Service 与 EndpointSlice 的变更,在节点上维护对应的网络转发规则;
    2. 实现 ClusterIP、NodePort、LoadBalancer 等类型 Service 的流量转发,将访问 Service 的流量,按照负载均衡策略转发到对应的后端 Pod;
    3. 保障集群内部 Pod 与 Service 之间的网络互通,实现跨节点的服务访问。
  • 核心转发模式
    • iptables 模式:默认模式,基于 Linux 内核 iptables 实现规则转发,稳定性高,适合中小规模集群;
    • ipvs 模式:基于 Linux 内核 IPVS 模块实现,性能更高、负载均衡策略更丰富,适合大规模集群(上千节点 / 上万 Service)。

四、集群核心附加组件(Addons)

以下组件并非 K8S 集群的内置核心组件,不属于集群启动的必要条件,但却是生产环境必备的能力补充,也是入门学习必须了解的生态组件。

组件名称核心作用
CNI 网络插件实现 K8S 集群 Pod 跨节点网络互通,K8S 本身不实现网络,依赖 CNI 插件,主流实现:Calico、Flannel、Cilium
CoreDNS集群内部 DNS 服务,为 Pod 和 Service 提供域名解析,是集群服务发现的核心,默认随集群部署
Ingress Controller集群七层流量入口网关,实现 HTTP/HTTPS 域名路由、SSL 终结、流量管控,将集群内服务暴露到公网,主流实现:Nginx Ingress、Traefik、APISIX
Metrics Server集群核心指标采集组件,采集节点与 Pod 的 CPU、内存使用率,为 kubectl top 命令、HPA 弹性扩缩容提供指标支撑
Prometheus+Grafana集群监控方案,实现集群组件、节点、业务应用的全链路指标监控、告警与可视化
Loki/ELK Stack集群日志收集与分析方案,实现容器日志、组件日志的统一采集、检索与可视化

五、核心流程示例:一条 kubectl 命令背后的组件协作

为了让大家更清晰地理解组件间的联动,我们以kubectl create deployment nginx --image=nginx --replicas=3为例,拆解完整的执行流程:

  1. 用户执行 kubectl 命令,kubectl 对请求进行封装,发送到 kube-apiserver;
  2. kube-apiserver 完成请求的认证、授权、准入控制,校验通过后,将 Deployment 资源写入 etcd;
  3. kube-controller-manager 中的 Deployment 控制器监听到 Deployment 资源的创建事件,对比期望状态,创建对应的 ReplicaSet 资源,写入 apiserver 并持久化到 etcd;
  4. ReplicaSet 控制器监听到 ReplicaSet 创建事件,按照声明的 3 个副本数,创建 3 个 Pod 资源,写入 apiserver 并持久化到 etcd,此时 Pod 处于Pending状态,未绑定节点;
  5. kube-scheduler 监听到未绑定节点的 Pod,执行过滤 + 打分调度,为每个 Pod 分配最合适的 Node 节点,将调度结果写入 apiserver;
  6. 对应 Node 节点的 kubelet 监听到绑定到自身节点的 Pod,调用容器运行时 containerd 拉取 nginx 镜像,创建并启动容器;同时执行 Pod 的健康检查;
  7. kubelet 持续上报 Pod 的运行状态到 apiserver,更新 Pod 状态为Running
  8. EndpointSlice 控制器监听到 Pod 的就绪状态,为对应的 Service(若创建)更新后端 Endpoint,kube-proxy 同步更新节点上的网络转发规则,完成服务接入。

六、核心要点

  1. 核心边界:控制平面负责决策,数据平面负责执行,所有组件的通信唯一枢纽是 kube-apiserver,无跨组件直接通信;
  2. 数据核心:etcd 是集群唯一的持久化存储,是集群的核心命脉,生产环境必须做好高可用与备份;
  3. 设计核心:声明式 API + 控制循环是 K8S 的灵魂,所有的自愈、扩缩容、编排能力都基于该设计实现

K8S 集群的架构设计看似复杂,实则职责划分非常清晰:控制平面的组件各司其职,完成集群的全局管控与决策;数据平面的组件稳定执行,保障业务容器的正常运行与网络互通;丰富的生态组件则补齐了生产环境所需的可观测性、网关、安全等能力。掌握了集群架构与组件的核心逻辑,就掌握了 K8S 的底层原理。

http://www.jsqmd.com/news/524789/

相关文章:

  • AI Agent开发中的常见坑与避坑指南:从工具调用到部署优化
  • 20252808 2025-2026-2《网络攻防实践》第1次作业
  • 科研工具链:从WOS到CiteSpace的文献分析完整流程(含CSV转换技巧)
  • Z-Image-Turbo_Sugar脸部LoraGPU算力优化教程:显存占用降低40%的部署配置方案
  • Windows10下Jenkins主从节点配置避坑指南(附常见错误解决方案)
  • 花漾神美解码原生骨相,北京歆悦医疗一花一相定制专属美丽-数据精准塑东方美学 - 资讯焦点
  • 自研PE单元AXI接口记录(1)
  • 超声成像新手避坑指南:Field II仿真中那些容易搞错的坐标转换与延时计算
  • 零基础玩转内网穿透:用树莓派搭建24小时在线的VNC远程控制服务器
  • 你不知道的 Agent:原理、架构与工程实践(收藏版)——小白也能轻松入门大模型世界!
  • 全球器械法规注册咨询辅导优质服务商推荐指南:器械全球法规注册咨询辅导/选择指南 - 优质品牌商家
  • H3C无线AP空口利用率异常排查指南:从CtlBusy/RxBusy数据看懂干扰源
  • 国内知名半导体行业展会盘点:2026 行业盛会速览 - 品牌2026
  • rr
  • 面试官连环问:从MyBatis动态SQL到SpringMVC流程,这份避坑指南帮你稳住
  • 敏感数据脱敏,不只是打星号:NineData 如何让生产库手机号、身份证号查询更有边界?
  • Spring Boot 3.1.2实战:手把手教你用苍穹外卖技术栈搭建高并发外卖系统
  • ICPC2025沈阳区域赛题解
  • 如何在 MATLAB 中绘制三维图?
  • 5分钟搞定时序图:用Draw.io快速绘制UML交互图(附实战案例)
  • 台州辰麟塑模SMC模具一站式解决方案介绍:smc卡车保险杠模具、smc复合材料模具、smc大货车脚踏板模具、smc模压成型模具选择指南 - 优质品牌商家
  • 反激式开关电源PCB布局中的EMI优化策略
  • PROTECH SYSTEMS PBI-6SA印刷电路板
  • 2026导热系数测试仪优质厂家推荐指南 - 资讯焦点
  • 【工具推荐】M3U8下载器:免费视频下载工具使用指南 - xiema
  • 海南乐卡客服咨询AI流量赋能,重塑智能体验新标杆 - 王老吉弄
  • 收藏!DeepSeek引领AI风潮,前后端程序员转型大模型开发正当时
  • 避坑指南:UAVDT转YOLO格式时,这3个细节没处理好模型效果差一半
  • 从一次线上促销宕机说起:手把手教你用压测提前发现系统瓶颈(含QPS计算与机器评估实战)
  • Win10系统C盘扩容实战:绕过恢复分区的3种高效方法