Kubelet Systemd 看門狗

特性狀態: Kubernetes v1.32 [beta] (預設啟用: true)

在 Linux 節點上,Kubernetes 1.34 支援與 systemd 整合,以便作業系統主管能夠恢復失敗的 kubelet。此整合預設不啟用。它可以作為定期請求 kubelet 的 /healthz 端點進行健康檢查的替代方案。如果 kubelet 在超時期限內沒有響應看門狗,看門狗將終止 kubelet。

systemd 看門狗的工作原理是要求服務定期向 systemd 程序傳送“保持活躍”訊號。如果在指定的超時期限內沒有收到訊號,則服務被認為無響應並被終止。然後,服務可以根據配置重新啟動。

配置

使用 systemd 看門狗需要在 kubelet 服務單元檔案的 [Service] 部分配置 WatchdogSec 引數。

[Service]
WatchdogSec=30s

設定 WatchdogSec=30s 表示服務看門狗超時時間為 30 秒。在 kubelet 中,sd_notify() 函式以 \( WatchdogSec \div 2\) 的間隔被呼叫,傳送 WATCHDOG=1(保持活躍訊息)。如果在超時期限內看門狗沒有收到訊號,kubelet 將被終止。將 Restart 設定為 "always"、"on-failure"、"on-watchdog" 或 "on-abnormal" 將確保服務自動重啟。

關於 systemd 配置的一些細節

  1. 如果您將 systemd 的 WatchdogSec 值設定為 0,或省略不設定,則該單元不會啟用 systemd 看門狗。
  2. kubelet 支援最短的看門狗週期為 1.0 秒;這是為了防止 kubelet 被意外終止。您可以在 systemd 單元定義中將 WatchdogSec 的值設定為短於 1 秒的週期,但 Kubernetes 不支援任何更短的間隔。超時時間不必是整數秒。
  3. Kubernetes 專案建議將 WatchdogSec 設定為大約 15 秒的週期。支援超過 10 分鐘的週期,但明確 **不** 推薦。

配置示例

[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=https://kubernetes.club.tw/docs/home/
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/kubelet
# Configures the watchdog timeout
WatchdogSec=30s
Restart=on-failure
StartLimitInterval=0
RestartSec=10

[Install]
WantedBy=multi-user.target

下一步

有關 systemd 配置的更多詳細資訊,請參閱 systemd 文件

上次修改時間:2025 年 2 月 12 日太平洋標準時間下午 12:12:使用數學公式表示除法 (80609828b2)