升级 AWS 集群版本

本页面介绍如何升级 GKE on AWS 集群的 Kubernetes 版本。

前提条件

升级集群的 Kubernetes 版本是较常规的集群更新操作的一种特定情况。如需了解常规的集群更新操作,请参阅更新集群页面。要升级集群版本,必须满足以下前提条件:

  • 您必须依次升级到当前版本和目标版本之间的每个次要版本。例如,如需从 1.20 升级到 1.22,您必须先从 1.20 升级到 1.21,然后再从 1.21 升级到 1.22。
  • 您必须拥有 gkemulticloud.googleapis.com/awsClusters.update Identity and Access Management 权限。

GKE on AWS 如何执行更新

由于升级集群需要重启控制平面节点,因此 GKE on AWS 会按照以下步骤执行“滚动更新”:

  1. 选择一个要更新的控制层面实例。GKE on AWS 会先更新健康状况不佳的实例(如果有),然后再更新健康状况良好的实例。
  2. 为实例创建新的启动模板。
  3. 更新自动扩缩组的启动模板。
  4. 删除实例。 AWS 会重新创建实例,实例会使用新配置启动。
  5. 对新实例执行健康检查。
  6. 如果健康检查成功,选择另一个实例并对其执行相同的步骤。重复此循环,直到所有实例都重启或重新创建。如果健康检查失败,则 GKE on AWS 会将集群置于 DEGRADED 状态并停止更新。如需了解详情,请参阅以下部分。
  7. 删除原始启动模板。

更新失败时

更新后,GKE on AWS 会对集群执行健康检查。如果健康检查失败,则集群会被标记为 DEGRADED。您可以使用以下 Google Cloud CLI 命令显示集群的状态:

gcloud container aws clusters describe CLUSTER_NAME \
  --location=GOOGLE_CLOUD_LOCATION

替换以下内容:

  • CLUSTER_NAME:您的集群的名称
  • GOOGLE_CLOUD_LOCATION:管理您的集群的 Google Cloud 区域

执行升级

检查集群版本

在升级集群版本之前,请使用以下命令检查您的区域中可用的版本:

gcloud container aws get-server-config \
    --location=GOOGLE_CLOUD_LOCATION

GOOGLE_CLOUD_LOCATION 替换为您在其中管理集群的 Google Cloud 位置。

选择升级方法

您可以通过 Google Cloud 控制台、Google Cloud CLI 或 GKE Multi-Cloud API 升级集群版本。如果您要使用控制台升级集群,则必须先选择并配置用于登录集群的身份验证方法。如需了解详情,请参阅连接到集群并进行身份验证

控制台

  1. 在 Google Cloud 控制台中,进入 Google Kubernetes Engine 集群概览页面。

    转到 GKE 集群

  2. 选择集群所在的 Google Cloud 项目。

  3. 在集群列表中,选择集群名称,然后在侧边栏中选择查看详细信息

  4. 详细信息标签页上,选择 升级

  5. 升级集群的 Kubernetes 版本对话框中,选择要升级到的版本,然后点击完成。请注意,在升级集群时,您必须依次升级到所有次要版本。

gcloud

如需升级集群的 Kubernetes 版本,请运行以下命令:

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION

替换以下内容:

API

如需通过 API 更新集群,请在 GKE Multi-Cloud API 上使用 PATCH 操作。

  1. 创建名为 cluster_update.json 且包含以下内容的 JSON 文件:

    {
        "controlPlane": {
           "version": "CLUSTER_VERSION",
        },
    }
    

    替换以下内容:

    • CLUSTER_VERSION:新的受支持的集群版本。 请注意,在升级集群时,您必须依次升级到所有次要版本
  2. 使用以下命令,通过 GKE Multi-Cloud API 更新这些设置。

    curl -d @cluster_update.json -X PATCH \
       ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters/CLUSTER_ID?update_mask=controlPlane.Version
    

请替换以下内容:

如需了解详情,请参阅 projects.locations.awsClusters.patch 方法文档。

升级节点池

升级集群版本后,请升级节点池以完成过程。如需了解具体方法,请参阅更新节点池

后续步骤