本页面介绍如何升级 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 会按照以下步骤执行“滚动更新”:
- 选择一个要更新的控制层面实例。GKE on AWS 会先更新健康状况不佳的实例(如果有),然后再更新健康状况良好的实例。
- 为实例创建新的启动模板。
- 更新自动扩缩组的启动模板。
- 删除实例。 AWS 会重新创建实例,实例会使用新配置启动。
- 对新实例执行健康检查。
- 如果健康检查成功,选择另一个实例并对其执行相同的步骤。重复此循环,直到所有实例都重启或重新创建。如果健康检查失败,则 GKE on AWS 会将集群置于
DEGRADED
状态并停止更新。如需了解详情,请参阅以下部分。 - 删除原始启动模板。
更新失败时
更新后,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 升级集群版本。如果您要使用控制台升级集群,则必须先选择并配置用于登录集群的身份验证方法。如需了解详情,请参阅连接到集群并进行身份验证。
控制台
在 Google Cloud 控制台中,进入 Google Kubernetes Engine 集群概览页面。
选择集群所在的 Google Cloud 项目。
在集群列表中,选择集群名称,然后在侧边栏中选择查看详细信息。
在详细信息标签页上,选择
升级。在升级集群的 Kubernetes 版本对话框中,选择要升级到的版本,然后点击完成。请注意,在升级集群时,您必须依次升级到所有次要版本。
gcloud
如需升级集群的 Kubernetes 版本,请运行以下命令:
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--cluster-version=CLUSTER_VERSION
替换以下内容:
CLUSTER_NAME
:您的集群的名称GOOGLE_CLOUD_LOCATION
:管理集群的受支持的 Google Cloud 区域,例如us-west1
CLUSTER_VERSION
:新的受支持的集群版本
API
如需通过 API 更新集群,请在 GKE Multi-Cloud API 上使用 PATCH
操作。
创建名为
cluster_update.json
且包含以下内容的 JSON 文件:{ "controlPlane": { "version": "CLUSTER_VERSION", }, }
替换以下内容:
CLUSTER_VERSION
:新的受支持的集群版本。 请注意,在升级集群时,您必须依次升级到所有次要版本
使用以下命令,通过 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
请替换以下内容:
ENDPOINT
:您的 Google Cloud 服务端点PROJECT_ID
:您的 Google Cloud 项目GOOGLE_CLOUD_LOCATION
:管理集群的受支持的 Google Cloud 区域,例如us-west1
CLUSTER_ID
:您的集群 ID
如需了解详情,请参阅 projects.locations.awsClusters.patch
方法文档。
升级节点池
升级集群版本后,请升级节点池以完成过程。如需了解具体方法,请参阅更新节点池。
后续步骤
了解如何执行其他集群更新。
如需详细了解可更新的字段,请参阅
gcloud container aws clusters update
参考文档。请参阅
projects.locations.awsClusters.patch
REST API 文档。