Per eseguire l'upgrade dell'ambiente GKE su AWS, esegui prima l'upgrade del servizio di gestione e poi dei cluster utente.
Servizio di gestione
Nelle sezioni seguenti, esegui l'upgrade del servizio di gestione.
Prima di iniziare
Per connetterti alle risorse GKE su AWS, segui questi passaggi. Seleziona se hai una VPC AWS esistente (o una connessione diretta alla tua VPC) o se hai creato una VPC dedicata durante la creazione del servizio di gestione.
VPC esistente
Se hai una connessione diretta o VPN a un VPC esistente, ometti la riga
env HTTP_PROXY=http://localhost:8118
dai comandi in questo argomento.
VPC dedicato
Quando crei un servizio di gestione in un VPC dedicato, GKE su AWS include un host bastion in una subnet pubblica.
Per connetterti al tuo servizio di gestione:
Passa alla directory con la configurazione di GKE su AWS. Hai creato questa directory durante l'installazione del servizio di gestione.
cd anthos-aws
Per aprire il tunnel, esegui lo script
bastion-tunnel.sh
. Il tunnel inoltra alocalhost:8118
.Per aprire un tunnel all'bastion host, esegui questo comando:
./bastion-tunnel.sh -N
I messaggi del tunnel SSH vengono visualizzati in questa finestra. Quando sei pronto a chiudere la connessione, interrompi la procedura utilizzando Ctrl+C o chiudendo la finestra.
Apri un nuovo terminale e passa alla directory
anthos-aws
.cd anthos-aws
Verifica di poter connetterti al cluster con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
L'output include l'URL del server API del servizio di gestione.
Esegui l'upgrade del servizio di gestione
Per eseguire l'upgrade del servizio di gestione, scarica una nuova versione di anthos-gke
,
modifica il file
anthos-gke.yaml
e
poi applica le modifiche.
Scarica una nuova versione di anthos-gke
L'ultima versione dello strumento anthos-gke
è aws-1.14.1-gke.0
. Per
scaricare una nuova versione di anthos-gke
, segui questi passaggi:
Lo strumento a riga di comando anthos-gke
supporta solo Linux e macOS.
Scarica il file binario da 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 .
Aggiorna le autorizzazioni di
anthos-gke
e copialo in/usr/local/bin
.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
Verifica che la versione sia
aws-1.14.1-gke.0
anthos-gke version
Esegui l'upgrade del servizio di gestione
Per eseguire l'upgrade del cluster:
- Passa alla directory con la configurazione di GKE su AWS.
Hai creato questa directory durante
l'installazione del servizio di gestione.
cd anthos-aws
Apri il file
anthos-gke.yaml
in un editor di testo. Modifica il valore dispec.version
in 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 ...
Esegui
anthos-gke aws management init
per convalidare l'oggettoAWSManagementService
e aggiornare il fileanthos-gke.status.yaml
.anthos-gke aws management init
Esegui
anthos-gke aws management apply
per aggiornare il servizio di gestione su AWS.anthos-gke aws management apply
Il comando
anthos-gke
inizia l'upgrade del servizio di gestione. Il completamento dell'upgrade potrebbe richiedere fino a 10 minuti.
Cluster utenti
Nelle sezioni seguenti, esegui l'upgrade dei cluster utente.
Prima di iniziare
Prima di poter completare questi passaggi, devi disporre di un servizio di gestione e di almeno un cluster di utenti.
Versioni di Kubernetes supportate
GKE su AWS aws-1.14.1-gke.0 supporta le seguenti versioni di Kubernetes:
- 1.23.15-gke.2000
- 1.24.9-gke.2100
- 1.25.5-gke.2100
Per informazioni sulle versioni supportate precedenti, consulta le note di rilascio.
Upgrade dei componenti
Questa sezione descrive l'upgrade di AWSClusters e AWSNodePools.
AWSCluster
Puoi aggiornare un AWSCluster a una nuova versione di GKE su AWS senza aggiornare gli AWSNodePool.
AWSNodePools
Non puoi aggiornare un AWSNodePool a una versione più recente di AWSCluster. Per aggiornare gli AWSNodePool, devi prima aggiornare l'AWSCluster.
La versione di AWSNodePools non deve essere inferiore a due versioni secondarie rispetto alla versione di AWSCluster.
Esegui l'upgrade di un AWSCluster e di un AWSNodePool esistenti
Per eseguire l'upgrade del cluster, aggiorna il campo version
degli oggetti AWSCluster
e
AWSNodePool
nel servizio di gestione.
AWSCluster
Per eseguire l'upgrade di un AWSCluster, svolgi i seguenti passaggi:
Dalla directory
anthos-aws
, utilizzaanthos-gke
per passare al servizio di gestione.cd anthos-aws anthos-gke aws management get-credentials
Apri il file YAML che ha creato il tuo AWSCluster in un editor di testo. Se non hai il file YAML iniziale, puoi utilizzare
kubectl edit
.Modifica YAML
Se hai seguito le istruzioni riportate in Creazione di un cluster utente, il file YAML si chiama
cluster-0.yaml
. Apri questo file in un editor di testo.kubectl edit
Per utilizzare
kubectl edit
per modificare il tuo AWSCluster, esegui il seguente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
Sostituisci cluster-name con il tuo AWSCluster. Ad esempio, per modificare il cluster predefinito,
cluster-0
, esegui questo comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
Aggiorna il campo
spec.controlPlane.version
a una nuova versione di GKE su AWS. La versione più recente è 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 ...
Sostituisci gke-version con la versione di Kubernetes che preferisci. L'ultima versione di Kubernetes supportata è la 1.25.5-gke.2100.
Salva il file. Se utilizzi
kubectl edit
,kubectl
applica le modifiche automaticamente. Se stai modificando il file YAML, applicalo al tuo servizio di gestione con il seguente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
Il servizio di gestione aggiorna quindi AWSCluster.
AWSNodePool
Per eseguire l'upgrade di un AWSNodePool, segui questi passaggi:
Dalla directory
anthos-aws
, utilizzaanthos-gke
per passare al servizio di gestione.cd anthos-aws anthos-gke aws management get-credentials
Apri il file YAML che ha creato il tuo AWSNodePool in un editor di testo. Se hai seguito le istruzioni riportate in Creazione di un cluster utente, questo file si chiama
cluster-0.yaml
.Aggiorna il valore di
spec.version
nelle risorse AWSNodePool.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 ...
Sostituisci gke-version con la versione di Kubernetes che preferisci. L'ultima versione di Kubernetes supportata è la 1.25.5-gke.2100.
Applica la nuova configurazione al tuo servizio di gestione con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
Il servizio di gestione aggiorna quindi AWSNodePool un nodo alla volta. Prima che un nodo venga arrestato, i pod in esecuzione su quel nodo ricevono un SIGTERM. Se un pod non si arresta dopo un periodo di tolleranza, riceve un SIGKILL.
Visualizza stato
Per ottenere lo stato di un upgrade, esegui kubectl get AWSClusters
sul servizio di gestione.
env HTTPS_PROXY=http://localhost:8118 \
kubectl get AWSClusters
L'output include il nome, lo stato, l'età, la versione e l'endpoint di ogni cluster.
Ad esempio, il seguente output include un AWSCluster
denominato cluster-0
.
NAME STATE AGE VERSION ENDPOINT
cluster-0 Upgrading 2m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com
L'upgrade del cluster utente è completato quando lo STATO dei cluster è Provisioned.