Faire tourner l'adresse IP de votre plan de contrôle

Vous trouverez sur cette page la procédure à suivre pour effectuer une rotation des adresses IP pour votre plan de contrôle dans Google Kubernetes Engine.

Aperçu

Vous pouvez effectuer une rotation des adresses IP afin de modifier l'adresse IP utilisée par le plan de contrôle de votre cluster (maître) pour envoyer les requêtes de l'API Kubernetes.

La rotation des adresses IP modifie également le certificat SSL et l'autorité de certification du cluster, ce qui limite la possibilité d'associer l'ancienne adresse à la nouvelle.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

Configurez les paramètres gcloud par défaut à l'aide de l'une des méthodes suivantes :

  • Utilisez gcloud init pour suivre les instructions permettant de définir les paramètres par défaut.
  • Utilisez gcloud config pour définir individuellement l'ID, la zone et la région de votre projet.

Utiliser gcloud init

Si le message d'erreur One of [--zone, --region] must be supplied: Please specify location s'affiche, effectuez les tâches ci-dessous.

  1. Exécutez gcloud init et suivez les instructions :

    gcloud init

    Si vous utilisez SSH sur un serveur distant, utilisez l'option --console-only pour empêcher la commande d'ouvrir un navigateur :

    gcloud init --console-only
  2. Suivez les instructions pour autoriser gcloud à utiliser votre compte Google Cloud.
  3. Créez ou sélectionnez une configuration.
  4. Choisissez un projet Google Cloud.
  5. Choisissez une zone Compute Engine par défaut pour les clusters zonaux ou une région pour les clusters régionaux ou Autopilot.

Utiliser gcloud config

  • Définissez votre ID de projet par défaut :
    gcloud config set project PROJECT_ID
  • Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone COMPUTE_ZONE
  • Si vous utilisez des clusters Autopilot ou régionaux, définissez votre région de calcul par défaut :
    gcloud config set compute/region COMPUTE_REGION
  • Mettez à jour gcloud vers la dernière version :
    gcloud components update

Fonctionnement de la rotation des adresses IP

La rotation des adresses IP est un processus en plusieurs étapes :

  • Lorsque vous lancez une rotation des adresses IP, le plan de contrôle du cluster commence à diffuser le trafic sur la nouvelle adresse IP en plus de l'adresse IP d'origine.
  • Après avoir lancé une rotation, vous devez mettre à jour les clients API de votre cluster (tels que les machines de développement utilisant l'interface de ligne de commande kubectl) pour commencer à communiquer avec le plan de contrôle via la nouvelle adresse IP.
  • Lorsque vous terminez la rotation, le plan de contrôle cesse de diffuser le trafic sur l'adresse IP précédente.

Effectuer une rotation des adresses IP

Dans les sections suivantes, nous vous expliquons comment effectuer une rotation des adresses IP.

Lancer la rotation

Pour lancer une rotation des adresses IP, exécutez la commande suivante :

gcloud container clusters update [CLUSTER_NAME] --start-ip-rotation

[CLUSTER_NAME] est le nom du cluster.

Cette commande configure le plan de contrôle du cluster afin qu'il diffuse le trafic sur deux adresses IP (son adresse d'origine et une nouvelle adresse). Cela provoque un bref temps d'arrêt au niveau de l'API de cluster.

La commande renvoie le résultat suivant :


This will start an IP Rotation on cluster [CLUSTER-NAME].
The master will be updated to serve on a new IP address in addition to
the current IP address. GKE will then recreate all
nodes to point to the new IP address. This operation is
long-running and will block other operations on the cluster (including
delete) until it has run to completion.
Do you want to continue (Y/n)?

Après avoir confirmé, laissez votre interface système ouverte jusqu'à la fin de l'opération.

Une fois le plan de contrôle reconfiguré, GKE met à jour automatiquement les nœuds de votre cluster afin qu'ils utilisent la nouvelle adresse IP. Chaque pool de nœuds est marqué comme devant être recréé. GKE ne termine pas la rotation des adresses IP tant que la recréation automatique n'est pas terminée.

Inspecter la rotation

Pour surveiller l'opération de mise à jour, exécutez la commande suivante :

gcloud container operations list --filter="UPGRADE_NODES RUNNING"

Cette commande renvoie l'ID d'opération pour l'opération de mise à jour.

Pour interroger l'opération, transmettez l'ID d'opération à la commande suivante :

gcloud container operations wait [OPERATION_ID]

Les pools de nœuds sont recréés un par un, et chacun possède sa propre opération. Si vous avez plusieurs pools de nœuds, vous pouvez suivre les instructions ci-dessus pour interroger chaque opération.

Mettre à jour les clients API

Une fois la rotation des adresses IP lancée, vous devez mettre à jour tous les clients API en dehors du cluster (tels que kubectl sur les machines de développement) de sorte qu'ils pointent vers la nouvelle adresse.

Pour mettre à jour vos clients API, exécutez la commande suivante pour chaque client :

gcloud container clusters get-credentials [CLUSTER_NAME]

Terminer la rotation

Pour terminer la rotation, exécutez la commande suivante :

gcloud container clusters update [CLUSTER_NAME] --complete-ip-rotation

La commande renvoie le résultat suivant :

This will complete the in-progress IP Rotation on cluster [CLUSTER_NAME].
The master will be updated to stop serving on the old IP address and only
serve on the new IP address. Make sure all API clients have been updated
to communicate with the new IP address (e.g. by running `gcloud container
clusters get-credentials --project [PROJECT-ID] --zone [COMPUTE-ZONE]
[CLUSTER-NAME]`). This operation is long-running and will
block other operations on the cluster (including delete) until it has
run to completion.

Cette commande configure le plan de contrôle afin qu'il ne diffuse le trafic que sur sa nouvelle adresse IP. Cela provoque un bref temps d'arrêt au niveau de l'API de cluster.

Étapes suivantes