如何暂停GKE集群自动升级?Maintenance exclusions是否有效?
暂停GKE集群自动升级的可行方案及Maintenance Exclusions有效性说明
核心结论
GKE没有完全禁用所有自动升级的官方选项,但可以通过以下方式最大限度延迟或暂停升级,避免Pod/节点重启:
1. Maintenance Exclusions(维护排除期):直接有效
设置数周的维护排除期完全可行,这段时间内GKE不会对集群控制平面和节点执行任何自动升级(包括安全补丁、次要版本升级)。
- 支持最长60天的排除期,到期后需手动续期;
- 命令行设置示例:
gcloud container clusters update YOUR_CLUSTER_NAME \ --maintenance-exclusion-name=nifi-fix-window \ --maintenance-exclusion-start=2024-05-01 \ --maintenance-exclusion-end=2024-06-15 \ --zone=YOUR_CLUSTER_ZONE - 控制台操作路径:进入集群详情页 → 维护模块 → 添加排除期,按需求设置起止日期即可。
2. 脱离发布通道+手动控制升级
切换到无发布通道模式后,结合手动配置进一步限制自动升级:
- 控制平面:即使无通道,GKE仍会计划自动升级,但可在控制台点击「推迟升级」,最多延迟30天;
- 节点池:将节点池设置为手动升级模式,彻底禁止节点自动升级:
gcloud container node-pools update YOUR_NODE_POOL_NAME \ --cluster=YOUR_CLUSTER_NAME \ --zone=YOUR_CLUSTER_ZONE \ --no-autoupgrade
3. 锁定特定版本(短期过渡方案)
如果需要更长时间稳定版本,可锁定到GKE官方支持的特定版本(需确认版本未进入废弃周期):
gcloud container clusters update YOUR_CLUSTER_NAME \ --zone=YOUR_CLUSTER_ZONE \ --cluster-version=1.28.9-gke.1000
同时配合节点池的--no-autoupgrade和Maintenance Exclusions,能在版本支持期内避免自动升级触发的重启。
关键提醒
- 上述方案均为临时过渡措施,长期必须修复NiFi部署的重启耐受性(比如采用StatefulSet、配置优雅关闭钩子、持久化状态数据等),符合容器化应用的设计预期;
- 需关注GKE版本的支持生命周期,锁定的版本一旦进入废弃期,GKE会强制触发升级,需提前规划后续操作。
内容的提问来源于stack exchange,提问作者Neron Joseph
相关产品推荐
相关产品推荐

