GKE 版本控制和支持


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

版本支持

Kubernetes 开源软件 (OSS) 社区目前会每年发布三次带有新功能和增强功能的次要版本。每个发布周期大约为 15 周。

从 Kubernetes 1.19 开始,OSS 支持每个次要版本 12 个月。在受支持的次要版本中发现的重大漏洞和安全漏洞是通过临时补丁版本发布修复的。Kubernetes 社区可能会不时修订其版本支持日历。

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

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

GKE 次要版本生命周期

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

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

从 GKE 1.19 版开始,GKE 会在版本到达服务终止状态后升级正在运行不受支持的版本的节点,以确保集群正常运行并符合开源版本倾斜政策的规定。运行不受支持版本的节点在版本服务终止时可能不会立即升级,并且实际时间可能由 Google 自行决定。

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 每年发布三次新的次要版本。每个发布周期大约为 15 周。已弃用的 API 可以与新的次要版本(例如 1.22)一起移除。次要版本将 Kubernetes 版本从 1.y 递增到 1.y+1;例如,Kubernetes 1.19 是 Kubernetes 1.18 之后的次要版本。
Kubernetes 补丁版本 (z)
通常每周都会发布可用于 GKE 的新版 Kubernetes 补丁(例如 1.18.6)。补丁版本按递增方式发布到每个地区
GKE 补丁版本 (-gke.N)
带 -gke.N 后缀的补丁版本(例如 1.18.6-gke.N)包含 GKE 安全更新和/或 bug 修复,以及开源上游 Kubernetes 软件。这些更新或修补程序是与 Google Cloud 兼容和互操作所必需的。

查看可用版本和默认版本

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

您还可以通过 Google Cloud 控制台或使用 Google Cloud CLI 检查指定可用区中 Kubernetes 的可用版本和默认版本。

使用 gcloud CLI 检查版本

如需查看可用的版本和默认版本,请为集群类型运行以下某个 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 控制台检查版本

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

  1. 转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 点击 创建

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

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

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

指定集群版本

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

使用 gcloud CLI 创建或升级集群时,您可以使用 --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 个月支持。 版本会在支持期内收到错误和安全问题的补丁。

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

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

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

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

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

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

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

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

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

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

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

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

GKE 不允许跳过集群控制平面的次要版本,但您可以跳过补丁程序版本。工作器节点允许跳过次要版本。例如,节点池在跳过版本 1.24 的同时,可以从 1.23 版升级到 1.25 版。

若要跨多个次要版本升级集群,对于控制层面,您一次只能升级一个次要版本,并且每次需将工作器节点升级到同一版本。例如,如需将控制平面从 1.23 版升级到 1.25 版,请先从 1.23 版升级到 1.24 版,然后升级工作器节点,以便与控制平面版本匹配,然后重复此过程,将版本从 1.24 版升级到 1.25 版。

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

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

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

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

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

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

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

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