首页/开发/CI/CD 与发布速查/DaemonSet 滚动更新
发布策略60 条

DaemonSet 滚动更新

节点级守护进程(日志采集、监控 agent、网络插件)的更新:按 maxUnavailable 控制每次停掉多少节点的实例,逐节点替换。

CI/CD 与发布速查开发更新于 2026-10-13

DaemonSet 滚动更新是什么

节点级守护进程(日志采集、监控 agent、网络插件)的更新:按 maxUnavailable 控制每次停掉多少节点的实例,逐节点替换。默认策略是 RollingUpdate,默认每次更新一个节点。网络与存储类 DaemonSet 的更新会短暂影响节点网络,属于高风险对象:先在小批量节点验证,并保留回退镜像与操作手册。

基本信息

默认策略RollingUpdate
maxUnavailable默认 1(每次更新一个节点)
更新单位按节点替换 Pod
高风险对象CNI/网络插件的更新会短暂影响节点网络
回退保留旧版本镜像与操作手册

典型使用场景

  • 日志采集升级:逐节点替换,采集不中断
  • 监控 agent 更新:控制并发,保留指标连续性
  • 网络插件升级:小批量先行验证,再全量推进
  • 节点扩容适配:新镜像随节点加入自动生效
  • 故障回退:改回旧镜像触发逆向滚动
  • 灰度验证:先缩小节点范围验证再放开

更新策略

更新策略
updateStrategy:
  type: RollingUpdate      # 默认策略
  rollingUpdate:
    maxUnavailable: 1      # 每次最多 1 个节点不可用
# 更新后观察:kubectl rollout status daemonset/<name>

参数读法

参数含义注意
type更新策略RollingUpdate 逐节点替换
maxUnavailable每批停掉的节点数调大加速但影响面扩大
Pod 模板触发滚动的内容改镜像与配置都会触发
容忍与污点能否落到目标节点不匹配会停在中途
回退改回旧模板逆向滚动逐节点恢复
网络与存储类 DaemonSet 更新前,先在小批量节点验证并保留回退镜像与操作手册。
观察节奏:maxUnavailable 调大能加速,但网络类组件建议保持小步。
更新卡住的常见原因:新 Pod 调度不上或探针不通过,先看事件与探针。

推进节奏

  • 维护窗口:核心网络组件选择业务低峰推进
  • 分批验证:临时缩小节点选择范围确认,再放开全集群
版本回退演练:定期在非核心节点验证回退步骤,确认镜像与手册随手可用。

易错点

  • 全节点同时更新 CNI:集群内通信短暂中断,影响面被放大
  • 忽略污点与容忍配置:新版本 Pod 调度不到目标节点,更新停在部分节点
  • 忘记新版探针要求:探针不过就无限等待,先核对探针与启动时间
  • 回退只留镜像不核对参数:旧镜像配新参数同样起不来,回退清单要完整

数据来源与参考

  • Kubernetes 文档《Perform a Rolling Update on a DaemonSet》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌