容器终止流程
我们先了解下容器在 Kubernetes 环境中的终止流程:
- Pod 被删除,状态置为
Terminating
。 - kube-proxy 更新转发规则,将 Pod 从 service 的 endpoint 列表中摘除掉,新的流量不再转发到该 Pod。
- 如果 Pod 配置了 preStop Hook ,将会执行。
- kubelet 对 Pod 中各个 container 发送
SIGTERM
信号以通知容器进程开始优雅停止。 - 等待容器进程完全停止,如果在
terminationGracePeriodSeconds
内 (默认 30s) 还未完全停止,就发送SIGKILL
信号强制杀死进程。 - 所有容器进程终止,清理 Pod 资源。