标准答案

  1. maxSurge 较大可以更快拉起新版本,但会增加临时 CPU、内存和调度压力。
  2. maxUnavailable 较大可以降低并行资源需求,但更新期间可用副本减少更多。
  3. 滚动更新还受 readiness、启动耗时、PDB、调度资源和镜像拉取影响,参数本身不保证零停机。
  4. 发布前要验证新旧版本兼容、探针、连接排空、数据库迁移和回滚路径。

题目解析

maxSurge 决定更新时允许临时多出的 Pod 数,maxUnavailable 决定滚动过程中允许少于期望副本的数量。它们共同影响新旧版本并行时间、资源峰值和可用容量;百分比还会按副本数取整,不能只背参数名称。

即使 maxUnavailable 为 0,也可能因新版本启动慢、readiness 失败、节点不足、镜像拉取或下游不兼容而无法提供业务可用性。发布前要按峰值容量和 surge 资源演算,并验证新旧版本协议、数据库迁移、连接排空和回滚。

常见误区

  • 误区:把 maxUnavailable=0 当成绝对零停机。改正:同时验证探针、流量切换、依赖兼容和节点资源。
  • 误区:忽略 surge 期间的集群容量。改正:为临时副本、镜像拉取和启动峰值预留资源,或选择分批发布。

作者信息