重启 kubelet 意味着什么
kubelet 是节点上的 Pod 管家:负责创建容器、挂载卷、执行探针、上报节点与 Pod 状态、执行驱逐判定。重启它时,已经在运行的容器进程不会被打断——容器由容器运行时托管,不随 kubelet 进程退出;受影响的是一段时间内状态不再上报、探针与驱逐判定暂停。因此节点可能短暂显示 NotReady,业务进程本身通常无感。
基本信息
| 所属平台 | Linux 节点,由 systemd 托管服务单元 kubelet |
|---|---|
| 常用命令 | systemctl restart kubelet |
| 业务影响 | 容器进程不重启,Pod 不重建 |
| 中断项 | 状态上报、探针判定、驱逐判定、新 Pod 启动 |
| 恢复观察 | kubectl get node -w 看 Ready 状态回正 |
典型使用场景
- 修改 kubelet 配置后生效:config.yaml 中的参数只在启动时读取,改完必须重启
- 节点 kubelet 异常:进程僵死或状态不再上报时用重启做快速恢复
- 调整驱逐阈值或镜像回收参数:属于必须重启才生效的配置项
- 证书轮换后:部分证书更新需要 kubelet 重新加载才能被采集端识别
- 配合节点维护:与其他节点动作编排在一起,避免同一时间多个节点同时抖动
操作与确认
操作与确认
systemctl status kubelet --no-pager # 重启前先记录当前状态
systemctl restart kubelet # 执行重启
systemctl is-active kubelet # 确认服务已拉起
journalctl -u kubelet --since '2 min ago' | tail -50 # 启动期报错在此
kubectl get node node1 # 确认节点状态回到 Ready三类操作的影响范围
| 操作对象 | 容器进程 | Pod 对象 | 主要风险 |
|---|---|---|---|
| 重启 kubelet | 不受影响,继续运行 | 不重建 | 状态上报与探针短暂中断 |
| 重启容器运行时 | 被中断,容器停止 | 会重建 | 业务真实中断,可能触发驱逐 |
| 重启节点主机 | 全部停止 | 重建或重新调度 | 影响面最大,需先排水与确认冗余 |
重启前先确认节点上没有正在进行的排水、升级或维护动作;重启期间节点短暂 NotReady 会使上层控制器认为该节点不可用,若同时有其他节点故障,副本冗余可能被击穿,务必确认集群当前余量。
kubelet 重启后需要重新向 apiserver 注册并同步一次全部 Pod 状态,大节点上这一段可能持续数十秒。观察时不要因为一两分钟内仍显示 NotReady 就重复重启,容易把可恢复的抖动变成持续故障。