Kubernetes 核心组件的深度解析
这篇文章把 Kubernetes 最核心的几个组件串起来讲清楚。很多人知道 API Server、Scheduler、kubelet 这些名字,但真正排障或理解集群行为时,关键不只是“每个组件做什么”,而是它们之间怎么配合。
先看整体结构
Kubernetes 大体可以分成两部分:
- Control Plane:负责管理和决策
- Worker Node:负责真正运行 Pod
从交互关系上看,大致可以理解成下面这张图:
sequenceDiagram
participant API as API Server
participant K as kubelet
participant CRI as 容器运行时
participant CNI as 网络插件
participant CSI as 存储插件
participant Pod as Pod
Note over K: 启动初始化
K->>API: 1. 注册节点信息
K->>API: 2. 启动 List-Watch 监听 Pod
loop 持续监听
API-->>K: 3. 推送 Pod 配置变更事件
end
alt 创建新 Pod
K->>CSI: 4. 挂载存储卷
CSI-->>K: 返回挂载点
K->>CRI: 5. 拉取镜像
CRI-->>K: 返回镜像 ID
K->>CNI: 6. 配置网络命名空间
CNI-->>K: 分配 IP 地址
K->>CRI: 7. 创建容器
CRI-->>K: 返回容器 ID
K->>Pod: 8. 启动容器进程
K->>API: 9. 更新 Pod 状态为 Running
end