发布渠道简介


发布渠道实现了 Google Kubernetes Engine (GKE) 版本控制和升级 GKE 集群的最佳实践。

Google 经常发布 Kubernetes 更新,以提供安全更新、解决已知问题以及推出新功能。发布渠道可让客户能够平衡集群中所部署版本的稳定性和功能集。

当您在发布渠道中注册新集群时,Google 会自动管理集群的控制平面及其节点的版本和升级频率。所有渠道都提供支持的 GKE 版本,且被视为正式版 (GA)(虽然并非各个功能都如标记的那样是 GA)。这些渠道中的 Kubernetes 版本是 Kubernetes 官方版本,同时包含 GA 和 Beta 版 Kubernetes API(如标记的那样)。新的 Kubernetes 版本会先发布到快速渠道,然后随着时间的推移将升级到常规和稳定渠道。这可让您的集群订阅满足您的业务、稳定性和功能需求的渠道。

所有 Autopilot 集群都在发布渠道中自动注册。默认情况下,新集群会在常规发布渠道中注册

您可以获得哪些渠道

您可以获得以下发布渠道。每个渠道都在功能可用性和更新流失率之间进行权衡取舍。虽然每个渠道都有不同的资格标准,但所有渠道都提供经过测试的 Kubernetes GA 版本。

版本 新版 Kubernetes 的可用性 属性
快速 在上游开源 GA 几周后* 尽早获取最新的 Kubernetes 版本,并在新的 GKE 功能正式发布时能立即使用它们。您的集群会经常更新以保持为可用的最新补丁程序版本,并提供较新的 Kubernetes 功能。 虽然订阅快速渠道的集群使用 GA 版本,但快速渠道最适合用于在预生产环境中测试较新的 Kubernetes 版本和 API。由于快速渠道提供最新的 GKE 版本,因此这些版本被排除在 GKE 服务等级协议 (SLA) 之外,并且可能包含没有已知解决方法的问题。
常规(默认) 通过快速渠道发布后的 2-3 个月 * 在 GKE 和 Kubernetes 功能首次发布后的合理时间内可以尽快访问,但应该基于经过较长时间段验证合格的版本。兼顾功能可用性和版本稳定性,是我们向大多数用户推荐的做法。
稳定 通过常规渠道发布后的 2-3 个月 * 优先考虑新功能的稳定性。此渠道中的变更和新版本将最后发布,也就是经过快速渠道和常规渠道的验证之后,因而有更多验证时间

*确切的发布时间表取决于多种因素(包括开放源代码发布和修补时间表),因此可能会发生变化。如需了解最新信息,请查看 GKE 版本说明或订阅您的渠道的 RSS Feed。

当您在发布渠道中注册集群后,该集群会在 GKE 发布时间表升级列中指定的日期或之后自动升级。

如果某个版本积累了一定的使用量并且在快速渠道中显示出了跨集群的稳定性,则其会被提升为常规渠道。最后,版本会被提升为仅接收高优先级更新的稳定渠道。根据观察到的运行该版本的集群性能,每次提升都标志着稳定性和生产就绪性逐步提高。

我们会向所有发布渠道提供重要的安全补丁程序,以保护您的集群和 Google 的基础架构。

无渠道

为了更直接地管理集群的控制平面和节点版本,您可以选择不在发布渠道中注册集群(即“无渠道”)。如需创建不在发布渠道中注册的集群,您必须在使用 gcloud CLI 或 GKE API 时选择 --release-channel=None,或在 Google Cloud 控制台中选择静态版本选项。

但是,我们建议您在发布渠道中注册集群,因为它可以自动确保安全性、性能和稳定性。借助发布渠道,您还可以通过维护期和排除项控制升级的时间和范围。

如需查看未在发布渠道中注册的集群的可用版本,请运行此等效发布渠道命令,并将命令中的 "yaml(channels)" 替换为 "yaml(validMasterVersions)"

控制平面升级

即使集群未在发布渠道中注册,GKE 仍会定期升级集群的控制平面到较新版本。GKE 将在计划升级开始日期开始将控制平面升级到下一个次要版本。如需了解计划升级的最新信息,请参阅版本说明

节点升级

运行具有静态版本(“无渠道”)的集群时,您可以保持节点自动升级功能的启用状态,也可以停用节点自动升级功能并管理节点升级策略。我们建议保持启用节点自动升级功能,以便节点版本在控制平面升级后自动升级。

一个渠道提供哪些版本

每个发布渠道都会提供默认版本,可从该渠道的一组可用版本中选择。这些版本已符合该特定渠道的资格标准。GKE 会随时间自动将集群升级到默认版本。

  • 新的补丁程序版本至少在一周后才能成为所有渠道的默认版本。
  • 有新的次要版本可用:
    • 至少两周后才能成为快速渠道的默认版本。
    • 至少四周后才能成为常规渠道和稳定渠道的默认版本。

您可以在升级生产环境之前测试新的可用 GKE 版本。例如,您可以订阅升级通知来接收有关新的可用版本的通知,然后主动将预生产环境升级到新版本,它随后将成为默认版本。

如果您需要将集群保留在特定版本上(例如,在升级之前验证或测试较新的版本),我们建议您使用维护排除项

对于 1.19 版及更高版本,某个版本在发布渠道中可用后,它将在新集群或现有集群的该发布渠道中保持可用,直到服务终止日期

查看发布渠道的默认版本和可用版本

如需查看发布渠道的默认版本和可用版本,请运行以下命令,注意将 COMPUTE_ZONE 替换为您的计算区域

gcloud container get-server-config --format "yaml(channels)" --zone COMPUTE_ZONE

当新版本成为发布渠道中的默认版本时会发生什么情况

当新的 GKE 版本成为发布渠道中的默认版本时:

  • 系统会使用所选发布渠道中的新默认版本创建新集群。
  • 现有符合条件的集群会在新版本成为其发布渠道中的默认版本后的 10 天内自动升级。

如果在新版本成为发布渠道中的默认版本的 10 天后,您的集群未开始自动升级,则延迟可能是以下原因之一造成的:

  • 您的集群暂时不符合自动升级的条件。发生这种情况的原因如下:
    • 集群在配置的维护窗口时间范围外。
    • 集群在维护排除时段内。
    • 自动升级会暂停,因为您的集群使用已弃用的 Kubernetes 功能,这些功能会在下一个次要版本中移除。
    • 集群已在 24 小时内自动升级到补丁版本
    • 集群已在 30 天内自动升级到次要版本,并且新的默认版本是新的次要版本。
  • 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 并在常规渠道中注册的新集群。

集群将保留为较不成熟的渠道上的补丁程序版本,直至集群注册的默认渠道版本高于集群版本为止。届时,该集群将自动升级到默认版本。

了解渠道的新功能

如需了解发布渠道的新功能,请查看版本说明。除了总体版本说明之外,每个发布渠道还有单独的版本说明。

发布渠道 版本说明
快速渠道 HTMLAtom Feed
常规渠道 HTMLAtom Feed
稳定渠道 HTMLAtom Feed

为您的集群选择最佳发布渠道

渠道仅包含 Kubernetes 的 GA 版本,并且每个渠道都代表 Kubernetes 和 GKE 版本质量和成熟度的不同级别。下图说明了发布渠道的采用周期:

发布渠道的采用周期

如图所示,可用的发布渠道会在整个采用周期使用各种版本,包括针对尝鲜者提供的快速渠道、针对早期多数用户提供的常规渠道以及针对多数用户提供的稳定渠道。采用周期的第一阶段是针对创新者,他们将使用上游 Kubernetes 版本测试最新功能。采用周期的最后一个阶段是针对后期多数用户,在该阶段用户使用的版本即将弃用且需要转换到受支持的版本。

在测试环境中,您可以对新推出的版本使用快速渠道,这样您便可以在这些版本正式发布后尽快对其功能进行测试。

对于要求成熟度超过较新功能的生产工作负载,我们建议使用常规(默认)渠道或稳定渠道。

  • 如果您需要密切跟踪新功能,请考虑使用常规渠道,它可以平衡 Kubernetes OSS 版本的稳定性和新鲜度。
  • 如果您的需求注重成熟度,尤其是对于生产集群,请使用稳定渠道。

GKE 会将集群升级到符合渠道质量标准的较新版本。不过,我们建议您提前升级您的集群,因为这样可以为您带来以下好处:

  • 更好地控制您的升级,并与您的工作时间保持一致。
  • 更好地进行预测,因为 GKE 不会自动升级满足版本目标的集群(即,已手动升级到下一个目标版本的集群)。节点会自动升级到所选渠道中的推荐版本,以便与控制平面版本保持一致,并保护您免受漏洞和不受支持的版本倾斜的影响。

在发布渠道中注册集群

本部分介绍如何为新集群或之前未使用发布渠道的现有集群选择发布渠道。您还可以为已在发布渠道中注册的现有集群更改发布渠道

此更改不需要停机。但是,由于 GKE 在发布渠道中可能会提供不同的自动升级,因此我们建议您使用维护窗口和排除项来控制升级的时间。

注册新集群

您可以使用 gcloud CLI 或 Google Cloud 控制台在发布渠道中创建和注册新集群。默认情况下,新集群会在常规发布渠道中自动注册。

控制台

对于 GKE Standard 集群,您可以选择创建集群期间在 Google Cloud 控制台中指定其他渠道。

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

    转到 Google Kubernetes Engine

  2. 点击 创建

  3. 在 Standard 部分中,点击配置

  4. 控制平面版本下,发布版本选项默认处于选中状态。

  5. 发布渠道下拉列表中,选择要在其中注册集群的发布渠道,或者保留常规渠道的默认值。

  6. 根据需要继续创建集群。

  7. 点击创建

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:发布渠道的类型:rapidregularstable 之一。
  • ADDITIONAL_FLAGS:您在创建集群时需要指定的任何其他标志。如需查看 Standard 集群的可选标志的完整列表,请参阅 gcloud container clusters create 文档。如需查看 Autopilot 集群的可选标志的完整列表,请参阅 gcloud container clusters create-auto 文档。

您还可以使用 --cluster-version 标志创建特定版本的集群。如果您未指定发布渠道,则 GKE 会在该版本可用的最成熟发布渠道中注册您的集群。

或者,如果您未指定发布渠道或集群版本,则集群默认为默认版本的 regular 发布渠道。

注册现有集群

您可以在发布渠道中注册现有集群,前提是该集群的控制平面版本在目标发布渠道中可用。如需检查集群的控制平面版本在目标发布渠道中是否可用,请查看发布渠道的默认版本和可用版本。如需详细了解如何将集群的控制平面版本与目标发布渠道的可用版本保持一致,请参阅选择新的发布渠道

如需注册,请将集群发布渠道更新为目标 CHANNEL

查找集群的发布渠道

您可以使用 gcloud CLI 或 Google Cloud 控制台确定集群的发布渠道。

控制台

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

    转到 Google Kubernetes Engine

  2. 点击您要检查的集群的名称。

  3. 集群基本信息下,检查发布版本字段中的值(例如常规版本)。

gcloud

gcloud container clusters describe CLUSTER_NAME \
    --zone COMPUTE_ZONE --format="value(releaseChannel.channel)"

替换以下内容:

  • CLUSTER_NAME:您的集群的名称。
  • COMPUTE_ZONE:集群的计算区域

更改集群的发布渠道

如果目标发布渠道中提供了控制平面的版本,您可以更改集群的发布渠道。您可能需要将集群的控制平面升级或降级到可用版本。

如需检查集群的控制平面版本在目标发布渠道中是否可用,请查看发布渠道的默认版本和可用版本。版本必须在目标渠道中可用。

  • 如果目标发布渠道中提供了集群的控制平面版本,您可以选择新的发布渠道。
  • 如果集群的控制平面版本在目标发布渠道中不可用,您可以将集群的控制平面升级到可用版本。或者,如果目标渠道只有早期版本,您可以降级集群,前提是目标版本是来自同一次要版本的早期版本补丁

如需选择新的发布渠道,请将集群发布渠道更新为目标 CHANNEL。如果您希望在选择新渠道时暂时阻止集群自动升级,请在选择新渠道之前配置维护排除项

如果由于集群运行的版本在该发布渠道中不可用,您无法选择目标发布渠道,则可以在目标渠道中创建新集群,然后迁移工作负载。或者,如果您需要使用现有集群,请执行以下操作:

  1. 配置维护排除项,范围为“无次要升级”。
  2. 等待目标发布渠道提供集群的 Kubernetes 次要版本。
  3. 在目标发布渠道中注册现有集群

更新集群发布渠道

您可以使用 gcloud CLI 或 Google Cloud 控制台更改集群的发布渠道。

控制台

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

    转到 Google Kubernetes Engine

  2. 点击您要检查的集群的名称。

  3. 集群基本信息下的发布渠道字段中,点击

  4. 发布渠道下拉列表中,选择目标发布渠道。

  5. 阅读警告,并选择我确认条件来进行确认。

  6. 点击保存更改

gcloud

更改现有集群的发布渠道属性:

gcloud container clusters update CLUSTER_NAME \
  --release-channel CHANNEL

请替换以下内容:

  • CLUSTER_NAME:您的集群的名称。
  • CHANNEL:目标发布渠道,可以是 rapidregularstableNone 之一。

退订发布渠道

如果您选择退订渠道,则集群的节点池将继续启用自动升级,即使在停用发布渠道后也是如此。一旦集群不再订阅发布渠道,您可以手动停用节点自动升级

从发布渠道退订集群时,手动升级仍会受到以下限制:

您可以使用 gcloud CLI 或 Google Cloud 控制台退订发布渠道。

控制台

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

    转到 Google Kubernetes Engine

  2. 点击您要检查的集群的名称。

  3. 集群基本信息下的发布渠道字段中,点击

  4. 选择静态版本单选按钮。

  5. 阅读警告,并选择我确认条件来进行确认。

  6. 点击保存更改

gcloud

将集群的发布渠道更新为 None 值:

gcloud container clusters update CLUSTER_NAME \
  --release-channel None

注意事项

在使用发布版本时,请牢记以下注意事项。

快速版集群和 Alpha 版集群之间的区别

使用快速发布渠道创建的集群不是 Alpha 版集群。具体区别如下:

  • 使用发布渠道的集群可以升级,并且自动升级处于启用状态,无法停用。Alpha 版集群无法升级。
  • 使用发布渠道的集群不会过期。Alpha 版集群会在 30 天后过期。
  • 在使用发布渠道的集群上,Alpha 版 Kubernetes API 处于未启用状态。

后续步骤