使用 Google Kubernetes Engine (GKE) 的发布版本,为您的集群选择在功能可用性和稳定性之间的平衡。
GKE 会逐步升级所有集群(包括未在发布渠道中注册的集群),以确保它们接收安全更新、已知问题修复、新功能,并运行受支持的 Kubernetes 版本。您可以通过维护窗口和排除项控制升级的时间。
我们建议您在发布渠道中注册集群,因为这样可以在维护排除项的范围方面获得最大的控制权 - 暂时阻止特定的升级类型,而不是所有升级操作以及对集群升级进行排序。Autopilot 集群只能在发布渠道中注册。
如果您未在发布渠道中注册标准集群,则可以手动停用所选节点池的节点自动升级功能管理对这些节点池中的节点的升级。不过,所有集群的控制层面都将自动升级,当版本达到服务终止期限时,无论发布渠道如何,集群控制层面和节点都会自动升级。注册。如需了解详情,请参阅何时不应在发布版本中注册您的集群。
您可以获得哪些渠道
下表说明了可用发布渠道的属性,每个发布渠道都在功能可用性和更新流失率之间进行权衡取舍。所有渠道都提供支持的 GKE 版本,且被视为正式版 (GA)(虽然并非各个功能都如标记的那样是 GA)。这些渠道中的 Kubernetes 版本是 Kubernetes 官方版本,同时包含 GA 和 Beta 版 Kubernetes API。
通道 | 新版 Kubernetes 的可用性 | 何时使用此渠道 |
---|---|---|
快速 | 在上游开源 GA 几周后 | 尽早获取最新的 Kubernetes 版本,并在新的 GKE 功能正式发布时能立即使用它们。您的集群会经常更新以保持为可用的最新补丁程序版本,并提供较新的 Kubernetes 功能。 订阅了快速渠道的集群使用 GA 版本,但我们建议您使用快速渠道在预生产环境中测试较新的 Kubernetes 版本和 API。 |
常规(默认) | 通过快速渠道发布后的 2-3 个月 | 在 GKE 和 Kubernetes 功能首次发布后的合理时间内可以尽快访问,但应该基于经过较长时间段验证合格的版本。兼顾功能可用性和版本稳定性,是我们向大多数用户推荐的做法。 |
稳定 | 通过常规渠道发布后的 2-3 个月 | 优先考虑新功能的稳定性。在快速渠道和常规渠道上验证后,GKE 会最后发布此渠道中的变更和新版本,从而有更多验证时间。 |
当您在发布渠道中注册集群后,该集群会在 GKE 发布时间表的升级列中指定的日期或之后自动升级。
如果某个版本积累了一定的使用量并且在快速渠道中显示出了跨集群的稳定性,则其会被提升为常规渠道。最后,版本会被提升为仅接收高优先级更新的稳定渠道。根据观察到的运行该版本的集群性能,每次提升都标志着稳定性和生产就绪性逐步提高。
我们会向所有发布渠道提供重要的安全补丁程序,以保护您的集群和 Google 的基础架构。
一个渠道提供哪些版本
每个发布渠道都会提供默认版本,可从该渠道的一组可用版本中选择。这些版本已符合该特定渠道的资格标准。GKE 会随时间自动将集群升级到默认版本。
- 新的补丁程序版本至少在一周后才能成为所有渠道的默认版本。
- 有新的次要版本可用:
- 至少两周后才能成为快速渠道的默认版本。
- 至少四周后才能成为常规渠道和稳定渠道的默认版本。
您可以在升级生产环境之前测试新的可用 GKE 版本。例如,您可以订阅升级通知来接收有关新的可用版本的通知,然后主动将预生产环境升级到新版本,它随后将成为默认版本。
如果您需要将集群保留在特定版本上(例如,在升级之前验证或测试较新的版本),我们建议您使用维护排除项。
对于 1.19 版及更高版本,某个次要版本在发布渠道中可用后,它将在新集群或现有集群的该发布渠道中保持可用,直到服务终止日期。
查看发布渠道的默认版本和可用版本
如需查看发布渠道的默认版本和可用版本,请运行以下命令,注意将 COMPUTE_ZONE
替换为您的计算区域:
gcloud container get-server-config --format "yaml(channels)" --zone COMPUTE_ZONE
如需查看未在发布渠道中注册的集群的可用版本,请运行此等效发布渠道命令,并将命令中的 "yaml(channels)"
替换为 "yaml(validMasterVersions)"
。
当新版本成为发布渠道中的默认版本时会发生什么情况
当新的 GKE 版本成为发布渠道中的默认版本时:
- 系统会使用所选发布渠道中的新默认版本创建新集群。
- 现有符合条件的集群会在新版本成为其发布渠道中的默认版本后的 10 天内自动升级。
如果在新版本成为发布渠道中的默认版本的 10 天后,您的集群未开始自动升级,则延迟可能是以下原因之一造成的:
- 您的集群暂时不符合自动升级的条件。发生这种情况的原因如下:
- GKE 因技术或业务原因暂停了新的默认版本的发布:
- 我们在新版本中发现了一些技术问题。
- 因重要购物季(例如黑色星期五)而设定了生产冻结机制。
从较新的渠道运行补丁版本
除了针对一个发布渠道列出的可用版本之外,GKE 还提供对成熟度较低的发布渠道的补丁程序版本有限访问权限。 如果较新的渠道中提供的次要版本与集群自身所在发布渠道中提供的次要版本相同,则在一个发布渠道中注册的集群还可以使用来自较新渠道的补丁程序版本。
例如,如果快速和常规渠道分杯提供以下版本:
- 快速:1.23.2-gke.700、1.22.4-gke.1500
- 常规:1.21.4-gke.400、1.22.1-gke.400
在常规渠道中注册并且运行 GKE 1.22.1-gke.400 的集群可以升级到 1.22.4-gke.1500,但不能升级到 1.23.2-gke.700,因为它是不同的次要版本。
如需升级到较新渠道的补丁版本,集群的控制平面必须运行具有相同次要版本的补丁版本。例如,如果集群运行 1.21.3-gke.200,则必须先将集群升级到其当前发布渠道中提供的补丁版本 1.22.1-gke.400。然后,您可以将集群升级到 1.22.4-gke.1500。
您还可以创建运行 1.22.4-gke.1500 并在常规渠道中注册的新集群。
集群将保留为较不成熟的渠道上的补丁程序版本,直至集群注册的默认渠道版本高于集群版本为止。届时,该集群将自动升级到默认版本。
了解渠道的新功能
如需了解发布渠道的新功能,请查看版本说明。除了总体版本说明之外,每个发布渠道还有单独的版本说明。
发布渠道 | 版本说明 |
---|---|
快速渠道 | HTML 或 Atom Feed。 |
常规渠道 | HTML 或 Atom Feed。 |
稳定渠道 | HTML 或 Atom Feed。 |
为您的集群选择最佳发布渠道
渠道仅包含 Kubernetes 的 GA 版本,并且每个渠道都代表 Kubernetes 和 GKE 版本质量和成熟度的不同级别。下图说明了发布渠道的采用周期:
如图所示,可用的发布渠道会在整个采用周期使用各种版本,包括针对尝鲜者提供的快速渠道、针对早期多数用户提供的常规渠道以及针对多数用户提供的稳定渠道。采用周期的第一阶段是针对创新者,他们将使用上游 Kubernetes 版本测试最新功能。采用周期的最后一个阶段是针对后期多数用户,在该阶段用户使用的版本即将弃用且需要转换到受支持的版本。
在测试环境中,您可以对新推出的版本使用快速渠道,这样您便可以在这些版本正式发布后尽快对其功能进行测试。
对于要求成熟度超过较新功能的生产工作负载,我们建议使用常规(默认)渠道或稳定渠道。
- 如果您需要密切跟踪新功能,请考虑使用常规渠道,它可以平衡 Kubernetes OSS 版本的稳定性和新鲜度。
- 如果您的需求注重成熟度,尤其是对于生产集群,请使用稳定渠道。
GKE 会将集群升级到符合渠道质量标准的较新版本。不过,我们建议您提前升级您的集群,因为这样可以为您带来以下好处:
- 更好地控制您的升级,并与您的工作时间保持一致。
- 更好地进行预测,因为 GKE 不会自动升级满足版本目标的集群(即,已手动升级到下一个目标版本的集群)。节点会自动升级到所选渠道中的推荐版本,以便与控制平面版本保持一致,并保护您免受漏洞和不受支持的版本倾斜的影响。
在发布渠道中注册集群
本部分介绍如何为新集群或之前未使用发布渠道的现有集群选择发布渠道。您还可以为已在发布渠道中注册的现有集群更改发布渠道。
此更改不需要停机。但是,由于 GKE 在发布渠道中可能会提供不同的自动升级,因此我们建议您使用维护窗口和排除项来控制升级的时间。
注册新集群
您可以使用 gcloud CLI 或 Google Cloud 控制台在发布渠道中创建和注册新集群。默认情况下,新集群会在常规发布渠道中自动注册。
控制台
对于 GKE Standard 集群,您可以选择创建集群期间在 Google Cloud 控制台中指定其他渠道。
转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
点击 add_box 创建。
在 Standard 部分中,点击配置。
在控制平面版本下,发布版本选项默认处于选中状态。
在发布渠道下拉列表中,选择要在其中注册集群的发布渠道,或者保留常规渠道的默认值。
根据需要继续创建集群。
点击创建。
gcloud
如需在特定发布渠道中创建和注册 Standard 集群,请运行以下命令:
gcloud container clusters create CLUSTER_NAME \ --zone COMPUTE_ZONE \ --release-channel CHANNEL \ ADDITIONAL_FLAGS
如需在特定发布渠道中创建和注册 Autopilot 集群,请运行以下命令:
gcloud container clusters create-auto CLUSTER_NAME \ --region=COMPUTE_REGION --release-channel CHANNEL \ ADDITIONAL_FLAGS
替换以下内容:
CLUSTER_NAME
:新集群的名称。- 对于区域级集群,请使用
--region COMPUTE_REGION
标志并为集群指定区域。 - 对于地区级集群,请使用
--region COMPUTE_ZONE
标志并为集群指定地区。 CHANNEL
:发布渠道的类型:rapid
、regular
或stable
之一。ADDITIONAL_FLAGS
:您在创建集群时需要指定的任何其他标志。如需查看 Standard 集群的可选标志的完整列表,请参阅gcloud container clusters create
文档。如需查看 Autopilot 集群的可选标志的完整列表,请参阅gcloud container clusters create-auto
文档。
您还可以使用 --cluster-version
标志创建特定版本的集群。如果您没有指定发布渠道,则 GKE 会在最可用的发布渠道中注册您的集群。
或者,如果您未指定发布渠道或集群版本,则集群默认为默认版本的 regular
发布渠道。
注册现有集群
您可以在发布渠道中注册现有集群,前提是该集群的控制平面版本在目标发布渠道中可用。如需检查集群的控制平面版本在目标发布渠道中是否可用,请查看发布渠道的默认版本和可用版本。如需详细了解如何将集群的控制平面版本与目标发布渠道的可用版本保持一致,请参阅选择新的发布渠道。
如需注册,请将集群发布渠道更新为目标 CHANNEL
。
查找集群的发布渠道
您可以使用 gcloud CLI 或 Google Cloud 控制台确定集群的发布渠道。
控制台
转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
点击您要检查的集群的名称。
在集群基本信息下,检查发布版本字段中的值(例如常规版本)。
gcloud
gcloud container clusters describe CLUSTER_NAME \ --zone COMPUTE_ZONE --format="value(releaseChannel.channel)"
替换以下内容:
CLUSTER_NAME
:您的集群的名称。COMPUTE_ZONE
:集群的计算区域。
更改集群的发布渠道
如果目标发布渠道中提供了控制平面的版本,您可以更改集群的发布渠道。您可能需要将集群的控制平面升级或降级到可用版本。
如需检查集群的控制平面版本在目标发布渠道中是否可用,请查看发布渠道的默认版本和可用版本。版本必须在目标渠道中可用。
- 如果目标发布渠道中提供了集群的控制平面版本,您可以选择新的发布渠道。
- 如果集群的控制平面版本在目标发布渠道中不可用,您可以将集群的控制平面升级到可用版本。或者,如果目标渠道只有早期版本,您可以降级集群,前提是目标版本是来自同一次要版本的早期版本补丁。
如需选择新的发布渠道,请将集群发布渠道更新为目标 CHANNEL
。如果您希望在选择新渠道时暂时阻止集群自动升级,请在选择新渠道之前配置维护排除项。
如果由于集群运行的版本在该发布渠道中不可用,您无法选择目标发布渠道,则可以在目标渠道中创建新集群,然后迁移工作负载。或者,如果您需要使用现有集群,请执行以下操作:
更新集群发布渠道
您可以使用 gcloud CLI 或 Google Cloud 控制台更改集群的发布渠道。
控制台
转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
点击您要检查的集群的名称。
在集群基本信息下的发布渠道字段中,点击 edit。
在发布渠道下拉列表中,选择目标发布渠道。
阅读警告,并选择我确认条件来进行确认。
点击保存更改。
gcloud
更改现有集群的发布渠道属性:
gcloud container clusters update CLUSTER_NAME \ --release-channel CHANNEL
请替换以下内容:
CLUSTER_NAME
:您的集群的名称。CHANNEL
:目标发布渠道,可以是rapid
、regular
、stable
或None
之一。
何时不应在发布版本中注册集群
您可以选择不在发布渠道中注册标准集群(称为“无渠道”和“静态”)。由于未注册发布渠道的集群存在限制,因此仅当某些节点池无法自动升级时,您必须改为手动升级这些节点。如果您的集群未在发布渠道中注册,您可以为所选节点池停用节点自动升级。
如果要暂时阻止整个集群或其所有节点自动升级,请对已在发布渠道中注册的集群使用维护排除项。借助维护排除项,您可以暂时停用所有节点池的节点自动升级,而如果您的集群未在发布渠道中注册,您可以在节点池级别停用节点自动升级。
查看下表,了解在发布渠道中注册和不注册集群之间的相似之处和不同之处:
功能 | 在发布渠道中注册的集群 | 集群未在发布渠道中注册 |
---|---|---|
共享升级行为 |
|
|
升级时间 | 与相应的发布渠道保持一致 |
|
控制节点池中断 |
|
|
维护窗口 | 可用 | 可用 |
维护排除项 |
可用的维护排除项范围:
|
限制为“无升级”范围(30 天) |
发布顺序 | 适用于基于队列和基于范围的序列 | 不可用 |
Autopilot | 可用 | 不可用 |
退订发布渠道
您可以使用 Google Cloud 控制台、gcloud CLI 或 Kubernetes Engine API 从发布渠道退订标准集群。您还可以指定您不想在集群创建期间在发布渠道中注册您的集群。
控制台
转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
点击您要检查的集群的名称。
在集群基本信息下的发布渠道字段中,点击 edit。
选择静态版本单选按钮。
阅读警告,并选择我确认条件来进行确认。
点击保存更改。
gcloud
将集群的发布渠道更新为 None
值:
gcloud container clusters update CLUSTER_NAME \ --release-channel None
API
在创建或更新集群时,请指定 "releaseChannel": { "channel": UNSPECIFIED}
。
注意事项
在使用发布版本时,请牢记以下注意事项。
快速版集群和 Alpha 版集群之间的区别
使用快速发布渠道创建的集群不是 Alpha 版集群。具体区别如下:
- 使用发布渠道的集群可以升级,并且自动升级处于启用状态,无法停用。Alpha 版集群无法升级。
- 使用发布渠道的集群不会过期。Alpha 版集群会在 30 天后过期。
- 在使用发布渠道的集群上,Alpha 版 Kubernetes API 处于未启用状态。