当k8s活性探针失败时,发送到在容器中运行的进程的信号是什么? KILL或TERM

我有一个用例来优雅地终止容器,在那里我有一个脚本,通过使用命令“kill PID”从容器内优雅地杀死进程(这将发送TERM信号),但我也有活性探针configuration以及。 目前活性探针configuration为以60秒间隔进行探测。 因此,如果在发送正常终止信号后不久发生活跃性探测,那么当终止仍然在进行时,容器的整体健康状况可能变为CRITICAL。 在这种情况下,活性探测将失败,容器将立即终止。

所以我想知道kubelet是否用TERM或KILL杀死容器。

感谢您的支持预先感谢

在Kubernetes中,Liveness Probe检查容器的健康状态。

要回答你是否使用SIGKILL或SIGTERM的问题,答案都是使用,但为了。 所以这里是发生了什么。

  1. 生存性探测检查失败
  2. Kubernetes停止路由到容器的stream量
  3. Kubernetes重新启动容器
  4. Kubernetes开始再次将stream量路由到容器

对于容器重启,首先发送SIGTERM,等待参数化宽限期,然后Kubernetes发送SIGKILL。

绕过你的问题是使用属性:

timeoutSeconds 

这指定了请求在被认为是失败之前可以做出响应的时间。 如果应用程序联机所用的时间是可预测的,则可以添加和调整此参数。

此外,您可以在livenessProbe之前使用readinessProbe进行游戏,并在重新启动该过程后使容器投入使用。 请查看https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/了解更多关于使用哪些参数的细节。