Pour mettre à niveau votre environnement GKE sur AWS, mettez à niveau votre service de gestion, puis vos clusters d'utilisateur.
Service de gestion
Dans les sections suivantes, vous allez mettre à niveau votre service de gestion.
Avant de commencer
Pour vous connecter à vos ressources GKE sur AWS, suivez les instructions suivantes. Indiquez si vous disposez d'un VPC AWS (ou d'une connexion directe à votre VPC) ou si vous avez créé un VPC dédié lors de la création de votre service de gestion.
VPC existant
Si vous disposez d'une connexion directe ou VPN à un VPC existant, omettez la ligne env HTTP_PROXY=http://localhost:8118
des commandes de cette rubrique.
VPC dédié
Lorsque vous créez un service de gestion dans un VPC dédié, GKE sur AWS inclut un hôte bastion placé dans un sous-réseau public.
Pour vous connecter à votre service de gestion, procédez comme suit :
Accédez au répertoire contenant votre configuration GKE sur AWS. Vous avez créé ce répertoire lors de l'installation du service de gestion.
cd anthos-aws
Pour ouvrir le tunnel, exécutez le script
bastion-tunnel.sh
. Le tunnel est transféré verslocalhost:8118
.Pour ouvrir un tunnel vers l'hôte bastion, exécutez la commande suivante :
./bastion-tunnel.sh -N
Les messages en provenance du tunnel SSH s'affichent dans cette fenêtre. Lorsque vous êtes prêt à fermer la connexion, arrêtez le processus à l'aide du raccourci Ctrl+C ou en fermant la fenêtre.
Ouvrez un nouveau terminal et accédez au répertoire
anthos-aws
.cd anthos-aws
Vérifiez que vous êtes en mesure de vous connecter au cluster à l'aide de
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
Le résultat inclut l'URL du serveur d'API du service de gestion.
Mettre à niveau votre service de gestion
Pour mettre à niveau votre service de gestion, téléchargez une nouvelle version de anthos-gke
, modifiez votre fichier anthos-gke.yaml
, puis appliquez ces modifications.
Télécharger une nouvelle version d'anthos-gke
La dernière version de l'outil anthos-gke
est aws-1.14.1-gke.0
. Pour télécharger une nouvelle version de anthos-gke
, procédez comme suit :
L'outil de ligne de commande anthos-gke
n'est compatible qu'avec Linux et macOS.
Téléchargez le binaire depuis 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 .
Mettez à jour les autorisations du fichier
anthos-gke
et copiez-le dans/usr/local/bin
.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
Confirmez que la version est
aws-1.14.1-gke.0
.anthos-gke version
Mettre à niveau votre service de gestion
Pour mettre à niveau votre cluster, procédez comme suit :
- Accédez au répertoire contenant votre configuration GKE sur AWS.
Vous avez créé ce répertoire lors de l'installation du service de gestion.
cd anthos-aws
Ouvrez votre fichier
anthos-gke.yaml
dans un éditeur de texte. Remplacez la valeur despec.version
par 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 ...
Exécutez
anthos-gke aws management init
pour valider l'objetAWSManagementService
et mettre à jour le fichieranthos-gke.status.yaml
.anthos-gke aws management init
Exécutez
anthos-gke aws management apply
pour mettre à jour le service de gestion sur AWS.anthos-gke aws management apply
La commande
anthos-gke
débute la mise à niveau du service de gestion. La mise à niveau peut prendre jusqu'à dix minutes.
Clusters d'utilisateur
Dans les sections suivantes, vous allez mettre à niveau vos clusters d'utilisateur.
Avant de commencer
Pour réaliser les étapes ci-dessous, vous devez disposer d'un service de gestion et d'au moins un cluster d'utilisateur.
Versions de Kubernetes compatibles
GKE sur AWS aws-1.14.1-gke.0 est compatible avec les versions de Kubernetes suivantes :
- 1.23.15-gke.2000
- 1.24.9-gke.2100
- 1.25.5-gke.2100
Pour en savoir plus sur les versions antérieures compatibles, consultez la page Notes de version.
Mises à niveau des composants
Cette section explique comment mettre à niveau les composants AWSClusters et AWSPools.
AWSCluster
Vous pouvez mettre à jour un AWSCluster vers une nouvelle version de GKE sur AWS sans mettre à jour vos AWSNodePools.
AWSNodePools
Vous ne pouvez pas mettre à jour un AWSNodePool vers une version plus récente que l'AWSCluster. Pour mettre à jour les AWSNodePools, vous devez d'abord mettre à jour l'AWSCluster.
La version des AWSNodePools ne doit pas être antérieure de plus de deux versions mineures à la version du AWSCluster.
Mettre à niveau un AWSCluster et un AWSNodePool existants
Pour mettre à niveau votre cluster, mettez à jour le champ version
des objets AWSCluster
et AWSNodePool
dans votre service de gestion.
AWSCluster
Pour mettre à niveau un AWSCluster, procédez comme suit :
À partir de votre répertoire
anthos-aws
, utilisezanthos-gke
pour basculer vers le contexte de votre service de gestion.cd anthos-aws anthos-gke aws management get-credentials
Dans un éditeur de texte, ouvrez le fichier YAML dans lequel vous avez créé votre AWSCluster. Si vous ne disposez pas de votre fichier YAML initial, vous pouvez utiliser
kubectl edit
.Modifier le fichier YAML
Si vous avez suivi les instructions de la section Créer un cluster d'utilisateur, votre fichier YAML s'appelle
cluster-0.yaml
. Ouvrez ce fichier dans un éditeur de texte.Utiliser kubectl edit
Pour modifier votre AWSCluster à l'aide de
kubectl edit
, exécutez la commande suivante :env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
Remplacez cluster-name par votre AWSCluster. Par exemple, pour modifier le cluster par défaut,
cluster-0
, exécutez la commande suivante :env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
Mettez à jour le champ
spec.controlPlane.version
vers une nouvelle version de GKE sur AWS. La version la plus récente est 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 ...
Remplacez gke-version par la version de Kubernetes de votre choix. La version compatible de Kubernetes la plus récente est la version 1.25.5-gke.2100.
Enregistrez le fichier. Si vous utilisez
kubectl edit
,kubectl
applique automatiquement les modifications. Si vous modifiez le fichier YAML, appliquez-le à votre service de gestion à l'aide de la commande suivante :env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
Le service de gestion met ensuite à jour l'AWSCluster.
AWSNodePool
Pour mettre à niveau un AWSNodePool, procédez comme suit :
À partir de votre répertoire
anthos-aws
, utilisezanthos-gke
pour basculer vers le contexte de votre service de gestion.cd anthos-aws anthos-gke aws management get-credentials
Dans un éditeur de texte, ouvrez le fichier YAML dans lequel vous avez créé votre AWSNodePool. Si vous avez suivi les instructions de la section Créer un cluster d'utilisateur, ce fichier est nommé
cluster-0.yaml
.Mettez à jour la valeur de
spec.version
dans vos ressources 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 ...
Remplacez gke-version par la version de Kubernetes de votre choix. La version compatible de Kubernetes la plus récente est la version 1.25.5-gke.2100.
Appliquez la nouvelle configuration à votre service de gestion à l'aide de
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
Le service de gestion met ensuite à jour votre AWSNodePool un nœud à la fois. Avant l'arrêt d'un nœud, les pods s'exécutant sur ce nœud reçoivent un signal SIGTERM. Si un pod ne s'arrête pas après un délai de grâce, il reçoit un signal SIGKILL.
Afficher l'état
Pour obtenir l'état d'une mise à niveau, exécutez kubectl get AWSClusters
sur votre service de gestion.
env HTTPS_PROXY=http://localhost:8118 \
kubectl get AWSClusters
Le résultat inclut le nom, l'état, l'âge, la version et le point de terminaison de chaque cluster.
Par exemple, le résultat suivant inclut un AWSCluster
nommé cluster-0
.
NAME STATE AGE VERSION ENDPOINT
cluster-0 Upgrading 2m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com
La mise à niveau de votre cluster d'utilisateur est terminée lorsque l'état STATE de vos clusters est Provisioned (provisionné).