Pod从Pending到Running,背后经历了调度队列、节点过滤、打分、绑定、镜像拉取和容器启动等多个阶段。本文用图解方式拆解Kubernetes调度流程和常见误解。
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。

相关主题可以结合 Kubernetes、AI基础设施、云原生安全 和 GPU调度 等站内内容一起阅读。本文重点放在场景、判断维度、落地路径和风险边界,避免只停留在概念介绍。
先看全图:调度链路分成哪些阶段
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。
调度流程要区分“控制面决定”和“节点执行”。Scheduler负责选择节点,kubelet负责真正创建容器。很多启动失败并不是调度器问题,而是节点阶段的镜像、卷、网络或探针问题。
对生产环境来说,这个环节不能只看“能不能跑通”,还要看是否可解释、可观测、可回滚。很多平台能力在测试环境看起来简单,进入多团队、多集群或高峰流量后,真正的问题才会暴露出来。
Pending阶段:Pod为什么还没有节点
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。
调度流程要区分“控制面决定”和“节点执行”。Scheduler负责选择节点,kubelet负责真正创建容器。很多启动失败并不是调度器问题,而是节点阶段的镜像、卷、网络或探针问题。
具体检查时,可以从以下几个角度展开:
- Pending不一定是调度器故障
- 过滤失败通常会出现在事件里
- 打分只在可用节点中排序
对生产环境来说,这个环节不能只看“能不能跑通”,还要看是否可解释、可观测、可回滚。很多平台能力在测试环境看起来简单,进入多团队、多集群或高峰流量后,真正的问题才会暴露出来。
过滤阶段:哪些节点可以运行这个Pod
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。
调度流程要区分“控制面决定”和“节点执行”。Scheduler负责选择节点,kubelet负责真正创建容器。很多启动失败并不是调度器问题,而是节点阶段的镜像、卷、网络或探针问题。

对生产环境来说,这个环节不能只看“能不能跑通”,还要看是否可解释、可观测、可回滚。很多平台能力在测试环境看起来简单,进入多团队、多集群或高峰流量后,真正的问题才会暴露出来。
打分阶段:从可用节点中选更合适的节点
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。
调度流程要区分“控制面决定”和“节点执行”。Scheduler负责选择节点,kubelet负责真正创建容器。很多启动失败并不是调度器问题,而是节点阶段的镜像、卷、网络或探针问题。
| 判断维度 | 应该重点检查 | 常见误区 |
|---|---|---|
| 场景 | 是否匹配业务目标和团队阶段 | 只看工具或功能名 |
| 边界 | 是否说明适用条件和例外情况 | 所有环境套同一方案 |
| 风险 | 是否有验证、回滚和审计方式 | 直接在生产环境试错 |
| 指标 | 是否能持续观测和复盘 | 只看一次性结果 |
对生产环境来说,这个环节不能只看“能不能跑通”,还要看是否可解释、可观测、可回滚。很多平台能力在测试环境看起来简单,进入多团队、多集群或高峰流量后,真正的问题才会暴露出来。
绑定阶段:调度结果写回API Server
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。
调度流程要区分“控制面决定”和“节点执行”。Scheduler负责选择节点,kubelet负责真正创建容器。很多启动失败并不是调度器问题,而是节点阶段的镜像、卷、网络或探针问题。
落地时建议把下面几项作为发布前检查:
- 打分只在可用节点中排序
- 绑定后还要等待kubelet执行
- Running不等于应用已经可用
对生产环境来说,这个环节不能只看“能不能跑通”,还要看是否可解释、可观测、可回滚。很多平台能力在测试环境看起来简单,进入多团队、多集群或高峰流量后,真正的问题才会暴露出来。
kubelet阶段:节点真正拉起容器
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。
调度流程要区分“控制面决定”和“节点执行”。Scheduler负责选择节点,kubelet负责真正创建容器。很多启动失败并不是调度器问题,而是节点阶段的镜像、卷、网络或探针问题。

对生产环境来说,这个环节不能只看“能不能跑通”,还要看是否可解释、可观测、可回滚。很多平台能力在测试环境看起来简单,进入多团队、多集群或高峰流量后,真正的问题才会暴露出来。
常见误解:调度成功不等于应用可用
这一部分要让图和文字互相解释。Pod调度流程涉及API Server、Scheduler、kubelet、容器运行时和存储网络等环节。只说Pending和Running,无法帮助读者定位问题。
调度流程要区分“控制面决定”和“节点执行”。Scheduler负责选择节点,kubelet负责真正创建容器。很多启动失败并不是调度器问题,而是节点阶段的镜像、卷、网络或探针问题。
对生产环境来说,这个环节不能只看“能不能跑通”,还要看是否可解释、可观测、可回滚。很多平台能力在测试环境看起来简单,进入多团队、多集群或高峰流量后,真正的问题才会暴露出来。
Pending阶段要看哪些信号
Pod处于Pending并不一定代表调度器有问题。它可能还没有被调度,也可能已经绑定节点但镜像尚未拉取,或者PVC、配额、亲和性和污点容忍阻止了调度。图解调度流程时,要把Pending拆成队列等待、过滤失败、绑定后等待运行等不同状态,否则容易把所有问题都归因于Scheduler。
排查时可以先看Pod的conditions和events。如果事件提示Insufficient cpu、Insufficient memory或node affinity mismatch,说明过滤阶段没有合适节点;如果已经出现Successfully assigned,说明调度绑定完成,后续问题可能在kubelet、镜像、挂载或容器启动阶段。这个分界对定位很重要。
从调度成功到Running还差什么
调度器完成绑定后,Pod还需要由目标节点上的kubelet继续处理。kubelet会准备Sandbox、挂载卷、拉取镜像、创建容器并执行探针。任何一个步骤失败,Pod都可能无法进入Running或Ready。因此“调度成功”不等于“服务可用”,Running也不等于Ready。
在生产环境中,平台团队应同时关注调度延迟、镜像拉取时间、容器启动时间和探针通过时间。调度流程图如果只画Scheduler,会漏掉大量真实故障点。更完整的图应覆盖API Server、Scheduler、etcd、kubelet、CRI、CNI和CSI之间的协作关系。
发布前补充审查
上线前还需要从读者体验再看一遍:标题是否承诺了明确问题,开头是否快速说明适用范围,正文是否给出可执行判断,图片是否帮助理解关键路径,FAQ是否回答了真实搜索疑问。对SEO内容来说,字数只是基础门槛,真正影响留存的是读者能否带着问题进入、带着答案离开。
如果后续要把本文纳入站内专题或标签页推荐,应优先选择和主题关系最紧密的聚合页,避免为了增加链接数量而放入弱相关入口。内链要服务于阅读路径:概念文章引导到实践文章,实践文章引导到排障或选型文章,商业意图文章再引导到方案与评估页面。
小结
图解Kubernetes调度流程:Pod如何从Pending到Running 的关键,是把标题里的问题落到真实场景中回答。读者需要的不只是概念解释,还包括判断口径、实施顺序、风险边界和验证方法。
如果用于正式发布,建议再次检查四件事:一是SEO字段和正文主题是否一致,二是图片是否真正解释关键机制,三是FAQ是否回答真实疑问,四是内链是否能把读者带到更完整的站内知识路径。
常见问题
1. Pod Pending一定是调度器问题吗?
不一定。Pending可能来自资源不足、亲和性、污点、PVC、配额或队列等待。调度器只是其中一个环节。
2. 调度成功后为什么还会启动失败?
调度成功只表示Pod被绑定到节点。后续镜像拉取、卷挂载、容器启动和探针检查仍可能失败。
3. 图解类文章和架构类文章有什么区别?
图解类重点是用图解释一个流程或概念,架构类更强调系统组成、组件职责和设计取舍。调度流程可以先用图解建立直觉,再扩展成调度器架构分析。
转载请注明出处:https://www.cloudnative-tech.com/p/8508/