0

我有一个用例来优雅地终止容器,在那里我有一个脚本,通过使用命令“kill PID”从容器内优雅地终止进程(它将发送TERM信号) 但我有活性探测器也配置好。 当前生命力探测器配置为以60秒间隔进行探测。因此,如果在发送正常终止信号后不久发生活性探测,则当终止仍在进行时,容器的整体健康状况可能变得非常关键。 在这种情况下,活性探测将失败,容器将立即终止。当k8s活性探针失败时,发送到在容器中运行的进程的信号是什么? KILL或TERM

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

感谢您的支持 预先感谢

回答

2

在Kubernetes,活性探针检查一个集装箱的健康状态。

若要回答您的问题是否使用SIGKILL或SIGTERM,答案都是使用,但按顺序。所以这里是发生了什么。

  1. 活跃度探针检查失败
  2. Kubernetes站流量路由到容器
  3. Kubernetes重新启动容器
  4. Kubernetes再次开始

路由流量到容器容器重启,SIGTERM首先发送,等待参数化宽限期,然后Kubernetes发送SIGKILL。

围绕您的问题一个黑客是使用属性:

timeoutSeconds 

这指定它被认为失败之前的请求还能走多久回应。如果应用程序联机所用的时间可预测,则可以添加和调整此参数。

此外,您可以在livenessProbe之前使用readinessProbe进行游戏,并在重新启动过程后使容器投入使用。请参阅https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/以获取有关使用哪些参数的更多详细信息。

相关问题