Kubernetes PreStop钩子阻止pod中的所有容器停止,还是只阻止它设置的容器停止? &g



关于PreStop钩子的Kubernetes文档声明如下:

PreStop钩子不是从信号到停止异步执行的容器;钩子必须在TERM之前完成其执行可以发送信号

但是,它没有说明pod中的其他容器。假设terminationGracePeriodSeconds尚未通过。

在每个容器的PreStop钩子完成之前,吊舱中的所有容器是否都受到保护而不被终止?或者每个PreStop钩子只保护它自己的容器?

我相信preStop钩子只保护它所声明的容器。

例如,在以下设置中:

apiVersion: v1
kind: Pod
metadata:
name: lifecycle-demo
spec:
containers:
- name: lifecycle-demo-container
image: nginx
lifecycle:
preStop:
exec:
command: ["/bin/sh","-c","sleep 15"]
- name: other-container
image: mysql
env:
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "true"

如果我终止pod, mysql接收SIGTERM并立即关闭,而nginx容器由于其preStop钩子而保持额外的15秒存活

最新更新