Mettre à jour les paramètres de votre cluster Azure

Cette page explique comment mettre à jour les paramètres de votre cluster GKE sur Azure. Vous pouvez suivre ces instructions pour mettre à jour n'importe quel paramètre pouvant être mis à jour dans votre cluster, y compris la version de Kubernetes. La mise à niveau de la version étant l'une des opérations de mise à jour de cluster les plus courantes, une page distincte de la mise à niveau de votre cluster explique comment mettre à niveau une version de cluster.

Motifs de mise à jour d'un cluster

Vous pouvez mettre à jour un cluster pour l'une des raisons suivantes :

  • Pour mettre à jour la description de votre cluster.
  • Pour mettre à jour les annotations de votre cluster.
  • Mettre à jour la liste des utilisateurs avec accès administrateur de votre cluster.
  • Mettre à jour la configuration de journalisation de votre cluster.
  • Mettre à jour la taille de la VM de votre cluster.
  • Pour mettre à jour la ressource AzureClient de votre cluster.
  • Pour mettre à jour l'authentification de votre cluster depuis AzureClient vers la fédération d'identité de charge de travail.

Vous pouvez également mettre à jour d'autres champs de vos clusters non répertoriés ici. Pour obtenir la liste complète des paramètres que vous pouvez mettre à jour, consultez la documentation sur gcloud container azure clusters update et projects.locations.azureClusters.patch.

Prérequis

  • Pour mettre à jour les champs de votre cluster, vous devez disposer de l'autorisation Identity and Access Management gkemulticloud.googleapis.com/azureClusters.update.

Processus de mise à jour

Le processus par lequel GKE sur Azure met à jour un cluster varie en fonction du type de mise à jour. Pour certaines modifications, GKE sur Azure peut mettre à jour un cluster sans redémarrer ou recréer les ressources, par exemple en mettant à jour la description d'un cluster. GKE sur Azure apporte ces modifications immédiatement.

D'autres modifications nécessitent le redémarrage des nœuds du plan de contrôle, par exemple la mise à jour de la taille de la VM ou de la version de Kubernetes. Pour ces mises à jour, GKE sur Azure effectue une "mise à jour progressive" comprenant les étapes suivantes :

  1. Choisit une instance de plan de contrôle à mettre à jour. GKE sur Azure met à jour les instances non opérationnelles, le cas échéant, avant celles qui sont opérationnelles.
  2. Supprimez l'instance. GKE sur Azure recrée l'instance et celle-ci démarre avec la nouvelle configuration.
  3. Effectue des vérifications d'état sur la nouvelle instance.
  4. Si les vérifications d'état réussissent, sélectionne une autre instance et effectue les mêmes étapes. Répète ce cycle jusqu'à ce que toutes les instances soient redémarrées ou recréées. Si la vérification de l'état échoue, GKE sur Azure place le cluster à l'état DEGRADED et arrête la mise à jour. Pour en savoir plus, consultez la section suivante.

En cas d'échec d'une mise à jour

Après une mise à jour, GKE sur Azure effectue une vérification de l'état du cluster. Si la vérification de l'état échoue, le cluster est marqué comme DEGRADED. Vous pouvez afficher l'état de votre cluster à l'aide de la commande Google Cloud CLI suivante :

gcloud container azure clusters describe CLUSTER_NAME \
  --location=GOOGLE_CLOUD_LOCATION

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • GOOGLE_CLOUD_LOCATION : région Google Cloud qui gère votre cluster

Mettre à jour votre cluster

Vous pouvez utiliser la console Google Cloud, la Google Cloud CLI ou l'API GKE multi-cloud pour mettre à jour plusieurs champs de cluster à la fois.

Choisir une méthode de mise à jour

Vous pouvez mettre à jour la plupart des champs via la console, la gcloud CLI ou l'API GKE multicloud. Certains champs ne peuvent être mis à jour que par l'un ou l'autre de ces mécanismes. Si vous souhaitez utiliser la console pour mettre à jour un cluster, vous devez d'abord choisir et configurer une méthode d'authentification pour vous connecter au cluster. Pour en savoir plus, consultez la section Se connecter et s'authentifier auprès de votre cluster.

Console

  1. Dans la console Google Cloud, accédez à la page Présentation des clusters Google Kubernetes Engine.

    Accéder aux clusters GKE

  2. Sélectionnez le projet Google Cloud dans lequel se trouve le cluster.

  3. Dans la liste des clusters, sélectionnez le nom du cluster, puis cliquez sur Afficher les détails dans le panneau latéral.

  4. Dans l'onglet Détails, sélectionnez Modifier dans le champ que vous souhaitez modifier.

    Par exemple, pour accorder des droits d'administrateur de cluster à d'autres utilisateurs, sélectionnez Modifier à côté de Administrateurs, puis saisissez l'adresse e-mail de l'utilisateur.

  5. Une fois les modifications effectuées, sélectionnez OK.

gcloud

Lorsque vous mettez à jour un cluster à l'aide de gcloud CLI, vous devez toujours inclure les champs CLUSTER_NAME et GOOGLE_CLOUD_LOCATION, qui indiquent à GKE sur Azure le cluster à mettre à jour. Dans la commande suivante, n'incluez que les champs que vous souhaitez mettre à jour. Supprimez les autres champs avant d'exécuter la commande.

gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION \
    --admin-users=USERNAME_LIST \
    --client=CLIENT_NAME \
    --vm-size=VM_SIZE 

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • GOOGLE_CLOUD_LOCATION (obligatoire) : région Google Cloud compatible qui gère votre cluster, par exemple us-west1
  • CLUSTER_VERSION : nouvelle version de cluster compatible
  • USERNAME_LIST : liste de noms d'utilisateurs séparés par des virgules, par exemple, "kai@example.com,hao@example.com,kalani@example.com". Il s'agit des adresses e-mail des utilisateurs auxquels vous accordez des droits d'administrateur sur ce cluster. Les noms de ce paramètre remplacent la liste précédente des utilisateurs avec accès administrateur sur le cluster.
  • CLIENT_NAME : votre AzureClient
  • VM_SIZE : la nouvelle taille de VM acceptée

Pour mettre à jour l'authentification du cluster de AzureClient vers la fédération d'identité de charge de travail, exécutez la commande suivante:

gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --azure-tenant-id="${TENANT_ID}" \
    --azure-application-id="${APPLICATION_ID}" \
    --clear-client

API

Lorsque vous mettez à jour un cluster à l'aide de l'API GKE multicloud, vous devez toujours inclure les champs CLUSTER_NAME et GOOGLE_CLOUD_LOCATION dans la requête HTTP. Ces champs indiquent à GKE sur Azure le cluster à mettre à jour. Vous devez également inclure le point de terminaison de l'API dans la requête. Vous créez un fichier JSON avec les champs que vous souhaitez mettre à jour. N'incluez que les champs que vous souhaitez mettre à jour dans le fichier JSON et dans UPDATE_MASK.

L'exemple suivant montre comment mettre à jour votre cluster via l'API. Pour en savoir plus, y compris sur la liste des champs que vous pouvez mettre à jour, consultez la documentation de la méthode projects.locations.azureClusters.patch.

  1. Créez un fichier JSON nommé cluster_update.json contenant les champs que vous souhaitez mettre à jour.

    • Lorsque vous utilisez la fédération d'identité de charge de travail, le fichier JSON doit se présenter comme suit :
      {
        "description": "CLUSTER_DESCRIPTION",
        "controlPlane": {
          "version": "CLUSTER_VERSION",
          "vm_size": "VM_SIZE
        },
        "azureServicesAuthentication": {
          "tenantId": "TENANT_ID",
          "applicationId": "APPLICATION_ID"
        },
        "authorization": {
            "adminUsers": [
                {
                "username": USERNAME1,
                "username": USERNAME2,
                "username": USERNAME3
                }
            ]
        }
      }
      
    • Lorsque vous utilisez le client Azure, le fichier JSON doit se présenter comme suit :
      {
        "description": "CLUSTER_DESCRIPTION",
        "controlPlane": {
          "version": "CLUSTER_VERSION",
          "vm_size": "VM_SIZE
        },
        "azureClient": "CLIENT_NAME",
        "authorization": {
            "adminUsers": [
                {
                "username": USERNAME1,
                "username": USERNAME2,
                "username": USERNAME3
                }
            ]
        }
      }
      

    Remplacez les éléments suivants :

    • CLUSTER_VERSION : la nouvelle version de cluster compatible. Notez que vous devez passer par toutes les versions mineures lors de la mise à niveau de votre cluster.
    • CLUSTER_DESCRIPTION : description du nouveau cluster
    • USERNAME1, USERNAME2 et USERNAME3 : adresses e-mail des utilisateurs auxquels vous accordez des droits d'administrateur sur ce cluster. Les noms de ces champs remplaceront toute liste précédente des utilisateurs avec accès administrateur du cluster.
    • CLIENT_NAME : nom de votre AzureClient.
    • TENANT_ID: ID de locataire Azure
    • APPLICATION_ID : ID d'application Azure créé dans Créer une application Azure Active Directory
    • VM_SIZE : la nouvelle taille de VM
  2. Mettez à jour ces paramètres via l'API GKE multicloud avec la commande suivante :

    curl -d @cluster_update.json -X PATCH \
       ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/azureClusters/CLUSTER_NAME?update_mask=UPDATE_MASK
    

Remplacez les éléments suivants :

  • ENDPOINT (obligatoire) : votre point de terminaison de service Google Cloud
  • PROJECT_ID (obligatoire) : votre projet Google Cloud
  • GOOGLE_CLOUD_LOCATION (obligatoire) : région Google Cloud compatible qui gère votre cluster, par exemple us-west1
  • CLUSTER_NAME (obligatoire) : nom de votre cluster
  • UPDATE_MASK (obligatoire) : liste d'une ou de plusieurs des options suivantes, séparées par une virgule, indiquant les champs que vous souhaitez mettre à jour Dans cet exemple, spécifiez les éléments suivants.
    • controlPlane.version
    • description
    • authorization.admin_users
    • control_plane.vm_size
    • azure_client
    • azure_services_authentication.tenant_id
    • azure_services_authentication.application_id

Pour mettre à jour l'authentification AzureClient du cluster vers la fédération d'identité de charge de travail, ajoutez azure_client, azure_services_authentication.tenant_id et azure_services_authentication.application_id dans le champ update_mask.

Mettre à jour la configuration de Logging

Vous pouvez mettre à jour les paramètres de configuration Cloud Logging de votre cluster avec la CLI Google Cloud. Pour mettre à jour la configuration de journalisation, exécutez la commande suivante:

gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --logging=LOGGING_CONFIG \

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom de votre cluster.
  • GOOGLE_CLOUD_LOCATION : région Google Cloud compatible qui gère votre cluster, par exemple us-west1
  • LOGGING_CONFIG: [SYSTEM] ou [SYSTEM,WORKLOAD]

Étape suivante