Gestion des clusters

Ce document vous explique comment gérer vos clusters dans Google Kubernetes Engine (GKE). Pour en savoir plus sur le fonctionnement des clusters, consultez la page Cluster architecture.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser la Google Cloud CLI pour cette tâche, installez et initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.

Afficher vos clusters

gcloud

  • Pour afficher un cluster spécifique, exécutez la commande suivante :

    gcloud container clusters describe CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

    Remplacez l'élément suivant :

    • CLUSTER_NAME : nom du cluster
    • CONTROL_PLANE_LOCATION : emplacement Compute Engine du plan de contrôle de votre cluster Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.
  • Pour répertorier tous les clusters d'un projet dans n'importe quelle région ou zone, exécutez la commande suivante :

    gcloud container clusters list
    
  • Pour répertorier les clusters situés dans la région ou la zone spécifique, exécutez la commande suivante :

    gcloud container clusters list \
        --location=CONTROL_PLANE_LOCATION
    

Console

Pour afficher vos clusters, accédez à la page Google Kubernetes Engine dans la Cloud de Confiance console.

Accéder à Google Kubernetes Engine

Pour obtenir plus d'informations sur un cluster, sélectionnez-le dans la liste.

Définir un cluster par défaut pour kubectl

Si vous disposez de plusieurs clusters, vous pouvez définir un cluster par défaut pour l'outil de ligne de commande kubectl.

Pour en savoir plus, consultez la section Définir un cluster par défaut pour les commandes kubectl.

Définir un cluster par défaut pour gcloud

Pour définir un cluster par défaut pour les commandes gcloud, exécutez la commande suivante :

gcloud config set container/cluster CLUSTER_NAME

Remplacez CLUSTER_NAME par le nom de votre cluster.

Mettre à niveau les clusters

Par défaut, GKE met automatiquement à niveau vos clusters. Toutefois, vous pouvez choisir de mettre à niveau vos clusters standards vous-même. Pour en savoir plus, consultez la section Mettre à niveau un cluster manuellement.

Pour obtenir des conseils sur la mise à niveau des clusters, consultez la page Bonnes pratiques de mise à niveau des clusters.

Ajouter ou supprimer des zones dans un cluster standard

Les sections suivantes expliquent comment ajouter ou supprimer des zones dans un cluster. Toutes les zones doivent se trouver dans la région du cluster.

Modifier des zones pour les clusters zonaux

Pour les clusters zonaux existants, vous pouvez ajouter ou supprimer des zones.

gcloud

Pour ajouter ou supprimer des zones pour un cluster zonal, exécutez la commande gcloud container clusters update :

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Remplacez l'élément suivant :

  • CLUSTER_NAME : nom choisi pour le cluster.
  • CONTROL_PLANE_LOCATION : zone Compute Engine du plan de contrôle de votre cluster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...] : the zones dans lesquelles les nœuds sont créés. Vous pouvez spécifier autant de zones que nécessaire pour votre cluster. Toutes les zones doivent se trouver dans la même région que le plan de contrôle du cluster, spécifié par l'option --location. Pour les clusters zonaux, --node-locations doit contenir la zone principale du cluster.

Prenons l'exemple d'un cluster example-cluster qui s'exécute dans la zone us-central1-a. Pour ajouter deux zones supplémentaires au cluster, exécutez la commande suivante :

gcloud container clusters update example-cluster \
  --location us-central1-a
  --node-locations us-central1-a,us-central1-b,us-central1-c

Autre exemple, example-cluster s'exécute dans us-central1-a, us-central1-b et us-central1-c. Si vous souhaitez uniquement que le cluster s'exécute dans us-central1-a et us-central1-b, exécutez la commande suivante :

gcloud container clusters update example-cluster \
  --location us-central1-a \
  --node-locations us-central1-a,us-central1-b

Console

Pour ajouter ou supprimer des zones dans un cluster existant, procédez comme suit :

  1. Accédez à la page Google Kubernetes Engine dans la Cloud de Confiance console.

    Accéder à Google Kubernetes Engine

  2. À côté du cluster que vous souhaitez modifier, cliquez sur Actions, puis sur Modifier.

  3. Sous l'onglet "Détails", dans le champ Zones de nœud par défaut, cliquez sur Modifier les pools de nœuds.

  4. Sélectionnez les zones souhaitées et enregistrez vos modifications.

Modifier des zones pour les clusters régionaux

Actuellement, il est uniquement possible de modifier les zones des clusters régionaux existants à l'aide de la commande gcloud.

Pour ajouter ou supprimer des zones pour un cluster régional, exécutez la commande gcloud container clusters update avec l'option --node-locations :

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Remplacez l'élément suivant :

  • CLUSTER_NAME : nom du cluster.
  • CONTROL_PLANE_LOCATION : région Compute Engine du plan de contrôle de votre cluster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: région du plan de contrôle des zones dans laquelle les nœuds sont créés. Les zones doivent se trouver dans le même CONTROL_PLANE_LOCATION que le(s) plan(s) de contrôle du cluster, spécifié(s) par l'option --location.

Prenons l'exemple d'un cluster example-cluster qui s'exécute dans les zones us-central1-a et us-central1-b. Pour ajouter us-central1-c, exécutez la commande suivante :

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b,us-central1-c

Autre exemple, example-cluster s'exécute dans us-central1-a, us-central1-b et us-central1-c. Si vous souhaitez uniquement que le cluster s'exécute dans us-central1-a et us-central1-b, exécutez la commande suivante :

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b

Redimensionner des clusters

Vous pouvez redimensionner un cluster standard pour augmenter ou diminuer le nombre de nœuds de ce cluster. Par exemple, si vous souhaitez empêcher votre cluster de consommer des ressources sans le supprimer, vous pouvez réduire le nombre de nœuds à zéro. Pour en savoir plus sur le redimensionnement, consultez la section Redimensionner un cluster.

Le dimensionnement des clusters Autopilot est automatiquement effectué en fonction des spécifications de votre pod. Il n'est donc pas nécessaire de redimensionner votre cluster. Par exemple, si vous modifiez le nombre d'instances dupliquées de votre pod ou les ressources demandées, le cluster est agrandi ou réduit de façon appropriée.

Si vous souhaitez un moyen plus efficace d'optimiser vos clusters, vous pouvez également utiliser l'autoscaling des pods verticaux (VPA). L'autoscaler peut recommander des valeurs pour les demandes et limites de ressources mémoire et de processeur, ou il peut mettre à jour automatiquement les valeurs.

Supprimer un cluster

Si nécessaire, vous pouvez supprimer un cluster. Pour en savoir plus, consultez la section Supprimer un cluster.

Empêcher la suppression de clusters à l'aide de stratégies de refus

Vous pouvez utiliser des stratégies de refus IAM pour empêcher la suppression de certains clusters critiques, quel que soit le compte principal qui tente de les supprimer. Pour cibler des clusters spécifiques dans une stratégie de refus, ajoutez un tag à ces clusters. Ensuite, utilisez une condition de refus pour appliquer la stratégie de refus uniquement aux clusters qui comportent ce tag.

Pour protéger un cluster spécifique contre la suppression, procédez comme suit :

  1. Créez et définissez une clé de tag pour identifier les clusters protégés. Par exemple, vous pouvez créer une clé de tag nommée do_not_delete.

  2. Associez la clé de tag à votre cluster.

  3. Créez une stratégie de refus IAM en sélectionnant l'une des options suivantes :

    Console

    1. Dans la Cloud de Confiance console, accédez à l'onglet Refuser de la page IAM.

      Accéder à Refus IAM

    2. Cliquez sur Créer une stratégie de refus. La page Créer une stratégie de refus s'ouvre.

    3. Dans le champ ID , spécifiez un ID unique et immuable pour votre stratégie de refus.

    4. Dans la section Nouvelle règle de refus, procédez comme suit :

      1. Dans le champ Comptes principaux refusés, spécifiez principalSet://goog/public:all, qui couvre tous les comptes principaux.

      2. Dans la section Autorisations refusées, dans la liste déroulante Autorisation 1, recherchez et sélectionnez l'autorisation container.googleapis.com/clusters.delete.

      3. Cliquez sur Ajouter une condition de refus. Le volet Ajouter une condition de refus s'ouvre.

      4. Spécifiez un titre informatif pour la condition, par exemple Cluster has the do_not_delete tag.

      5. Dans l'onglet Générateur de conditions, dans la liste déroulante Type de condition 1, sélectionnez Tag.

      6. Dans la liste déroulante Opérateur, sélectionnez A la clé.

      7. Dans la liste déroulante Chemin d'accès à la clé, sélectionnez la clé de tag que vous avez appliquée au cluster, par exemple do_not_delete.

      8. Cliquez sur Enregistrer.

    5. Cliquez sur Créer.

    gcloud

    1. Créez un fichier JSON contenant la stratégie de refus suivante :

      {
        "displayName": "Prevent cluster deletion based on tag",
        "rules": [
          {
            "description": "Prevent cluster deletion based on tag",
            "deniedPrincipals": [
              "principalSet://goog/public:all"
            ],
            "deniedPermissions": [
              "container.googleapis.com/clusters.delete"
            ],
            "denialCondition": {
              "title": "Cluster has the do_not_delete tag",
              "expression": "resource.hasTagKey('TAG_KEY_NAME')
            }
          }
        ]
      }
      

      Remplacez TAG_KEY_NAME par le chemin d'accès à la clé de tag que vous avez créée.

    2. Créez la stratégie de refus à l'aide de la gcloud iam policies create commande :

      gcloud iam policies create POLICY_ID \
          --attachment-point=ATTACHMENT_POINT \
          --kind=denypolicies --policy-file=POLICY_FILE
      

      Remplacez les éléments suivants :

      • POLICY_ID : ID de votre stratégie de refus.
      • ATTACHMENT_POINT: organisation, dossier ou projet auquel associer la stratégie de refus. Par exemple, si vous associez la stratégie de refus à un dossier, elle s'applique aux clusters de n'importe quel projet de ce dossier. Pour en savoir plus, consultez la section Point d'association.
      • POLICY_FILE: chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.

Une fois la stratégie de refus créée, personne ne peut supprimer un cluster qui possède la clé de tag spécifiée dans la condition de refus. Toute tentative de suppression du cluster échoue et un message d'erreur Permission denied s'affiche. Pour autoriser la suppression du cluster, vous devez dissocier cette clé de tag du cluster.

Ajouter des clusters à un parc

Si votre organisation utilise plusieurs clusters, vous pouvez simplifier la gestion multicluster en ajoutant les clusters à un parc , qui est un regroupement logique de clusters Kubernetes. La création d'un parc aide votre organisation à faire passer la gestion des clusters individuels à des groupes entiers de clusters, et vous permet d'utiliser des fonctionnalités spécifiques aux parcs comme Multi Cluster Ingress, Config Sync, et Policy Controller.

Vous pouvez ajouter des clusters GKE à un parc à l'aide de la Cloud de Confiance console, de gcloud CLI, mais aussi de manière déclarative à l'aide de Terraform ou de Config Connector.

Pour en savoir plus sur le fonctionnement des parcs, consultez la page Gestion des parcs et découvrez comment créer des parcs dans la section Créer des parcs pour simplifier la gestion multicluster.

Étape suivante