结论:Pod 生命周期分五个阶段(Phase):Pending、Running、Succeeded、Failed、Unknown,加上终止中的 Terminating 状态,由 kubelet 驱动容器状态聚合而成。
展开:详细流程:创建后先是 Pending——API Server 落库,调度器绑定节点,kubelet 拉镜像、起 sandbox(pause 容器建网络命名空间)、按序执行 initContainers,全部完成后业务容器启动进入 Running。Running 期间容器探针持续探测,容器退出码决定是否重启(受 restartPolicy 控制)。删除 Pod 时进入 Terminating:先发 SIGTERM,等待 terminationGracePeriodSeconds(默认 30s),再 SIGKILL 强杀,期间 endpoints 中摘除该 Pod。关键细节:1)Succeeded/Failed 只出现在 restartPolicy 为 Never 或 OnFailure 的批处理 Pod;2)Unknown 通常是节点失联;3)Pod 是调度和资源分配的最小单位,重启策略只针对容器,Pod 本身不会被原地复活,挂了由控制器重建新 Pod(IP 会变);4)initContainer 失败会按策略反复重试,镜像拉取失败表现 ImagePullBackOff。追问:优雅下线的正确姿势——preStop 钩子 + 应用正确处理 SIGTERM + 合理宽限期,避免滚动更新时丢请求。