02 创建 Pod 的全链路
创建 Pod 的全链路
直接创建 Pod 后,调度器为它选节点,节点 kubelet 再驱动运行时落地;API 返回成功与 Ready 之间还有多段工作。
版本:Kubernetes v1.37.2;核实日期:2026-11-12。官方在线文档可能继续更新,源码链接固定到对应发布标签。图为原理抽象,省略非本页重点。
specification {
element actor { style { shape person; color amber } }
element system { style { color muted } }
element component { style { color primary } }
element storage { style { shape storage; color green } }
}
model {
u = actor 'kubectl'
api = component 'API server / 存储'
s = component 'Scheduler'
k = component '目标节点 kubelet'
r = component 'CRI 运行时'
net = component 'CNI 插件'
pod = component '容器 / Pod'
}
views {
dynamic view index {
title '核心链路'
variant sequence
u -> api 'POST Pod 对象'
s -> api '观察未调度 Pod'
s -> s '过滤、评分并选择节点'
s -> api '写入 Pod 绑定'
k -> api '观察绑定到本节点的 Pod'
k -> r '分步请求 sandbox、镜像与容器生命周期管理'
r -> net '创建 Pod 网络与分配地址'
r -> pod '启动容器进程'
k -> api '上报状态与探针结果'
}
}
关键判断
- scheduler 负责决定落点,kubelet 负责该节点上的运行;调度器不直接调用容器运行时。
- 运行时通过 CRI 接受生命周期请求,CNI 负责网络实现;镜像拉取、卷挂载或网络失败都可阻止启动。
- Running 只描述生命周期阶段,Ready 还依赖容器 readiness 与 readiness gates;服务能否接流量要继续检查端点。
边界
图省略 kubelet 内部的并发准备顺序和 CSI;Deployment 创建 Pod 时,还要先经过 Deployment 与 ReplicaSet 控制器。