本页面介绍 Google Kubernetes Engine (GKE) 中的版本控制和版本支持的政策。您可以在 GKE 发布时间表中查看当前版本发布和支持时间表。
版本支持
GKE 对 Kubernetes 次要版本的支持基于 Kubernetes 开源政策。GKE 通过提供同一次要版本的补丁版本来支持次要版本,并定期将集群自动升级到这些较新的补丁。
Kubernetes 如何支持次要版本
Kubernetes 开源软件 (OSS) 社区每年发布三次带有新功能和增强功能的次要版本。每个发布周期大约为 15 周。
Kubernetes 支持每个次要版本 14 个月。在受支持的次要版本中发现的重大 bug 和安全漏洞是通过临时补丁版本发布修复的。Kubernetes 社区有时会根据需要修改其版本支持日历。如需了解详情,请参阅支持期。
GKE 如何支持次要版本
Kubernetes 发布新的次要版本后,GKE 会先在快速渠道中引入该次要版本。GKE 会在该时间段内提供补丁版本,但由于快速渠道提供最新的 GKE 版本,因此这些版本会被排除在 GKE 服务等级协议 (SLA) 之外,并且可能包含没有已知解决方法的问题。
在快速渠道中首次发布后,GKE 会将新的次要版本提升到常规渠道。在常规渠道中使次要版本可用于创建新集群后,GKE 会总共提供多达 24 个月的支持。此支持包括大约 14 个月的标准支持,以及大约额外 10 个月的延长支持(通过扩展渠道提供)。如需了解特定次要版本的可用性,请查看 GKE 发布时间表。
GKE 次要版本生命周期
GKE 次要版本生命周期包括以下关键步骤:
- Kubernetes 发布新的次要版本。
- GKE 在快速渠道中提供新的次要版本。
- GKE 在常规渠道中提供新的次要版本(标准支持期开始)。
- 在标准支持期内,GKE 会为次要版本提供补丁,其中包括新功能、安全修复和 bug 修复。
- 次要版本在总共大约 14 个月后达到标准支持终止期限,进入延长支持期。在此时间之后,GKE 会为扩展渠道中的集群提供安全补丁。
- 次要版本达到延长支持终止期限,这意味着次要版本将不再收到任何安全补丁。
版本可用性调整
由于 Kubernetes OSS 社区的政策调整、发现漏洞,或者无法合理解决的其他技术问题,GKE 可能会修改 GKE 版本的支持终止期限。GKE 还可能会在黑色星期五和网购星期一等关键业务时段延长支持终止日期。
GKE 提供至少 14 个月的标准支持,并提供最多总计 24 个月的支持(包括延长支持)。
如需获取最新可用版本,请参阅 GKE 版本说明。GKE 会定期更新发布时间表,以反映自动升级的时间。
次要版本生命周期中的可用时间段
GKE 为 Kubernetes 次要版本提供以下可用时间段:
请参阅下表,其中总结了可用时间段,并在后面的部分中对其进行了详细说明:
可用时间段 | 从常规渠道可用性开始的预计时间跨度 | GKE 提供哪些支持 | 此可用时间段的访问权限 |
---|---|---|---|
仅限快速可用时间段 | 第 -1 个月至第 0 个月 | GKE 提供包含新功能、安全修复和 bug 修复的补丁版本。不过,这些版本被排除在 GKE 服务等级协议 (SLA) 之外,并且可能包含没有已知解决方法的问题。 | 仅限快速渠道 |
标准支持期 | 第 1 个月至第 14 个月 | GKE 提供包含新功能、安全修复和 bug 修复的补丁版本。 | 快速、常规、稳定、扩展、无渠道 |
延长支持期 | 第 15 个月至第 24 个月 | GKE 提供包含安全修复的补丁版本。 | 仅限扩展渠道(需要 GKE Enterprise 或每个集群额外付费,请参阅通过扩展渠道获取长期支持) |
仅限快速可用时间段
GKE 会先在快速渠道中发布新的次要版本。该版本会先在该渠道中累积使用量并在跨集群中显示出稳定性,然后才会被提升到常规渠道。在此可用时间段内,只有在快速渠道中注册的集群才能运行新的次要版本。
此时间段通常持续约 1-2 个月,但确切时间取决于每个次要版本。如需了解详情,请参阅发布渠道的预计时间表。
标准支持期
GKE 次要版本的标准支持期从该版本发布到常规渠道时开始。所有 GKE 集群(无论是否已注册发布渠道)都可以在标准支持期内运行次要版本。在此期间,GKE 会定期将集群自动升级到新的补丁版本,其中包含新功能、安全修复和 bug 修复。
GKE 通过以下方式自动升级集群:
- 快速、常规、稳定、无渠道:自动升级到其他受支持的次要版本,或同一次要版本的补丁版本。
- 扩展:GKE 仅会自动升级到同一次要版本的较新补丁版本。
对于未在扩展发布渠道中注册的集群,GKE 会根据集群发布渠道的时间表,在标准支持终止之前自动将集群升级到下一个受支持的次要版本。如需了解详情,请参阅发布渠道的预计时间表。不过,如果集群使用已弃用的功能或 API,GKE 不会在此期间升级集群。您可以使用维护排除项来暂时阻止 GKE 将集群升级到下一个次要版本。
标准支持终止(以前称为“服务终止”)
在标准支持期结束后,次要版本会达到标准支持终止期限(以前称为“服务终止”),并且对于未在扩展渠道中注册的所有集群,次要版本将不再受支持且不可用。
在版本支持终止之前,运行支持终止版本的客户会通过电子邮件向项目联系人发送通知。为了保证安全性和兼容性,GKE 还会开始逐步自动升级运行不受支持版本的节点(无论是否启用了自动升级),因为不会再为支持终止的版本提供新的安全补丁或 bug 修复。在针对与运行不受支持版本的集群或节点相关的任何问题与 Cloud Customer Care 联系之前,您必须先将集群和节点升级到受支持的版本。
已达到支持终止期限的 GKE 次要版本不会再收到安全补丁或 bug 修复。已达到支持终止期限的次要版本的补丁版本不受支持且不可用。GKE 会自动升级未在扩展渠道中注册的所有集群。如需了解详情,请参阅在支持终止时自动升级。
延长支持期
标准支持终止后,次要版本将进入延长支持期(第 15 个月至第 24 个月)。在此期间,GKE 会提供安全修复补丁,包括以下类型的修复:
- 针对核心 Kubernetes 组件、节点操作系统以及与 GKE 集群版本捆绑的由 Google 管理的容器的中、高和重要安全补丁。
- 对于 Container-Optimized OS,节点操作系统的支持终止期限可能会早于 GKE 次要版本的延长支持终止期限,或者引入不兼容的更改。如需详细了解 GKE 如何继续提供支持,请参阅延长支持期内的 Container-Optimized OS 更新。
在延长支持终止之前,GKE 会开始将集群升级到下一个次要版本。如果集群使用的是已弃用的功能或 API,GKE 将不会对集群进行升级。您可以使用维护排除项来暂时阻止 GKE 将集群升级到下一个次要版本。
延长支持终止
在延长支持终止时,GKE 不会提供任何安全修复补丁,并且次要版本会被视为不受支持。无论集群是否使用已弃用的功能或 API,GKE 都会将仍在运行不受支持的次要版本的集群升级到下一个次要版本。
在支持终止时自动升级
在次要版本达到支持终止期限之前,GKE 会安排集群从一个次要版本自动升级到下一个受支持的次要版本。此升级的时间取决于集群发布渠道的时间表。如需了解详情,请参阅发布渠道的预计时间表。例如,与在快速渠道中注册的集群相比,在稳定渠道中注册的集群会在更接近标准支持终止期限时升级到下一个次要版本。
在标准支持期内以及在扩展渠道中注册的集群的延长支持期内,您可以通过维护排除项来阻止此次要版本升级,并且 GKE 不会使用已弃用的功能或 API 来升级集群。
但是,在标准支持终止时,或者在扩展渠道中注册的集群的延长支持终止时,GKE 会自动将集群升级到下一个受支持的次要版本,以确保集群保持高效、可用和安全。
每个 GKE 版本都享受 14 个月的标准支持,以及 24 个月的总支持(包括延长支持)。您无法无限期地让集群保持在某个版本,因为运行使用不受支持的 GKE 版本的集群会带来重大安全、可靠性和兼容性风险,因为 GKE 不会为支持终止的版本提供安全补丁或 bug 修复。GKE 无法承诺在支持终止时为版本提供补丁或更新。
GKE 通过以下方式升级集群:
- 控制平面:当控制平面版本不再可用于创建新集群时,GKE 会自动将集群控制平面升级到受支持的版本。
- 节点:GKE 会在版本达到支持终止期限后自动升级运行不受支持版本的节点,以确保集群健康状况并符合 GKE 版本偏差政策。运行不受支持版本的节点通常会在支持终止日期后的一个月内按计划自动升级到受支持的版本。运行不受支持版本的节点在版本服务终止时可能不会立即升级,实际时间可能由 Google 自行决定。
延长支持期内的 Container-Optimized OS 更新
在 GKE 次要版本的延长支持期内,GKE 会为集群提供补丁升级,其中可能包含 Container-Optimized OS 更新。
Container-Optimized OS LTS 版本在次要版本之前达到支持终止期限
Container-Optimized OS LTS 版本可能会在使用该版本的次要版本的延长支持终止之前达到支持终止期限。在此情况下,GKE 会使用下一个可用于未来补丁升级的 Container-Optimized OS LTS 版本(如果可能)。GKE 会在节点的次要版本使用的 Container-Optimized OS LTS 版本达到支持终止期限之前执行此更新。集群管理员必须评估是升级到下一个 GKE 补丁版本(其中包含新的 Container-Optimized OS LTS 版本),还是保留相同的 GKE 补丁版本,以免收到节点操作系统中的更新,同时也不会收到与 GKE 集群版本捆绑在一起的核心 Kubernetes 组件的安全补丁。
下一个 Container-Optimized OS LTS 版本引入了与现有次要版本不兼容的更改
下一个 Container-Optimized OS LTS 版本可能会引入与 GKE 系统组件不兼容的更改,并且 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.32 是 Kubernetes 1.31 之后的次要版本。
- Kubernetes 补丁版本 (z)
- 通常每周都会发布可用于 GKE 的新版 Kubernetes 补丁(例如 1.32.6)。补丁程序版本按递增方式发布到每个地区。
- GKE 补丁版本 (-gke.N)
- 带有 -gke.N 后缀的补丁版本(例如 1.32.6-gke.N)可以包含 GKE 安全更新和 bug 修复,以及开源上游 Kubernetes 软件。这些更新或修补程序是与 Google Cloud 兼容和互操作所必需的。
查看可用版本和默认版本
如需了解可用版本,请参阅 GKE 版本说明。
您还可以通过 Google Cloud 控制台或使用 Google Cloud CLI 检查指定可用区中 Kubernetes 的可用版本和默认版本。
使用 Google Cloud 控制台检查版本
如需查看默认版本和可用版本,请执行以下步骤:
转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
点击 add_box 创建。
选择标准集群模式,然后点击配置。
在位置类型部分中,选择集群的位置类型和预期位置。
在控制平面版本部分中,选择发布渠道。列出了该频道的所有当前可用版本。系统将自动选择默认版本。
使用 gcloud CLI 检查版本
如需查看可用的版本和默认版本,请为集群类型运行以下某个 gcloud
命令。每个biaoqianye 均提供命令以检查特定发布版或无发布版(静态)的版本。
快速
如需查看 Rapid
发布渠道中的默认版本和可用版本,请运行以下命令:
默认版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=RAPID" \
--format="yaml(channels.channel,channels.defaultVersion)" \
--location=COMPUTE_LOCATION
可用版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=RAPID" \
--format="yaml(channels.channel,channels.validVersions)" \
--location=COMPUTE_LOCATION
替换以下内容:
COMPUTE_LOCATION
:Compute Engine 位置。
常规
如需查看 Regular
发布渠道中的默认版本和可用版本,请运行以下命令:
默认版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=REGULAR" \
--format="yaml(channels.channel,channels.defaultVersion)" \
--location=COMPUTE_LOCATION
可用版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=REGULAR" \
--format="yaml(channels.channel,channels.validVersions)" \
--location=COMPUTE_LOCATION
替换以下内容:
COMPUTE_LOCATION
:Compute Engine 位置。
稳定版
如需查看 Stable
发布渠道中的默认版本和可用版本,请运行以下命令:
默认版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=STABLE" \
--format="yaml(channels.channel,channels.defaultVersion)" \
--location=COMPUTE_LOCATION
可用版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=STABLE" \
--format="yaml(channels.channel,channels.validVersions)" \
--location=COMPUTE_LOCATION
替换以下内容:
COMPUTE_LOCATION
:Compute Engine 位置。
扩展
如需查看 Extended
发布渠道中的默认版本和可用版本,请运行以下命令:
默认版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=EXTENDED" \
--format="yaml(channels.channel,channels.defaultVersion)" \
--location=COMPUTE_LOCATION
可用版本
gcloud container get-server-config \
--flatten="channels" \
--filter="channels.channel=EXTENDED" \
--format="yaml(channels.channel,channels.validVersions)" \
--location=COMPUTE_LOCATION
替换以下内容:
COMPUTE_LOCATION
:Compute Engine 位置。
无渠道
如要查看没有无发布(静态)的默认版本和可用版本,请运行以下命令:
默认版本
gcloud container get-server-config \
--format="yaml(defaultClusterVersion)" \
--location=COMPUTE_LOCATION
可用的控制平面版本
gcloud container get-server-config \
--format="yaml(validMasterVersions)" \
--location=COMPUTE_LOCATION
可用节点版本
gcloud container get-server-config \
--format="yaml(validNodeVersions)" \
--location=COMPUTE_LOCATION
替换以下内容:
COMPUTE_LOCATION
:Compute Engine 位置。
指定集群版本
本部分仅适用于在标准模式下创建的集群。
使用 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。节点最多只能有两个次要版本高于控制层面。
除极少数例外情况外,即使集群版本不再可用,节点版本也仍旧可用。
GKE 版本偏差政策
GKE 版本偏差政策可确保 GKE 集群在控制平面和节点之间保持兼容性。在 GKE 集群中,节点可以与控制平面版本匹配,也可以低于控制平面两个次要版本。
节点无法运行高于控制平面版本的版本。例如,如果集群的控制平面运行的是 1.31 版,则节点可以运行以下版本:1.31、1.30 或 1.29,但不能运行 1.28 或更低版本。由于 Kubernetes OSS 版本偏差政策,节点的版本不能高于控制平面版本。
为确保可支持性和可靠性,节点应使用受支持的版本,而无需遵循有效的版本偏差。
支持跳过次要版本
GKE 不允许跳过集群控制平面的次要版本,但您可以跳过补丁版本。工作器节点允许跳过次要版本。例如,节点池可以在跳过 1.33 版的同时从 1.32 版升级到 1.34 版。
如需跨多个次要版本升级集群,对于控制平面,您一次只能升级一个次要版本,并且每次将工作器节点升级到同一版本。例如,如需将控制平面从 1.32 版升级到 1.34 版,请先从 1.32 版升级到 1.33 版,然后升级工作器节点,以便与控制平面版本匹配,然后重复此过程,从 1.33 版升级到 1.34 版。
升级工作器节点以与版本匹配有助于避免版本偏差。我们建议您尽量避免跳过版本。跳过工作器节点版本通常意味着需要进行更大范围的测试,虽然可管理但需要更多考量。
或者,您可以创建具有所需版本的新集群并重新部署工作负载。