首页/云/Kubernetes 速查/DaemonSet 更新策略与滚动参数

DaemonSet 更新策略与滚动参数

RollingUpdate(默认)按 maxUnavailable 逐节点替换;maxUnavailable 可数字或百分比,集群大时控制同时更新的节点数。

Kubernetes 速查云更新于 2026-10-13

守护进程怎么滚动更新

守护进程集在每个节点上运行一个副本,更新时按节点逐个替换,而不是像普通部署那样在副本之间轮换。可用副本数参数决定同时允许有多少个节点处于更新中,集群规模越大这个参数越关键:它直接决定更新期间有多少节点暂时没有该组件。

基本信息

适用平台Kubernetes 1.20+
默认策略滚动更新
关键参数同时不可用数量,可用数字或百分比
副本分布受节点数量与选择器决定
回滚方式与前一个版本之间滚动切换

典型使用场景

  • 节点级代理日志或监控组件升级
  • 网络插件与存储插件的版本更新
  • 集群规模大时控制同时更新的节点数量
  • 节点加入后自动补齐组件副本
  • 排查组件版本不一致:部分节点仍是旧版本

策略配置

策略配置
spec:
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1     # 同时只更新一个节点,或写 10%
      maxSurge: 0           # 节点级组件通常就地替换,不做额外增援

操作

操作
kubectl set image ds/node-agent agent=agent:2.4.0 -n kube-system   # 触发更新
kubectl rollout status ds/node-agent -n kube-system --timeout=10m  # 观察进度
kubectl get pods -l name=node-agent -n kube-system -o wide         # 各节点版本
kubectl rollout undo ds/node-agent -n kube-system                  # 需要时回滚

参数读法

参数含义取值建议
同时不可用数量允许同时有几个节点不带组件集群越大越应保守,先按一个节点起步
额外增援数量是否允许临时多出副本节点级组件通常设为零
更新策略滚动或手动触发需要人工窗口时改为手动
期望与就绪数覆盖节点数与就绪副本数量不符说明部分节点未成功
更新过程中,处于更新中的节点上该组件是缺失的。日志、监控与网络插件都存在这个窗口,因此参数取值要结合它们对业务的实际影响来定。
把同时不可用数量设置得过大,会让大量节点在短时间内同时失去代理组件,监控与日志出现盲区,排查窗口恰好在此刻丢失。

易错点

  • 同时不可用数量过大:大量节点同时缺少代理组件,监控与日志出现盲区
  • 回滚忽略版本兼容:新代理组件与后端服务端不兼容时,回滚同样需要评估
  • 以为更新会自动补齐新节点:节点加入依赖选择器与调度条件,需确认副本覆盖完整
  • 只关注整体进度不看单节点:少数节点更新失败时整体进度可能看起来正常

数据来源与参考

  • Kubernetes 官方文档 · DaemonSet(Update Strategy)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌