首页/开发/CI/CD 与发布速查/PodDisruptionBudget 与发布期运维
发布策略60 条

PodDisruptionBudget 与发布期运维

PDB 限制自愿中断时同时不可用的副本数:节点 drain、节点回收等运维动作受其约束;对 Deployment 自身滚动更新不生效,但决定运维与发布能否安全穿插。

CI/CD 与发布速查开发更新于 2026-10-12
字段minAvailable / maxUnavailable(数量或百分比)
作用范围通过 Eviction API 的自愿中断(drain、节点回收)
不覆盖滚动更新的替换、非自愿中断(宕机)
行为预算不允许时驱逐被拒绝

PDB 示例

PDB 示例
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata: {name: web-pdb}
spec:
  minAvailable: 80%
  selector:
    matchLabels: {app: web}
PDB 拖得住 drain,拖不住 Deployment 控制器:滚动更新的 Pod 替换不查 PDB。

易错点

  • minAvailable 等于副本数:drain 永远无法完成,节点维护被无限阻塞
  • PDB 选择器写错标签:保护了错误的 Pod 集合,关键时刻失去约束

数据来源与参考

  • Kubernetes 文档《Specifying a Disruption Budget for your Application》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌