发布渠道

本主题介绍了发布渠道,这些渠道提供了 GKE 集群版本控制和升级的 Google Kubernetes Engine (GKE) 最佳做法。

概览

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

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

默认情况下,在 GKE 中创建的新集群会在“常规”发布渠道中注册。

您可以获得哪些渠道?

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

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

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

如果您在发布渠道中注册集群,则该集群会在该发布渠道提供新版本时自动升级。

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

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

无渠道

为了更直接地管理集群的控制平面和节点版本,您可以选择不在发布渠道中注册集群(即“无渠道”),而是指定静态 GKE 版本。但是,我们建议您在发布渠道中注册集群,因为它可以自动确保安全性、性能和稳定性。借助发布渠道,您还可以通过维护期和排除项控制升级的时间和范围。

控制平面升级

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

节点升级

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

一个渠道提供哪些版本?

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

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

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

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

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

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

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

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

从较新的渠道运行补丁程序版本

除了针对一个发布渠道列出的可用版本之外,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.22.4-gke.1500 并在常规渠道中注册的新集群。

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

了解渠道的新功能

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

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

我应该使用哪种渠道?

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

发布渠道的采用周期

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

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

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

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

在发布渠道中注册集群

您可以在发布渠道中注册新集群或现有集群。

注册新集群

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

控制台

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

  1. 进入控制台中的 Google Kubernetes Engine 页面。

    进入 Google Kubernetes Engine

  2. 点击 创建

  3. 在“标准”部分中,点击配置

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

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

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

  7. 点击创建

gcloud

如需在特定发布渠道中创建和注册标准集群,请运行以下命令:

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:您在创建集群时需要指定的任何其他标志。如需查看标准集群的可选标志的完整列表,请参阅 gcloud container clusters create 文档。如需查看 Autopilot 集群的可选标志的完整列表,请参阅 gcloud container clusters create-auto 文档。

注册现有集群

您可以在发布渠道中注册现有集群,前提是该集群控制平面版本可以升级到发布渠道的默认版本。这意味着发布渠道的默认版本必须与现有控制平面版本相同或至多高一个次要版本。

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

查找集群的渠道

您可以使用 gcloud 或 Google Cloud Console 确定集群的发布渠道。

控制台

  1. 进入控制台中的 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:集群的计算区域

选择新的发布渠道

在有限的情况下,支持在发布渠道之间迁移。

支持导致单个次要版本升级的转换(例如从稳定渠道迁移到常规渠道)。

由于跨 Kubernetes 次要版本进行降级存在风险,因此无法降级(例如从常规渠道迁移到稳定渠道)。同样,也不支持升级多个次要版本(例如从稳定渠道迁移到快速渠道)。

如需选择新的发布渠道,请更新集群发布渠道,将其更新为所需的 CHANNEL

如果不支持选择新的发布渠道,则我们建议您在所需渠道中创建新的集群并迁移工作负载。如果您希望使用现有的集群,则可以按照退订发布渠道,等待目标发布渠道提供作为集群的 Kubernetes 次要版本,然后按照相关说明在目标发布渠道中注册现有集群

退订发布渠道

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

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

如需退订某个发布渠道,请将集群的发布渠道更新为 None 值:

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

更新集群发布渠道

如需修改现有集群的发布渠道属性,请运行以下命令:

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

替换以下内容:

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

注意事项

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

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

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

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

后续步骤