← 中文资源

简体中文版本

调整 PodDisruptionBudget 的 minAvailable

设置既能保护可用性、又不会完全阻断自愿中断的中断预算。

阅读英文原文

目标

节点排空卡住,因为中断预算要求所有副本始终可用。本配方把 minAvailable 设为略低于副本数,使至少保留所需副本的同时允许一次中断,并用服务端试运行的 drain 验证预算允许排空;提醒 PDB 不保证容量,只限制中断,且需要副本数高于预算才有余量。

步骤要点

  1. 把 minAvailable 设为低于副本数的合理值。
  2. 用服务端试运行验证排空可进行。
  3. 让副本数高于预算以留出中断余量。
  4. 协调 PDB 与部署策略避免冲突。
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: app-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: api

排错提示

  • 副本数不高于预算仍会阻断排空。
  • 单副本工作负载无法容忍任何中断。
  • PDB 不保证容量。

适用边界

  • 只限制中断,不保证容量。
  • 需要额外副本余量。