Kubernetes 架构与各组件作用

99次阅读
没有评论

Kubernetes 架构与各组件作用

一、整体架构划分

K8s 整体分为两大核心平面:

  1. 控制平面(Control Plane / 管理节点):负责集群调度、决策、管控、数据存储,不跑业务 Pod
  2. 数据平面(Node 工作节点):负责运行业务容器,执行控制平面下发的所有指令

核心设计:控制平面做决策,工作节点做执行,所有操作统一经由 kube-apiserver 收口。


二、控制平面 五大核心组件

1. kube-apiserver

核心定位:集群唯一入口、所有通信中枢

  • 整个 K8s 集群的 API 网关,所有组件、客户端全部只和它交互
  • 提供 RESTful API,接收:kubectl、kubelet、控制器、Scheduler 的请求
  • 依次执行:认证、鉴权、准入控制三层安全校验
  • 负责资源数据读写,唯一操作 etcd 的组件
  • 采用水平扩展,可多实例部署,保证高可用
  • 无状态设计,所有集群数据持久化存在 etcd

一句话:集群大门,所有增删改查、组件通信必经之路,统一鉴权管控。


2. etcd

核心定位:集群分布式键值数据库,唯一数据存储

  • 存储集群所有资源对象数据:Node、Pod、Deployment、Service、Secret、ConfigMap 等
  • 存储集群状态、配置、元数据,强一致性、高可用
  • 仅允许 apiserver 访问,其他组件禁止直连
  • 生产必须集群化部署(3/5 节点),定时快照备份

一句话:K8s 的 “数据库”,存集群所有配置和状态数据。


3. kube-scheduler

核心定位:Pod 调度决策组件

  • 监听 apiserver,获取未绑定节点的新建 Pod
  • 根据节点资源剩余、亲和性、污点容忍、节点标签、资源限制等策略
  • 筛选最优健康节点,将 Pod 与 Node 进行绑定
  • 只负责选节点,不负责创建容器、不管理生命周期

一句话:给 Pod 挑选最合适的工作节点,纯决策组件。


4. kube-controller-manager

核心定位:集群自愈 & 循环控制器合集

内部包含多个控制器,常驻循环监听期望状态与实际状态差异,持续调谐:

  • 副本控制器:保证 Deployment/RS 指定副本数,Pod 挂了自动重建
  • 节点控制器:检测节点宕机、失联,自动驱逐该节点 Pod
  • 服务控制器:管理 Service、外部负载均衡映射
  • 命名空间 / 资源配额控制器:限制租户资源、回收垃圾资源
  • 垃圾回收控制器:清理过期副本、废弃资源

一句话:集群 “自愈大脑”,保证资源永远维持用户定义的期望状态。


5. cloud-controller-manager(CCM,可选)

定位:云厂商专属控制器

  • 解耦 K8s 与公有云厂商代码
  • 管理云负载均衡、云硬盘、节点生命周期
  • 物理机 / 私有化环境一般不部署

三、工作节点 三大核心组件(业务运行层)

1. kubelet(节点核心代理)

定位:单个节点的管家、执行者

  • 每个 Node 节点必装,节点级核心进程
  • 通过 Watch 长连接监听 apiserver,获取分配给当前节点的 Pod 清单
  • 依次调用三大标准接口落地业务:
    • CSI:存储卷挂载 / 卸载
    • CNI:Pod 网络配置、IP 分配
    • CRI:容器创建、启动、停止、销毁、镜像拉取
  • 执行容器探针:存活探针、就绪探针,实现容器自愈
  • 定时上报节点状态、Pod 状态、资源使用情况到 apiserver
  • 受 RBAC 权限限制,仅允许管理本机资源,保证集群安全
  • 额外管理静态 Pod(本地清单自主运行)

一句话:接收控制平面指令,在本机落地运行容器,上报状态,干活的执行者。


2. kube-proxy

定位:集群网络流量转发、Service 实现核心

  • 运行在所有工作节点
  • 监听 Service、Endpoint 资源变化
  • 通过 iptables/ipvs 模式,实现:
    • Service 集群内部负载均衡
    • Pod 访问转发、端口映射
    • 内外网流量代理、会话保持
  • 保证集群内 Service 统一访问入口,屏蔽 Pod IP 变化

一句话:负责 Service 流量转发与负载均衡,打通集群内部网络访问。


3. 容器运行时(CRI 实现)

代表:containerd(生产主流)、CRI-O

  • 遵循 CRI 标准接口,被 kubelet 调用
  • 负责镜像管理、容器生命周期、底层隔离(Namespace/Cgroup)

四、三大外置标准插件(完整集群必备)

1. CNI 网络插件

Calico、Flannel、Cilium

  • 实现 Pod 跨节点通信、网络策略、隔离

2. CSI 存储插件

Ceph CSI、NAS CSI、本地存储 CSI

  • 实现 PV/PVC 持久化存储挂载

3. 附加组件(生产必装)

  • CoreDNS:集群内部 DNS 解析,服务发现核心
  • Ingress Controller:七层反向代理,对外暴露服务
  • Prometheus:监控告警
  • Helm:应用包管理

五、完整工作流程

  1. 用户通过 kubectl 提交 Deployment 配置 → 请求进入 apiserver
  2. apiserver 认证鉴权、准入控制后,数据存入 etcd
  3. kube-scheduler 监听到未调度 Pod,选择合适工作节点并绑定
  4. 目标节点 kubelet 监听 apiserver 变更,拿到 Pod 配置
  5. kubelet 调用 CSI 挂载存储 → 调用 CNI 配置 Pod 网络
  6. kubelet 调用 CRI/containerd 创建 pause 基础容器 + 业务容器
  7. kube-proxy 同步 Service 规则,实现服务访问与负载均衡
  8. controller-manager 持续巡检,节点 / 容器异常自动自愈重建

六、超精简

K8s 分为控制平面和工作节点:

  1. 控制平面:
  • apiserver:集群 API 入口,统一认证鉴权;
  • etcd:集群数据存储;
  • scheduler:负责 Pod 节点调度;
  • controller-manager:各类控制器,保障集群自愈。
  1. 工作节点:
  • kubelet:接收指令,管理本机 Pod 与容器生命周期;
  • kube-proxy:实现 Service 流量转发与负载均衡;
  • 容器运行时:负责容器底层创建与管理。外加 CoreDNS、CNI、CSI 等插件,共同组成完整云原生集群架构。
正文完
 0
评论(没有评论)