To upgrade your GKE on AWS environment, first upgrade your management service and then upgrade your user clusters.
Management service
In the following sections, you upgrade your management service.
Before you begin
To connect to your GKE on AWS resources, perform the following steps. Select if you have an existing AWS VPC (or direct connection to your VPC) or created a dedicated VPC when creating your management service.
Existing VPC
If you have a direct or VPN connection to an existing VPC, omit the line
env HTTP_PROXY=http://localhost:8118 from commands in this topic.
Dedicated VPC
When you create a management service in a dedicated VPC, GKE on AWS includes a bastion host in a public subnet.
To connect to your management service, perform the following steps:
- Change to the directory with your GKE on AWS configuration. You created this directory when Installing the management service. - cd anthos-aws 
- To open the tunnel, run the - bastion-tunnel.shscript. The tunnel forwards to- localhost:8118.- To open a tunnel to the bastion host, run the following command: - ./bastion-tunnel.sh -N- Messages from the SSH tunnel appear in this window. When you are ready to close the connection, stop the process by using Control+C or closing the window. 
- Open a new terminal and change into your - anthos-awsdirectory.- cd anthos-aws 
- Check that you're able to connect to the cluster with - kubectl.- env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info- The output includes the URL for the management service API server. 
Upgrade your management service
To upgrade your management service, you download a new version of anthos-gke,
edit your
anthos-gke.yaml, and
then apply the changes.
Download a new version of anthos-gke
The latest version of the anthos-gke tool is aws-1.14.1-gke.0. To
download a new version of anthos-gke, perform the following steps:
The anthos-gke command-line tool only supports Linux and macOS.
- Download the binary from Cloud Storage. - Linux- gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .- macOS- gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
- Update the permissions of - anthos-gkeand copy it to- /usr/local/bin.- chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
- Confirm that the version is - aws-1.14.1-gke.0- anthos-gke version
Upgrade your management service
To upgrade your cluster, perform the following steps:
- Change to the directory with your GKE on AWS configuration.
You created this directory when
Installing the management service.
cd anthos-aws 
- Open your - anthos-gke.yamlin a text editor. Change the value of- spec.versionto 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 ...
- Run - anthos-gke aws management initto validate the- AWSManagementServiceobject and update the- anthos-gke.status.yamlfile.- anthos-gke aws management init
- Run - anthos-gke aws management applyto update the management service on AWS.- anthos-gke aws management apply- The - anthos-gkecommand begins to upgrade your management service. The upgrade might take up to ten minutes to complete.
User clusters
In the following sections, you upgrade your user clusters.
Before you begin
Before you can complete these steps, you must have a management service and at least one user cluster.
Supported Kubernetes versions
GKE on AWS aws-1.14.1-gke.0 supports the following Kubernetes versions:
- 1.23.15-gke.2000
- 1.24.9-gke.2100
- 1.25.5-gke.2100
For information on prior supported versions, see Release notes.
Component upgrades
This section describes upgrading your AWSClusters and AWSNodePools.
AWSCluster
You can update an AWSCluster to a new version of GKE on AWS without updating your AWSNodePools.
AWSNodePools
You cannot update an AWSNodePool to a version newer than your AWSCluster. To update your AWSNodePools, you must first update your AWSCluster.
Your AWSNodePools version must be no less than two minor versions behind your AWSCluster version.
Upgrade an existing AWSCluster and AWSNodePool
To upgrade your cluster, you update the version field of AWSCluster and
AWSNodePool objects on your management service.
AWSCluster
To upgrade an AWSCluster, perform the following steps:
- From your - anthos-awsdirectory, use- anthos-gketo switch context to your management service.- cd anthos-aws anthos-gke aws management get-credentials 
- Open the YAML file that created your AWSCluster in a text editor. If you do not have your initial YAML file, you can use - kubectl edit.- Edit YAML- If you followed the instructions in Creating a user cluster, your YAML file is named - cluster-0.yaml. Open this file in a text editor.- kubectl edit- To use - kubectl editto edit your AWSCluster, run the following command:- env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name- Replace cluster-name with your AWSCluster. For example, to edit the default cluster, - cluster-0, run the following command:- env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
- Update the - spec.controlPlane.versionfield to a new version of GKE on AWS. The most recent version is 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 ...- Replace gke-version with your desired Kubernetes version. The most recent supported Kubernetes version is 1.25.5-gke.2100. 
- Save the file. If you are using - kubectl edit,- kubectlapplies the changes automatically. If you are editing the YAML file, apply it to your management service with the following command:- env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml- The management service then updates your AWSCluster. 
AWSNodePool
To upgrade an AWSNodePool, perform the following steps:
- From your - anthos-awsdirectory, use- anthos-gketo switch context to your management service.- cd anthos-aws anthos-gke aws management get-credentials 
- Open the YAML file that created your AWSNodePool in a text editor. If you followed the instructions in Creating a user cluster, this file is named - cluster-0.yaml.
- Update the value of - spec.versionin your AWSNodePool resources.- 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 ...- Replace gke-version with your desired Kubernetes version. The most recent supported Kubernetes version is 1.25.5-gke.2100. 
- Apply the new configuration to your management service with - kubectl.- env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml- The management service then updates your AWSNodePool one node at a time. Before a node is shut down, Pods running on that node receive a SIGTERM. If a Pod does not shut down after a grace period, it receives a SIGKILL. 
View Status
To get the status of an upgrade, run kubectl get AWSClusters on your
management service.
env HTTPS_PROXY=http://localhost:8118 \
    kubectl get AWSClusters
The output includes each cluster's name, state, age, version, and endpoint.
For example, the following output includes one AWSCluster named cluster-0.
NAME        STATE          AGE     VERSION         ENDPOINT
cluster-0   Upgrading   2m41s      1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
Your user cluster upgrade is complete when the STATE of your clusters is Provisioned.