[toc]
Pod 创建流程详解
官方文档参考
本文以 Kubernetes 官方文档为依据(v1.37),建议对照阅读:
同目录下的进阶笔记:图解kubernetes pod创建流程大揭秘 与 Pod创建流程代码版本kubelet篇 深入到了 kubelet 内部与源码级 流程;本文聚焦全局:一个 Pod 从提交 YAML 到 Running,各个组件是怎么协作的。
1. 一图总览
以 kubectl apply -f pod.yaml 创建一个 Pod 为例,整个流程横跨控制平面和工作节点,核心组件按顺序接力:

一句话总结
Kubernetes 是声明式 + 控制器模式:你只提交期望状态,每个组件都在循环做「watch 资源变化 → 对比期望与实际 → 执行动作」,直到实际状态等于期望状态。
本文使用的示例 YAML(下面所有步骤都以它为准):
apiVersion: v1
kind: Pod
metadata:
name: web
labels:
app: web
spec:
restartPolicy: Always # 重启策略,默认 Always
initContainers: # Init 容器:串行执行,全部成功才启动业务容器
- name: wait-service
image: busybox:1.28
command: ['sh', '-c', 'until nslookup myservice; do echo waiting; sleep 2; done']
containers: # 业务容器
- name: nginx
image: nginx:1.27
ports:
- containerPort: 80
lifecycle: # 生命周期回调
postStart:
exec:
command: ['/bin/sh', '-c', 'echo started > /tmp/flag']
livenessProbe: # 存活探针:失败则重启容器
httpGet:
path: /healthz
port: 80
initialDelaySeconds: 5
periodSeconds: 5
readinessProbe: # 就绪探针:失败则不接流量
httpGet:
path: /
port: 80
periodSeconds: 5