本页面介绍了如何获取有关 Google Kubernetes Engine (GKE) 集群升级的信息。GKE 会随着时间的推移自动升级所有集群。当 GKE 升级集群时,GKE 会在单独的操作中更新 Kubernetes 控制平面和工作器节点的版本。
GKE 会汇总有关集群升级的信息,帮助您更好地了解集群的状态。您可以获取集群的以下信息:
- 预定升级(预览版):GKE 会在自动集群控制平面升级和自动集群节点升级前至少 72 小时通知您。启用预定升级后,GKE 仍会定期自动升级集群,但只有在提前通知的情况下才会进行升级。如果您未提前收到通知,则集群不会自动升级。
- 自动升级目标:了解 GKE 以哪些新版本作为集群的目标,这些版本可能是补丁或新的次要版本,具体取决于集群的现有版本和限制条件。如果没有自动升级目标,则表示集群已是最新的升级目标,或者由于技术或业务原因,GKE 未分配自动升级目标。如需根据集群的次要版本检索常规自动升级目标,请参阅 GKE 版本说明中的版本更新,例如 2024-R33 说明。
- 自动升级状态:GKE 集群具有集群升级状态。您可以使用此状态详细了解当前升级,以及 GKE 在选择何时自动升级集群时考虑的限制条件,包括维护排除项或阻止升级的原因等因素。如需了解详情,请参阅集群自动升级状态。
升级历史记录:GKE 会提供集群最近的控制平面升级和节点升级的快照,包括自动升级和手动升级。对于最近的控制平面和节点升级,您可以查看以下详细信息:
- 版本:初始版本和目标版本。
- 状态:升级是否仍在运行,或者是否已成功、失败或取消。
- 时间:开始时间和结束时间。
- 启动类型:升级是自动触发还是手动触发。
停止支持日期:GKE 最多支持次要版本 24 个月。如需了解详情,请参阅 GKE 次要版本生命周期。如需了解所有当前次要版本的支持终止日期,请参阅发布渠道的预计时间表。
集群事件:GKE 会针对某些事件(例如升级开始或完成时、新版本可用时、安全公告及停止支持日期)向 Cloud Logging 发送集群通知。除了 GKE 通过 Cloud Logging 自动显示这些事件之外,您还可以将这些通知路由到 Pub/Sub。如需了解详情,请参阅集群通知。
准备工作
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。如果您之前安装了 gcloud CLI,请通过运行
gcloud components update命令来获取最新版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。
接收有关计划性集群升级的通知
您可以为 GKE 启用预定升级,以便提前收到以下类型的自动集群升级通知:
启用此选择启用功能后,GKE 会将集群通知发布到 Cloud Logging,或者(可选)发布到 Pub/Sub,告知您以下信息:
- 集群名称。
- 升级窗口的开始时间。控制平面的时间范围为 8 小时,节点的时间范围为 10 天。
- 目标版本。
- 受影响的节点池(对于节点升级):每封通知都针对一个自动升级目标,并列出最多 10 个已安排升级的节点池。 请注意,共享此自动升级目标的所有节点池都将升级,而不仅仅是列出的节点池。如需确认特定节点池是否受到影响,请获取节点池的升级信息,验证其自动升级目标是否与通知中的目标一致。
GKE 会在开始时间前 72 到 96 小时通知您。GKE 会在 8 小时(控制平面)或 10 天(节点)的开始时间窗口内开始控制平面升级或节点升级,以升级到以下版本之一:
- 通知中指明的 GKE 版本
- 如果某个补丁在升级之前成为集群发布渠道中的自动升级目标,则升级到同一次要版本中的后续补丁
通过预定升级通知,您可以确切了解 GKE 何时会开始升级控制平面或节点池。不过,此通知并不保证 GKE 会在提供的时间升级您的集群。此外,通知仅告知您升级何时开始,并不保证升级是否完成。
如果您启用此功能,并且集群中有很多节点,我们建议您还应配置并发节点池升级,以便节点升级能够尽快完成,同时又不会对集群环境造成不可接受的影响。
如果您不启用此功能,GKE 仍会自动升级集群控制平面。不过,如果不使用此功能,默认行为是您不会提前收到预定升级通知。
请查看以下部分,了解在收到预定升级通知时可以采取或不采取哪些操作,以及 GKE 可能不会在指定时间升级集群的其他原因。
收到预定升级通知后应采取的行动
如果您已准备好在通知中指定的时间进行预定升级,则无需采取任何进一步的操作,只需在 GKE 启动自动升级时监控集群环境和工作负载的运行状况即可。
或者,您也可以采取以下一些措施,这些措施会影响升级时间:
- 维护排除项:如果您尚未准备好让 GKE 自动升级控制平面或节点池,可以配置维护排除项,以防止在预定升级时间进行升级。
- 维护窗口:您还可以配置维护窗口,以指定 GKE 自动升级集群的一周中的不同时间。
- 手动升级:如果您希望尽快完成升级,可以根据预定升级的类型手动升级集群的控制平面或手动升级节点池。
GKE 可能不会执行预定升级的原因
如果在发送通知和计划开始升级之间发现版本存在问题,GKE 可能不会在指定的时间窗口内执行预定升级。如需了解详情,请参阅找出阻止集群进行下一次升级的因素。
对于节点升级,如果 GKE 发送的通知汇总了具有相同自动升级目标的所有节点池,则 GKE 可能无法在 10 天的时间窗口结束之前启动所有升级。对于具有多个节点池或升级时间较长的节点池(例如包含多个节点的大型节点池),这种情况更可能发生。对于这些节点升级可能需要较长时间才能完成的集群,我们建议您配置并发节点池升级,以便 GKE 可以在 10 天的时间范围内同时升级多个节点池。
如果 GKE 因您的操作、时间限制或其他不可预见的情况而取消或无法执行预定升级,则在重新安排升级时,GKE 会发送另一条集群通知。
限制
- 您无法通过发布序列启用计划性升级。
- GKE 不会针对已取消的预定升级发送通知。GKE 仅针对新的预定升级发送通知。
- 如果您启用预定升级,则启用此功能可能会导致自动升级完成速度比未启用通知时慢。出现此效应的原因是,对于每次升级,GKE 都需要提前至少 72 小时通知您,遵守开始窗口,并遵守您为集群配置的任何维护窗口。如果您需要以最高效率在集群中进行升级,尤其是当您有大量节点池或大型节点池时,我们还建议您配置并发节点池升级。此外,您还可以使用手动升级在需要时推进升级。
- 请勿为节点池数量超过 1,000 的集群启用预定升级。
- GKE 仅针对版本升级(包括控制平面升级和节点升级)提供预先通知,而不针对其他类型的节点更新提供预先通知。如需详细了解升级(版本更新)与其他类型更新之间的区别,请参阅管理集群生命周期更改,以最大限度地减少中断。
- 您无法使用 Terraform 启用或停用预定升级。
计划内升级通知仅保证在未事先通知的情况下,不会开始自动集群控制平面或节点升级。不过,通知并不保证以下几点:
- 我们无法保证升级会在确切的时间开始,只能保证控制平面升级会在 8 小时的开始窗口内开始,节点升级会在 10 天的开始窗口内开始。
- 但无法保证 GKE 会在该时间段内开始升级。如需了解详情,请参阅 GKE 可能无法执行预定升级的原因。
- 如果发布渠道中存在同一次要版本的后续补丁自动升级目标,则无法保证 GKE 会自动将控制平面或节点池升级到确切的补丁版本。
启用计划性升级
启用预定升级,将 CLUSTER_NAME 替换为集群名称:
gcloud beta container clusters update CLUSTER_NAME
--enable-scheduled-upgrades
启用预定升级后,您可以使用 Cloud Logging 查看通知,也可以使用 Pub/Sub 配置通知。如需了解详情,请参阅集群通知。
此外,如果您的集群中有很多节点,我们还建议您配置并发节点池升级,以便节点升级能够尽快完成,同时又不会对集群环境造成不可接受的影响。
收到预定升级通知后,请查看收到预定升级通知后该怎么做。
停用计划性升级
停用预定升级,将 CLUSTER_NAME 替换为集群名称:
gcloud beta container clusters update CLUSTER_NAME
--disable-scheduled-upgrades
停用此功能后,GKE 不会再就预定升级向您发送通知。
获取有关集群升级的信息
您可以使用Google Cloud 控制台或 gcloud CLI 主动获取有关集群升级的信息。
在项目级层获取有关升级的信息
如需获取项目中集群升级的聚合信息,您可以使用升级信息中心。
在 Google Cloud 控制台中,前往升级信息中心:
此信息中心内包含的标签页会汇总有关升级的相关信息,例如:
- 最近的控制平面和节点升级的状态
- 升级的集群通知日志
- 与升级相关的建议
- 特定次要版本的停止支持时间表
- 每个发布渠道中的集群数量
在集群级层获取升级信息
控制台
在 Google Cloud 控制台中,前往 Kubernetes 集群页面。
选择集群的名称以查看其集群详细信息页面。
在集群详情页面上,查看集群升级部分。
gcloud
运行以下命令:
gcloud container clusters get-upgrade-info CLUSTER_NAME
将 CLUSTER_NAME 替换为您的集群的名称。
获取 Standard 集群节点池的升级信息
您可以了解 Standard 集群的各个节点池。本部分不适用于 Autopilot 集群,GKE 会管理节点,因此您不需要管理节点池。
控制台
在 Google Cloud 控制台中,前往 Kubernetes 集群页面。
点击集群名称以查看其详细信息。
点击节点标签页。
在节点池部分中,点击要获取升级信息的节点池的名称。
在节点池详细信息页面中,查看升级部分。
gcloud
运行以下命令:
gcloud container node-pools get-upgrade-info POOL_NAME
--cluster=CLUSTER_NAME
将 POOL_NAME 替换为节点池的名称。
集群自动升级状态
以下是集群自动升级的潜在状态:
ACTIVE:活跃升级状态。UNKNOWN:升级状态未知。MINOR_UPGRADE_PAUSED:次要版本升级已暂停。UPGRADE_PAUSED:所有自动升级都已暂停。
以下是 GKE 暂停集群自动升级的潜在原因:
MAINTENANCE_WINDOW:维护窗口导致集群升级无法完成。MAINTENANCE_EXCLUSION_:如果暂停原因包含此前缀,则表示维护排除项正在阻止集群升级。后缀表示维护排除项的范围,例如MAINTENANCE_EXCLUSION_NO_UPGRADES。CLUSTER_DISRUPTION_BUDGET:在某些操作(例如集群创建或升级)之后,集群需要一段冷却期来保护集群及其应用程序的稳定性和可用性。CLUSTER_DISRUPTION_BUDGET_MINOR_UPGRADE:集群超出次要版本升级的集群中断预算。SYSTEM_CONFIG:由于技术或业务原因,自动升级已暂停。在这种状态下,我们建议您仅在必要时执行手动升级。AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED:原因不明。
查找有关集群升级常见场景的信息
查找有关管理集群升级时可能遇到的常见场景的信息。
了解集群的下一次升级时间
如需了解集群的下一次升级时间,以便您可以规划并合格地升级到新版本,请使用以下资源:
- 发布时间表:在发布渠道的预计时间表中,找到与集群的次要版本和发布渠道对应的预计自动升级日期。
- 在集群级层获取升级信息:查找集群的自动升级目标。
- 集群通知:当渠道中推出新版本时,GKE 会发送通知。新版本发布后(具体时间取决于渠道),GKE 会将该版本指定为渠道中的自动升级目标。如需查看这些通知,请在 Cloud Logging 中查看集群通知时过滤
UpgradeAvailableEvent。 - 版本说明:请参阅版本说明,了解 GKE 何时将新的次要版本设置为渠道中的自动升级目标。
找出阻止集群进行下一次升级的因素
如需了解阻碍升级的原因以便解除阻碍,请查找集群的自动升级状态。如果自动升级处于暂停状态,请查看原因。请采用以下方法之一:
- 在项目级获取升级信息(预览版)。点击升级标签页,您可以在其中看到升级状态表格。在表格中找到您的集群,然后查看该集群的自动升级列。
- 在集群级获取升级信息,以查找集群的自动升级状态。
了解集群的升级何时完成
如需了解集群的控制平面和节点升级何时完成,以便验证工作负载是否按预期运行,请使用以下资源:
- 集群通知:当 GKE 完成集群升级操作时,GKE 会发送通知。如需查看这些通知,请在 Cloud Logging 中查看集群通知时过滤
UpgradeInfoEvent。 - “升级”信息中心(预览版):前往Google Cloud 控制台中的升级状态表格。找到您的集群。如果状态列显示“已升级”,请查看最新更新列,了解升级完成时间。
- 在集群级获取升级信息:使用 gcloud CLI 查找集群的升级历史记录,其中包括近期的升级。
了解升级预计需要多长时间
如需了解升级预计需要多长时间,您可以在集群级获取升级信息,从而了解过去升级的时长。请参阅升级历史记录以了解最新示例。
升级时长取决于升级的是控制平面还是节点、升级策略、Pod 中断预算 (PDB)、有效维护政策和其他因素。
了解集群的次要版本何时达到支持终止期限
GKE 会自动升级仍在运行已过停止支持日期的次要版本的集群。如需了解详情,请参阅在停止支持时自动升级。
如需了解集群的次要版本何时达到停止支持日期(例如,设置维护排除项或了解已弃用的 API 何时无法再使用),请使用以下资源:
- 发布时间表:在发布渠道的预计时间表中,找到与集群的次要版本和发布渠道对应的停止支持日期。对于不在扩展渠道中的集群,请参阅停止标准支持日期。对于在扩展渠道中的集群,请参阅停止扩展支持日期。
- 集群通知:当集群运行的次要版本已过或即将达到停止支持期限时,GKE 会发送通知。如需查看这些通知,请在 Cloud Logging 中查看集群通知时过滤
UpgradeInfoEvent。 - 数据洞见和建议:当您的集群运行的次要版本已超出停止标准支持日期时,GKE 会通知您。如需了解详情,请参阅识别运行的次要版本已超出停止标准支持日期的集群。
- 在集群级获取升级信息:查找集群的次要版本停止支持日期。
- “升级”信息中心(预览版):升级信息中心包含版本停止支持部分,其中列出了特定版本及其距离停止支持还剩的天数。