控制自动升级造成的中断频率

本文档介绍了集群中断预算的概念,并说明了如何根据环境需求选择性地自定义这些预算。集群中断预算是一套功能中的一种工具,可帮助平台管理员最大限度地减少对工作负载的中断,同时提升工作负载的性能、可靠性和安全性。

集群升级(即 GKE 更新集群控制平面和节点所使用的版本)可能会严重中断 GKE 集群的运行。如需详细了解升级,请参阅 GKE 集群升级简介。如需了解可最大限度减少集群升级期间中断的其他所有功能,请参阅该文档的控制集群升级部分。如需详细了解集群升级之外的集群生命周期更改,请参阅管理集群生命周期更改,以最大限度地减少中断。

什么是集群中断预算

为确保集群不会因自动升级而过于频繁地中断,GKE 默认应用集群中断预算,以设置自动集群控制平面升级之间的最短间隔。GKE 还会将此预算应用于集群创建和首次自动控制平面升级之间。此外,如果您手动升级集群控制平面,GKE 在执行下一次自动升级时会遵循集群中断预算。即使此升级违反了集群中断预算,您也可以随时手动升级集群。

在集群中,GKE 会先自动升级控制平面,然后再升级节点。因此,此预算还设置了自动集群节点升级的最低频次。

GKE 为不同类型的版本升级设置了默认的集群中断预算:

  • 补丁版本升级:24 小时
  • 次要版本升级:30 天

GKE 会在相同类型的升级之间应用预算。例如,GKE 在将集群从 1.35.0-gke.1403000 补丁版本升级到 1.35.0-gke.1624000 补丁版本之间等待 24 小时,在从 1.34 升级到 1.35 之间等待 30 天。不过,GKE 会在次要版本升级后等待 24 小时,然后再执行补丁升级。

GKE 仅将集群中断预算用于集群升级,而不用于对 GKE 集群的其他类型的更改。

集群中断预算与维护窗口和排除项不同,但可以很好地搭配使用。维护政策控制何时可以和不可以进行 GKE 集群维护,而集群中断预算则设置集群升级之间的特定时间间隔。

何时自定义集群的中断预算

GKE 的默认集群中断预算反映了升级及时性之间的平衡,同时还避免了连续升级并针对稳定性进行了优化。不过,这些常规值可能不适合您的集群环境。

如果您想控制自动集群升级之间的最短时间,可以配置集群中断预算。例如,请考虑以下场景:

  • 您有一个自定义流程,用于在将 GKE 控制平面补丁版本推送到生产环境之前对其进行评估,并且此流程需要花费超过默认集群预算的特定时间。
  • 您拥有大型集群,升级所有节点池需要更长时间。您希望在这些节点池中保持相对一致的版本。因此,您可以降低补丁升级的频率,每月升级一次,同时允许频繁的维护窗口,以帮助确保节点池升级及时完成。

为自动升级设置集群中断预算

如果您有控制两次次要升级或两次补丁升级之间的时间间隔的特定需求,则可以设置自己的集群中断预算。不过,我们建议您先配置维护窗口,以设置 GKE 集群维护的周期性时间。然后,您可以选择使用集群中断预算自定义升级间隔。

我们建议您将集群中断预算与 GKE 提供的其他可用工具搭配使用,以控制集群升级。这些设置可与其他所有升级工具搭配使用,但仅影响 GKE 将集群自动升级到新版本的时间。GKE 仍会遵循维护窗口和排除项,遵循发布序列的顺序,并应用通常用于自动升级的任何其他标准做法。

默认集群中断预算为:补丁升级 24 小时,次要升级 30 天。您可以将间隔时间配置为 0 到 90 天之间的任意时长。不过,在更新这些值时,您应注意以下事项:

  • 我们建议您不要将补丁升级间隔设置为超过 30 天,除非您有特定的版本资格认证流程,且该流程需要更长时间。如果您升级的频率低于 30 天,可能会错过关键补丁。
  • 我们建议您允许尽可能频繁地进行小版本升级,以满足集群环境的需求。如果您将次要升级间隔设置为最长 90 天,则 GKE 必须在次要版本达到支持终止日期时将您的集群从该次要版本升级的可能性会增加。当次要版本达到支持终止期限时,GKE 会遵循单独的集群中断预算,在 7 天内完成次要升级,并且不会遵循您配置的任何集群中断预算。如需了解详情,请参阅在支持终止时自动升级。
  • 建议您将补丁升级间隔时间设置为比次要升级间隔时间短。

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。如果您之前安装了 gcloud CLI,请通过运行 gcloud components update 命令来获取最新版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。

配置集群中断预算

首先,如果您尚未配置维护时段,建议您执行此操作。

然后,如需设置自定义集群中断预算,请在使用 gcloud CLI 创建或更新集群时使用以下标志:

  • 次要升级: --maintenance-minor-version-disruption-interval=MINOR_INTERVAL
  • 补丁升级: --maintenance-patch-version-disruption-interval=PATCH_INTERVAL

对于这些标志,请将 MINOR_INTERVAL 或 PATCH_INTERVAL 分别替换为以秒为单位的时长,范围介于 0 天 (0s) 和 90 天 (7776000s) 之间。

您可以在以下情况下使用这些标志:

您可以同时使用这些标志,也可以单独使用。

将集群中断预算重置为默认值

如需将集群中断预算重置为默认值(补丁升级为 24 小时,次要升级为 30 天),您可以使用以下标志:

  • 次要升级:--clear-maintenance-minor-version-disruption-interval
  • 补丁升级:--clear-maintenance-patch-version-disruption-interval

使用 gcloud container cluster update 命令更新集群时,请使用这些标志。

您可以同时使用这些标志,也可以单独使用。