GKE 版本控制和支持

本页面介绍 Google Kubernetes Engine (GKE) 中的版本控制和版本支持的政策。您可以在 GKE 发布时间表中查看当前版本发布和支持时间表。

版本支持

Kubernetes 开源软件 (OSS) 社区当前大约每 3 个月发布一个具有新功能和增强功能的次要版本。从 Kubernetes 1.19 开始,OSS 支持每个次要版本 12 个月。在受支持的次要版本中发现的重大漏洞和安全漏洞是通过临时补丁程序版本发布修复的。Kubernetes 社区可能会不时修订其版本支持日历。

常规频道推出每个 GKE 次要版本后,Google 会提供总共 14 个月的支持。节点和节点池的版本最多比控制平面早两个次要版本,但由于 Kubernetes OSS 版本倾斜政策,其版本不能比控制平面版本更新。 为确保支持和可靠性,节点都应使用受支持的版本,而无需遵循有效的版本倾斜。

12 个月后,受支持的版本将在服务终止之前进入 2 个月维护期。

GKE 次要版本生命周期

次要版本生命周期的第一阶段从支持的 GKE 版本发布开始。运行受支持的次要版本的群集将收到常规补丁程序,以修复已报告的错误和安全问题。GKE 会根据当前的 Kubernetes OSS 社区版本支持政策,计划将受支持的次要版本保留 14 个月,包括常规频道发布后的 12 个月,以及 2 个月的维护期。

在次要版本在获得支持后大约 6 个月时,此版本将不再可用于创建新集群和控制层面。运行次要版本的控制层面将逐步升级到下一个受支持的次要版本。对于运行静态版本的集群,仍然可以在版本节点上创建新节点池,并且运行维护版本的集群将继续运行。发布版本集群要求控制层面和节点使用相同的次要版本。

在 12 个月的发布期结束时,GKE 提供 2 个月的维护期。在 2 个月的维护期内,不允许为维护版本创建新的节点池,但运行维护版本的现有节点池将继续运行。

在维护期结束时,维护版本会终止,并不再受支持。已结束的 GKE 次要版本不会再收到安全补丁程序和/或问题修复。

从 1.19 版开始,GKE 会在版本到达服务终止状态后升级正在运行不受支持的版本的节点,以确保集群正常运行并符合开源版本倾斜政策的规定。

Google 无法为服务终止版本提供补丁程序或更新。

请注意,在极少数情况下,由于 Kubernetes OSS 社区的政策调整、发现漏洞,或者无法合理解决的其他发现漏洞,可能需要对 GKE 版本的维护期或服务期限进行修改。如需获取最新可用版本,请参阅 GKE 版本说明

版本控制方案

GKE 将 GKE 补丁程序版本附加到 Kubernetes 语义化业界标准 (x.y.z-gke.n):

Kubernetes 主要版本 (x)
如果向公共 API 引入任何向后不兼容的更改,则主要版本通常会递增。主要版本将 Kubernetes 版本从 x.y 递增到 x+1.y。
Kubernetes 次要版本 (y)
Kubernetes 大约每 3 个月发布一个新的次要版本。次要版本将 Kubernetes 版本从 1.y 递增到 1.y+1;例如,Kubernetes 1.19 是 Kubernetes 1.18 之后的次要版本。
Kubernetes 补丁程序版本 (z)
通常每周都会发布可用于 GKE 的新版 Kubernetes 补丁程序(例如 1.18.6)。补丁程序版本按递增方式发布到每个地区
GKE 补丁程序版本 (-gke.a)
带 -gke.a 后缀的补丁程序版本(例如 1.18.6-gke.a)包含 GKE 安全更新和/或问题修复,以及开源上游 Kubernetes 软件。这些更新或修补程序是与 Google Cloud 兼容和互操作所必需的。

查看可用版本和默认版本

如需了解可用版本,请参阅 GKE 版本说明

您还可以通过 Google Cloud Console 或使用 gcloud 命令行工具检查指定地区中 Kubernetes 的可用版本和默认版本。

使用 gcloud 工具检查版本

如需查看可用的版本和默认版本,请为集群类型运行以下某个 gcloud 命令。每个biaoqianye 均提供命令以检查特定发布版或无发布版(静态)的版本。

快速

如要查看 Rapid 发布版本中的默认版本和可用版本,请运行以下命令:

默认版本

gcloud container get-server-config --flatten="channels" --filter="channels.channel=RAPID" \
    --format="yaml(channels.channel,channels.defaultVersion)"

可用版本

gcloud container get-server-config --flatten="channels" --filter="channels.channel=RAPID" \
    --format="yaml(channels.channel,channels.validVersions)"

常规

如要查看 Regular 发布版本中的默认版本和可用版本,请运行以下命令:

默认版本

gcloud container get-server-config --flatten="channels" --filter="channels.channel=REGULAR" \
    --format="yaml(channels.channel,channels.defaultVersion)"

可用版本

gcloud container get-server-config --flatten="channels" --filter="channels.channel=REGULAR" \
    --format="yaml(channels.channel,channels.validVersions)"

稳定版

如要查看 Stable 发布版本中的默认版本和可用版本,请运行以下命令:

默认版本

gcloud container get-server-config --flatten="channels" --filter="channels.channel=STABLE" \
    --format="yaml(channels.channel,channels.defaultVersion)"

可用版本

gcloud container get-server-config --flatten="channels" --filter="channels.channel=STABLE" \
    --format="yaml(channels.channel,channels.validVersions)"

无渠道

如要查看没有无发布(静态)的默认版本和可用版本,请运行以下命令:

默认版本

gcloud container get-server-config --format="yaml(defaultClusterVersion)"

可用的控制层面版本

gcloud container get-server-config --format="yaml(validMasterVersions)"

可用节点版本

gcloud container get-server-config --format="yaml(validNodeVersions)"

使用 Google Cloud Console 检查版本

要查看哪些是可用和默认版本,请执行以下步骤:

  1. 转到 Cloud Console 中的 Google Kubernetes Engine 页面:

    转到 Google Kubernetes Engine

  2. 点击 创建

  3. 选择标准集群模式,然后点击配置

  4. 位置类型部分中,选择集群的位置类型和所需位置。

  5. 控制平面版本部分中,选择发布版本。列出了该频道的所有当前可用版本。系统将自动选择默认版本。

指定集群版本

本部分仅适用于在标准模式下创建的集群。

使用 gcloud 工具创建或升级集群时,您可以使用 --cluster-version 标志指定集群版本。您可以使用某一特定版本,例如 1.9.7-gke.N。您还可以使用版本别名:

  • latest:指定集群的地区或区域中当前可在 GKE 上使用且受支持的最高 Kubernetes 版本。
  • 1.X:指定 1.X 次要版本中有效的最高 patch+gke.N 补丁程序版本
  • 1.X.Y:指定 1.X.Y 补丁程序版本中有效的最高 gke.N 补丁程序版本。
  • -:对于集群控制层面,指定控制层面的默认 Kubernetes 版本。对于节点升级,指定集群控制层面当前正在运行的版本。

如果通过将版本指定为 latest 来创建或升级集群,则不提供自动升级。请启用节点自动升级功能,以确保集群中的节点始终使用最新的稳定版本。

指定节点版本

本部分仅适用于在标准模式中创建的集群。在 Autopilot 集群中,节点会自动升级。

创建或升级节点池时,您可以指定其版本。默认情况下,节点与控制层面运行相同版本的 GKE。节点最多只能有两个次要版本高于控制层面。

除极少数例外情况外,即使集群版本不再可用,节点版本也仍旧可用。

版本支持常见问题解答

何时为每个次要版本启动支持窗口?

Kubernetes 次要版本的支持始于在常规发布版本中首次用于创建新集群时。

GKE 支持 Kubernetes 次要版本的时间是多久?

GKE 为每个可用 Kubernetes 次要版本提供 14 个月支持

在版本进入支持期后的大约 6 个月内,可以在次要版本上创建新集群。在版本进入支持期后大约 12 个月内,可以在次要版本上创建新节点池。这些版本将会在 14 个月的支持期内收到有关错误和安全问题的补丁程序。

GKE 次要版本的维护期和服务终止期之间有何区别?

维护期意味着版本预计即将进入服务终止期。在服务终止期内,GKE 次要版本将不会获得任何安全补丁程序、问题修复或新功能。

GKE 中的 Kubernetes 版本的支持何时终止?

Kubernetes 次要版本因支持期满 14 个月而不再受支持时,不受 GKE 支持。

维护开始日期会发生什么?

GKE 将通过现有的接触点,例如版本说明、项目联系人的电子邮件地址和 GKE 通知(如适用),通知客户即将到来的维护和终止版本。运行维护版本的现有节点池将继续运行,并且系统将停用维护版本新节点池创建。

服务终止日期时会出现什么情况?

在版本服务终止之前,运行服务终止版本的客户会通过电子邮件向项目联系人发送电子邮件通知。为了保证安全性和兼容性,GKE 还将逐步自动升级运行服务终止版本的节点(无论是否启用了自动升级),因为不会再为服务终止版本提供新的安全补丁程序或问题修复。在与运行终止版本的集群或节点相关的任何问题之前,请与 Cloud 客户服务部门联系,但必须先将集群和节点升级到受支持的版本。

我的集群将在何时自动升级?

当控制平面版本不再可用于新集群创建时,集群控制平面将自动升级到受支持的版本。

运行不受支持版本的节点将按计划在服务终止日期之后的一个月内自动升级到受支持的版本。

我可以在集群升级期间跳过多个 GKE 版本吗?

Kubernetes OSS 允许在工作器节点上跳过版本。例如,节点池在跳过版本 1.20.x 的同时,可以从 1.19.x 升级到 1.21.x。此外,您还可以在使用 gcloud 命令行工具或 GKE API 升级控制层面时跳过控制层面版本。

建议方法是将控制层面一次升级一个次要版本,并且每次将工作器节点升级到同一版本。例如,如需将控制层面从 1.19.x 版升级到 1.21.x 版,请先从 1.19.x 版升级到 1.20.x 版,然后升级工作器节点以与控制层面版本一致,之后重复此过程,将版本从 1.20.x 升级到 1.21.x。

逐步升级控制层面并将工作器节点升级到一致的版本有助于避免版本倾斜。我们建议您尽量避免跳过版本。跳过版本通常意味着更大的测试范围,虽然可管理但需要更多考虑。

或者,您可以创建具有所需版本的新集群并重新部署工作负载。

我可以将我的集群无限期地保留在 Kubernetes 版本中吗?

不会。每个 GKE 版本都支持 14 个月,使用终止的 GKE 版本运行集群会带来重大安全、可靠性和兼容性风险,因为没有为服务终止版本提供安全补丁程序和问题修复。

为获得支持,Kubernetes 版本预计的更新频率为多久?

我们建议您选择发布版本并启用节点自动升级,这有助于减少升级 GKE 版本所涉及的运营负担。但是,在手动升级时,我们建议不迟于每六个月升级一次,以获取对新功能的访问并保留在受支持的版本上。

GKE 控制平面的发布政策是什么?

不论集群是否已在发布版本中注册,或节点自动升级是否始终处于启用状态,集群控制平面都会定期升级。有关详情,请参阅自动升级