Kubernetes优雅终止与PodDisruptionBudget治理
概览
- 优雅终止通过发送 SIGTERM 与执行
preStop 使应用完成收尾;在宽限期内保持容器运行。
- PDB 限制自愿干扰(如节点维护/升级)导致的 Pod 同时中断数量,保障最小可用副本。
- 与
kubectl drain/Evictions API 协同,在滚动更新与维护时控制影响面。
技术参数(已验证)
- 终止:
terminationGracePeriodSeconds 控制宽限期;preStop 执行收尾;Readiness 掉线后从负载移除;结束时发 SIGKILL。
- PDB:设置
minAvailable 或 maxUnavailable;仅作用于自愿干扰,对非自愿故障不生效。
- 滚动:部署时结合
maxUnavailable 与 PDB;避免与副本数冲突导致阻塞。
- 运维:
kubectl drain --delete-emptydir-data --ignore-daemonsets --force 等选项;Eviction 请求受 PDB 约束。
- 观测:记录终止时长与连接丢失;在维护前后核验服务指标。
实战清单
- 为关键服务配置合理的宽限期与
preStop 收尾;在更新前验证连接耗尽。
- 设定 PDB 保证最小可用;协调滚动参数与维护窗口。
- 使用 Evictions 与 drain 演练流程;观测指标与告警,持续优化。
- Importance: 在变更期保持服务可用与连接完整,降低用户影响。
发表评论 取消回复