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

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

集群升级(即 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_INTERVALPATCH_INTERVAL 分别替换为以秒为单位表示的时长 ,介于 0 天 (0s) 和 90 天 (7776000s) 之间。

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

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

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

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

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

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

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