在开始讨论 Kubernetes 如何使用 控制信号 控制容器之前,
也许您有必要回顾一下 Docker的控制信号部分 容器的启动和停止
当 Kubernetes 决定关闭一个容器时,
无论是 Pod 需要关闭 还是 存活探针 失败 造成的 容器重启,
Kubernetes 都会给容器发送一个 SIGTERM 信号。
容器有义务尽快响应 SIGTERM信号,迅速终止,例如 关闭已经打开的数据库连接,清理临时文件等等
Kubernetes会提供 默认30秒 的宽限期,如果容器在30秒之后没有关闭,它将发送 SIGKILL信号来杀死容器
这个默认30秒可以通过 Pod 的下列属性修改
.spec.terminationGracePeriodSeconds
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: default
spec:
containers:
- name: nginx
image: nginx
terminationGracePeriodSeconds: 30
注意这个属性是作用在 Pod 上的,不是 container