Pod生命周期全解析:从创建到终止,你不得不知的关键阶段
💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
Kubernetes 的 Pod 生命周期包括五个阶段:Pending、Running、Succeeded、Failed 和 Unknown。每个阶段有特定的状态和处理方式。重启策略和生命周期钩子是关键特性,合理配置探针和资源限制可确保应用稳定运行。
🎯
关键要点
- Kubernetes Pod 生命周期包括五个阶段:Pending、Running、Succeeded、Failed 和 Unknown。
- Pending 阶段:Pod 被创建后,调度器选择合适的节点,包含资源配额检查、节点筛选、节点优先级排序和绑定节点。
- Running 阶段:Pod 被调度到节点并成功创建所有容器,Init Container 按序启动,主容器并行启动,健康检查开始执行。
- Succeeded 状态:适用于一次性任务的 Pod,所有容器成功终止且不会重启。
- Failed 状态:当容器以非零状态退出且重启策略为 Never 时,Pod 进入此状态,常见原因包括应用崩溃、配置错误和资源不足。
- Unknown 状态:当 kubelet 无法获取 Pod 状态信息时报告,通常由网络问题、节点故障或 kubelet 异常导致。
- 重启策略决定容器失败时的处理方式,包括 Always、OnFailure 和 Never。
- Kubernetes 提供 postStart 和 preStop 两个生命周期钩子,postStart 不保证在容器 ENTRYPOINT 之前运行。
- Pod 终止流程包括标记为 Terminating、执行 preStop 钩子、发送 SIGTERM 信号、等待宽限期和发送 SIGKILL 信号。
- 注意事项:配置合适的探针、设置合理的资源限制和正确处理终止信号。
❓
延伸问答
Kubernetes Pod 生命周期的五个阶段是什么?
Kubernetes Pod 生命周期包括 Pending、Running、Succeeded、Failed 和 Unknown 五个阶段。
Pod 在 Pending 阶段会经历哪些步骤?
在 Pending 阶段,Pod 会进行资源配额检查、节点筛选、节点优先级排序和绑定节点。
什么情况下 Pod 会进入 Succeeded 状态?
当 Pod 中的所有容器成功终止且不会重启时,Pod 会进入 Succeeded 状态,适用于一次性任务。
Pod 的重启策略有哪些选项?
Pod 的重启策略包括 Always、OnFailure 和 Never,分别表示始终重启、失败时重启和不重启。
Pod 终止时的流程是什么?
Pod 终止时的流程包括标记为 Terminating、执行 preStop 钩子、发送 SIGTERM 信号、等待宽限期和发送 SIGKILL 信号。
导致 Pod 进入 Failed 状态的常见原因是什么?
Pod 进入 Failed 状态的常见原因包括应用程序崩溃、配置错误和资源不足。
➡️