簡體   English   中英

k8s liveness probe失敗時發送給容器中運行的進程的信號是什么? 殺死或終止

[英]What is the signal sent to the process running in the container when k8s liveness probe fails? KILL or TERM

我有一個用例可以優雅地終止容器,其中我有一個腳本可以使用命令“kill PID”從容器內優雅地終止進程。(這將發送 TERM 信號)但我也配置了活性探針。 當前活性探針配置為以 60 秒的間隔進行探測。 因此,如果在發送正常終止信號后不久進行活性探測,則當終止仍在進行中時,容器的整體健康狀況可能會變得至關重要。 在這種情況下,活性探測將失敗,容器將立即終止。

所以我想知道 kubelet 是用 TERM 還是 KILL 來殺死容器。

感謝您的支持 在此先感謝

在 Kubernetes 中,Liveness Probe 檢查容器的健康狀態。

要回答關於它是使用 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/以獲取有關使用哪些參數的更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM