Kubelet Systemd 监视器
功能状态:
Kubernetes v1.32 [beta]
(默认启用:true)在 Linux 节点上,Kubernetes 1.32 支持与 systemd 集成,以允许操作系统监视器恢复失败的 kubelet。 此集成默认情况下未启用。 它可以作为定期请求 kubelet 的 /healthz
端点进行运行状况检查的替代方案。 如果 kubelet 未在超时期限内响应 watchdog,watchdog 将终止 kubelet。
systemd watchdog 的工作原理是要求服务定期向 systemd 进程发送保持活动信号。 如果在指定的超时期限内未收到信号,则该服务被视为无响应并被终止。 然后可以根据配置重新启动该服务。
配置
使用 systemd watchdog 需要在 kubelet 服务单元文件的 [Service]
部分中配置 WatchdogSec
参数
[Service]
WatchdogSec=30s
设置 WatchdogSec=30s
表示服务 watchdog 超时时间为 30 秒。 在 kubelet 中,以 WatchdogSec
÷ 2 的间隔调用 sd_notify()
函数,以发送 WATCHDOG=1
(保持活动消息)。 如果 watchdog 未在超时期限内馈送,则 kubelet 将被终止。 将 Restart
设置为 "always"、"on-failure"、"on-watchdog" 或 "on-abnormal" 将确保该服务自动重新启动。
有关 systemd 配置的一些详细信息
- 如果将 systemd 的
WatchdogSec
值设置为 0 或省略设置,则不会为此单元启用 systemd watchdog。 - kubelet 支持的最小 watchdog 周期为 1.0 秒;这是为了防止 kubelet 意外终止。 你可以在 systemd 单元定义中将
WatchdogSec
的值设置为短于 1 秒的周期,但 Kubernetes 不支持任何更短的间隔。 超时不必是秒的整数。 - Kubernetes 项目建议将
WatchdogSec
设置为大约 15 秒的周期。 支持长于 10 分钟的周期,但明确不建议。
配置示例
[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=https://kubernetes.ac.cn/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 文档
上次修改时间:2024 年 11 月 27 日晚上 8:54 PST: feat: 添加系统看门狗配置文档 (#48465) (383dd007a3)