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 个月的维护期。

在 12 个月的发布期结束时,GKE 提供 2 个月的维护期。在维护期间的 2 个月内,系统不会再允许创建新的集群,但运行维护版本的现有集群将继续运行。

在维护期结束时,维护版本会终止,并不再受支持。已结束的 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。节点最多只能有两个次要版本高于控制层面。

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

版本支持常见问题解答

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

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

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

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

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

维护期指预计即将进入服务终止期的版本,并且可能仅接收重要的安全补丁程序和错误。在服务终止期内,GKE 次要版本将不会获得任何安全补丁程序、问题修复或新功能。

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

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

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

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

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

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

服务终止后,我的集群何时会自动升级?

您的集群应该会在服务终止日后的一个月内自动升级到受支持的版本。

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

Kubernetes OSS 允许在工作器节点上跳过版本。例如,节点池在跳过版本 1.20.x 的同时,可以从 1.19.x 升级到 1.21.x。不过,控制平面不支持跳过的版本;因此,每个新的次要版本都需要升级控制平面。

例如,要将控制平面从 1.19.x 升级到 1.21.x,必须先将控制平面从 1.19.x 升级到 1.20.x,然后从 1.20.x 升级到 1.2.x。

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

作为最佳做法,我们建议您持续升级节点以匹配控制平面的版本,并避免使用版本倾斜和跳过版本(如果可能)。跳过版本通常意味着更大的测试范围,虽然可管理但需要更多考虑。

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

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

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

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

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

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