如需升级 GKE on AWS 环境,请先升级管理服务,然后升级用户集群。
管理服务
在以下部分中,您将升级管理服务。
准备工作
如需连接到 GKE on AWS 资源,请执行以下步骤。选择您是拥有现有 AWS VPC(或者与 VPC 的直接连接)还是在创建管理服务时创建了专用 VPC。
现有 VPC
如果您拥有与现有 VPC 的直接连接或 VPN 连接,请省略本主题的命令中的行 env HTTP_PROXY=http://localhost:8118
。
专用 VPC
如果您在专用 VPC 中创建管理服务,则 GKE on AWS 会在公共子网中添加一个堡垒主机。
如需连接到您的管理服务,请执行以下步骤:
切换到您的 GKE on AWS 配置所在的目录。 您在安装管理服务时创建了此目录。
cd anthos-aws
要打开隧道,请运行
bastion-tunnel.sh
脚本。隧道会转发到localhost:8118
。如需打开堡垒主机的隧道,请运行以下命令:
./bastion-tunnel.sh -N
来自 SSH 隧道的消息会显示在此窗口中。准备好关闭连接后,请使用 Control+C 或关闭窗口来停止该进程。
打开新终端并切换到您的
anthos-aws
目录。cd anthos-aws
检查您是否能够使用
kubectl
连接到集群。env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
输出包括管理服务 API 服务器的网址。
升级管理服务
如需升级管理服务,请下载新版 anthos-gke
,修改 anthos-gke.yaml
,然后应用更改。
下载 anthos-gke 的新版本
anthos-gke
工具的最新版本为 aws-1.14.1-gke.0
。如需下载新版 anthos-gke
,请执行以下步骤:
anthos-gke
命令行工具仅支持 Linux 和 macOS。
从 Cloud Storage 下载二进制文件。
Linux
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
macOS
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
更新
anthos-gke
的权限并将其复制到/usr/local/bin
。chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
确认版本为
aws-1.14.1-gke.0
anthos-gke version
升级管理服务
如需升级集群,请执行以下步骤:
- 切换到您的 GKE on AWS 配置所在的目录。
您在安装管理服务时创建了此目录。
cd anthos-aws
在文本编辑器中打开
anthos-gke.yaml
。将spec.version
的值更改为 aws-1.14.1-gke.0。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.14.1-gke.0 region: aws-region ...
运行
anthos-gke aws management init
以验证AWSManagementService
对象并更新anthos-gke.status.yaml
文件。anthos-gke aws management init
运行
anthos-gke aws management apply
以更新 AWS 上的管理服务。anthos-gke aws management apply
anthos-gke
命令开始升级管理服务。升级最多可能需要十分钟才能完成。
用户集群
在以下部分中,您将升级用户集群。
准备工作
支持的 Kubernetes 版本
GKE on AWS aws-1.14.1-gke.0 支持以下 Kubernetes 版本:
- 1.23.15-gke.2000
- 1.24.9-gke.2100
- 1.25.5-gke.2100
如需了解以前支持的版本,请参阅版本说明。
组件升级
本部分介绍如何升级 AWSCluster 和 AWSNodePool。
AWSCluster
您可以将 AWSCluster 更新到新版 GKE on AWS,而无需更新 AWSNodePool。
AWSNodePool
您无法将 AWSNodePool 更新到比 AWSCluster 更新的版本。如需更新 AWSNodePool,您必须先更新 AWSCluster。
您的 AWSNodePool 版本不能低于 AWSCluster 版本后的两个次要版本。
升级现有 AWSCluster 和 AWSNodePool
如需升级集群,您需要更新管理服务中 AWSCluster
和 AWSNodePool
对象的 version
字段。
AWSCluster
如需升级 AWSCluster,请执行以下步骤:
在
anthos-aws
目录中,使用anthos-gke
将上下文切换到管理服务。cd anthos-aws anthos-gke aws management get-credentials
在文本编辑器中打开创建 AWSCluster 的 YAML 文件。 如果您没有初始 YAML 文件,则可以使用
kubectl edit
。修改 YAML
如果您按照创建用户集群中的说明操作,则 YAML 文件名为
cluster-0.yaml
。在文本编辑器中打开此文件。kubectl 修改
如需使用
kubectl edit
修改 AWSCluster,请运行以下命令:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
将 cluster-name 替换为您的 AWSCluster。例如,要修改默认集群
cluster-0
,请运行以下命令:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
将
spec.controlPlane.version
字段更新为 GKE on AWS 的新版本。最新版本为 1.25.5-gke.2100。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster metadata: name: cluster-0 spec: region: us-east-1 controlPlane: version: gke_version instanceType: t3.medium ...
将 gke-version 替换为所需的 Kubernetes 版本。支持的最新 Kubernetes 版本是 1.25.5-gke.2100。
保存文件。如果您使用
kubectl edit
,kubectl
会自动应用更改。如果您要修改 YAML 文件,请使用以下命令将其应用于您的管理服务:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
然后,管理服务会更新您的 AWSCluster。
AWSNodePool
如需升级 AWSNodePool,请执行以下步骤:
在
anthos-aws
目录中,使用anthos-gke
将上下文切换到管理服务。cd anthos-aws anthos-gke aws management get-credentials
在文本编辑器中打开创建 AWSNodePool 的 YAML 文件。如果您按照创建用户集群中的说明操作,则此文件名为
cluster-0.yaml
。更新 AWSNodePool 资源中的
spec.version
值。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool metadata: name: cluster-0-pool-0 spec: clusterName: cluster-0 region: us-east-1 version: gke-version ...
将 gke-version 替换为所需的 Kubernetes 版本。支持的最新 Kubernetes 版本是 1.25.5-gke.2100。
使用
kubectl
将新配置应用到管理服务。env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
然后,管理服务一次一个节点地更新 AWSNodePool。在节点关闭之前,在该节点上运行的 Pod 会收到 SIGTERM。如果 Pod 在宽限期后没有关闭,则会收到 SIGKILL。
查看状态
如需获取升级的状态,请在您的管理服务上运行 kubectl get AWSClusters
。
env HTTPS_PROXY=http://localhost:8118 \
kubectl get AWSClusters
输出包括每个集群的名称、状态、存在时间、版本和端点。例如,以下输出包含一个名为 cluster-0
的 AWSCluster
。
NAME STATE AGE VERSION ENDPOINT
cluster-0 Upgrading 2m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com
如果集群的状态为已预配,则您的用户集群升级已完成。