
Kubernetes 核心组件及作用说明
Kubernetes Master 控制平面核心组件
API Server
整个集群的统一入口,所有请求(kubectl、UI、组件通信)都必须经过它。负责认证、鉴权、校验请求并写入 etcd,是"集群大脑的入口层"。
etcd
分布式键值存储数据库,用来保存整个集群的所有状态数据,包括 Pod、Service、Deployment 配置与状态,是 Kubernetes 的"唯一事实来源"。
Controller Manager
负责维护集群状态一致性,比如副本数量不足会自动补 Pod,节点宕机会触发迁移,本质是"自动修复控制器"。
Scheduler
负责调度 Pod 到具体 Node 上运行,根据资源情况(CPU、内存、亲和性、污点等)做最优分配,是"任务分配调度员"。
Kubernetes Node 工作节点核心组件
kubelet
运行在每个 Node 上,负责与 API Server 通信并管理本机 Pod 生命周期(创建、启动、监控、删除),是"节点执行代理"。
kube-proxy
负责 Service 网络规则,实现 Pod 之间以及外部访问的负载均衡,本质是"网络转发与服务发现代理"。
Container Runtime
真正运行容器的组件,如 containerd 或 Docker,负责镜像拉取与容器创建,是"容器执行引擎"。
附加核心概念组件
CoreDNS
负责集群内部 DNS 解析,实现服务名访问服务 IP,是"服务发现系统"。
Ingress Controller
负责集群外部流量入口控制,实现 HTTP/HTTPS 路由转发,是"南北向流量入口网关"。
总结一句话理解
API Server 负责入口,etcd 负责存储,Controller 负责自愈,Scheduler 负责调度,Node 上 kubelet 负责执行,kube-proxy 负责网络,Runtime 负责真正跑容器,DNS 和 Ingress 负责对外服务能力。
流程总结
核心流程 :kubectl apply 提交期望 → apiserver 验证并记录 → etcd 存储状态差异 → controller 循环修正 → scheduler 决策最优节点 → kubelet 执行容器任务 → kube-proxy 提供稳定访问。
设计哲学:声明式(只描述目标)、控制循环(持续对齐状态)、最终一致性(自动收敛)。Kubernetes 不是命令驱动,而是一个"自运转"的状态驱动系统。
留言 4