Mettre à jour les paramètres de votre cluster AWS

Cette page explique comment mettre à jour les paramètres de votre cluster GKE sur AWS. 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.
  • Procéder à la rotation de vos clés de chiffrement.
  • Mettre à jour les groupes de sécurité du plan de contrôle du cluster.

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 aws clusters update et projects.locations.awsClusters.patch.

Prérequis

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

  • Pour mettre à jour les groupes de sécurité de votre cluster, le rôle de plan de contrôle de votre cluster doit disposer de l'autorisation ec2:ModifyNetworkInterfaceAttribute. Pour en savoir plus, consultez la section Créer le rôle de plan de contrôle.

  • En outre, pour mettre à jour les tags de votre cluster, le rôle API de votre cluster doit disposer des autorisations AWS suivantes:

    • autoscaling:CreateOrUpdateTags
    • autoscaling:DeleteTags
    • ec2:CreateTags
    • ec2:DescribeLaunchTemplates
    • ec2:DescribeSecurityGroupRules
    • ec2:DeleteTags
    • elasticloadbalancing:AddTags
    • elasticloadbalancing:RemoveTags

    Consultez la page Créer des rôles AWS IAM pour découvrir comment créer et ajouter des autorisations au rôle API de votre cluster.

Processus de mise à jour

Le processus de mise à jour d'un cluster par GKE sur AWS varie en fonction du type de mise à jour. Pour certaines modifications, GKE sur AWS peut mettre à jour un cluster sans redémarrer ni recréer de ressources (par exemple, en mettant à jour la description d'un cluster). GKE sur AWS effectue 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 version de Kubernetes. Pour ces mises à jour, GKE sur AWS effectue une "mise à jour progressive" comprenant les étapes suivantes:

  1. Choisit une instance de plan de contrôle à mettre à jour. GKE sur AWS met à jour les instances non opérationnelles, le cas échéant, avant les instances opérationnelles.
  2. Crée un modèle de lancement pour l'instance.
  3. Met à jour le modèle de lancement du groupe Auto Scaling.
  4. Supprimez l'instance. AWS recrée l'instance et l'instance démarre avec la nouvelle configuration.
  5. Effectue des vérifications d'état sur la nouvelle instance.
  6. 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 AWS place le cluster à l'état DEGRADED et arrête la mise à jour. Pour en savoir plus, consultez la section suivante.
  7. Supprime le modèle de lancement d'origine.

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

Après une mise à jour, GKE sur AWS effectue une vérification de l'état#39;é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 aws 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 Multi-Cloud GKE 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 Multi-Cloud. 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 de 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 la gcloud CLI, vous devez toujours inclure les champs CLUSTER_NAME et GOOGLE_CLOUD_LOCATION, qui indiquent à GKE sur AWS 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 aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION \
    --admin-users=USERNAME_LIST \
    --root-volume-iops=ROOT_VOLUME_IOPS \
    --root-volume-size=ROOT_VOLUME_SIZE \
    --root-volume-type=ROOT_VOLUME_TYPE \
    --security-group-ids=SECURITY_GROUP_IDS

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.
  • ROOT_VOLUME_IOPS: opérations maximales d'E/S du volume racine par seconde
  • ROOT_VOLUME_SIZE : taille du volume racine, en Go
  • ROOT_VOLUME_TYPE: type de volume EBS AWS du volume racine
  • SECURITY_GROUP_IDS : ID des groupes de sécurité AWS à ajouter aux instances du plan de contrôle du cluster.
  • SECURITY_GROUP_IDS : ID des groupes de sécurité AWS à ajouter aux instances du plan de contrôle du cluster.

API

Lorsque vous mettez à jour un cluster à l'aide de l'API Multi-Cloud GKE, vous devez toujours inclure les champs CLUSTER_NAME et GOOGLE_CLOUD_LOCATION dans la requête HTTP. Ces champs indiquent à GKE sur AWS 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.awsClusters.patch.

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

    {
        "controlPlane": {
           "version": "CLUSTER_VERSION",
        },
        "description": "CLUSTER_DESCRIPTION",
        "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.
  2. Mettez à jour ces paramètres via l'API GKE Multi-Cloud à l'aide de la commande suivante.

    curl -d @cluster_update.json -X PATCH \
       ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters/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

Mettre à jour les groupes de sécurité de votre cluster

Pour mettre à jour les groupes de sécurité de votre cluster, le rôle de plan de contrôle de votre cluster doit disposer de l'autorisation ec2:ModifyNetworkInterfaceAttribute. Pour en savoir plus, consultez la section Créer le rôle de plan de contrôle.

Vous pouvez utiliser la commande gcloud container aws clusters update pour ajouter des groupes de sécurité supplémentaires au plan de contrôle de votre cluster.

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --security-group-ids=SECURITY_GROUP_IDS

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
  • SECURITY_GROUP_IDS : ID des groupes de sécurité AWS à ajouter aux instances du plan de contrôle du cluster.

Supprimer les groupes de sécurité du cluster

Vous pouvez supprimer tous les groupes de sécurité de votre cluster sauf celui par défaut à l'aide de la Google Cloud CLI. Pour mettre à jour un cluster, exécutez :

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --clear-security-group-ids

Remplacez les éléments suivants :

Mettre à jour les informations de volume du cluster

Vous pouvez mettre à jour les volumes du plan de contrôle de votre cluster à l'aide de Google Cloud CLI. Pour mettre à jour les clés KMS des volumes, consultez la section Rotation des clés.

Pour mettre à jour la taille, le type ou les IOPS du volume, exécutez la commande suivante :

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --root-volume-iops=ROOT_VOLUME_IOPS
    --root-volume-size=ROOT_VOLUME_SIZE
    --root-volume-type=ROOT_VOLUME_TYPE

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
  • ROOT_VOLUME_IOPS : opérations d'E/S du volume racine par seconde
  • ROOT_VOLUME_SIZE : taille du volume racine, en Go
  • ROOT_VOLUME_TYPE : type de volume EBS AWS du volume racine

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 aws 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]

Étapes suivantes