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 配置的一些細節
- 如果您將 systemd 的
WatchdogSec
值設定為 0,或省略不設定,則該單元不會啟用 systemd 看門狗。 - kubelet 支援最短的看門狗週期為 1.0 秒;這是為了防止 kubelet 被意外終止。您可以在 systemd 單元定義中將
WatchdogSec
的值設定為短於 1 秒的週期,但 Kubernetes 不支援任何更短的間隔。超時時間不必是整數秒。 - 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)