目标
节点排空卡住,因为中断预算要求所有副本始终可用。本配方把 minAvailable 设为略低于副本数,使至少保留所需副本的同时允许一次中断,并用服务端试运行的 drain 验证预算允许排空;提醒 PDB 不保证容量,只限制中断,且需要副本数高于预算才有余量。
步骤要点
- 把 minAvailable 设为低于副本数的合理值。
- 用服务端试运行验证排空可进行。
- 让副本数高于预算以留出中断余量。
- 协调 PDB 与部署策略避免冲突。
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: app-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: api
排错提示
- 副本数不高于预算仍会阻断排空。
- 单副本工作负载无法容忍任何中断。
- PDB 不保证容量。
适用边界
- 只限制中断,不保证容量。
- 需要额外副本余量。