Enregistrer un cluster sur Google Cloud dans votre parc

Cette page explique comment ajouter un cluster GKE sur Google Cloud votre parc. Selon votre projet et votre cas d'utilisation, vous pouvez utiliser la Google Cloud console, Terraform, Config Connector ou Google Cloud CLI pour l'enregistrement. Vous pouvez également créer et enregistrer un cluster en une seule étape à l'aide de Google Cloud CLI, de la Google Cloud console ou de Terraform.

Avant de commencer

Assurez-vous de satisfaire les conditions préalables pour l'enregistrement d'un cluster. Nous vous recommandons également de consulter les restrictions générales concernant l'enregistrement de clusters dans Planifier les ressources du parc.

En fonction de votre cas d'utilisation, les enregistrements de cluster GKE peuvent également nécessiter les éléments suivants : Google Cloud

Enregistrer votre cluster GKE sur Google Cloud

Comme vous l'avez vu dans les conditions préalables, nous vous recommandons d'enregistrer vos clusters GKE avec Workload Identity Federation for GKE activée, ce qui permet aux applications de s'authentifier de manière cohérente auprès des Google Cloud API et services. Pour en savoir plus sur les avantages d'activer la fédération d'identité de charge de travail pour GKE pour parc, consultez la section Utiliser la fédération d'identité de charge de travail pour GKE pour parc. L'enregistrement de clusters à l'aide de l'une des options suivantes vous permet d'activer Workload Identity Federation pour GKE pour parc si nécessaire.

Vous pouvez choisir d'enregistrer un nouveau cluster lors de sa création ou d'enregistrer un cluster existant.

Enregistrer un nouveau cluster

Vous pouvez enregistrer des clusters lors de leur création en suivant les instructions ci-dessous.

Console

  1. Dans la Google Cloud console, accédez à la page de création de cluster appropriée.

  2. Suivez les instructions de la documentation GKE pour terminer les sections permettant de créer un cluster Autopilot, régional standard ou zonal standard depuis la Google Cloud console.

  3. Dans la section Enregistrement du parc, cochez la case Enregistrer dans un parc. Par défaut, le nom du parc est basé sur l'ID de votre projet.

  4. Remplissez les sections restantes.

  5. Si vous avez choisi de créer un cluster Standard et que vous souhaitez que le cluster enregistré utilise la fédération d'identité de charge de travail du parc (recommandé), cliquez sur Sécurité dans le volet de navigation et assurez-vous que Activer la fédération d'identité de charge de travail pour GKE est sélectionnée. Cette fonctionnalité est activée par défaut sur les clusters Autopilot.

  6. Lorsque vous avez terminé d'examiner les détails du cluster, cliquez sur Créer pour créer et enregistrer le cluster dans un parc.

gcloud

Ces commandes nécessitent la gcloud CLI version 450.0.0 ou ultérieure.

L'enregistrement d'un cluster à l'aide de Google Cloud CLI lui attribue par défaut un emplacement d'appartenance régional.

  • Pour créer et enregistrer un nouveau cluster GKE Autopilot, exécutez la commande suivante :

    gcloud container clusters create-auto CLUSTER_NAME --enable-fleet
    

    Remplacez CLUSTER_NAME par un nom unique pour le cluster que vous créez. Ce nom sera également le nom d'appartenance du cluster. Si un cluster portant ce nom existe déjà dans le parc que vous avez choisi, la commande renvoie une erreur.

  • Pour créer et enregistrer un nouveau cluster GKE Autopilot en tant que cluster léger, exécutez la commande suivante :

    gcloud container clusters create-auto CLUSTER_NAME --enable-fleet --membership-type=LIGHTWEIGHT
    
  • Pour créer et enregistrer un cluster GKE Standard avec Workload Identity Federation for GKE activée, exécutez la commande suivante :

    gcloud container clusters create CLUSTER_NAME --enable-fleet \
    --workload-pool=PROJECT_ID.svc.id.goog
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom unique du cluster que vous créez. Ce nom sera également le nom d'appartenance du cluster. Si un cluster portant ce nom existe déjà dans le parc que vous avez choisi, la commande renvoie une erreur.
    • PROJECT_ID : ID du Google Cloud projet qui possédera votre nouveau cluster.

    Si vous créez un cluster Standard, nous vous recommandons de le créer avec Workload Identity Federation for GKE activée, car cela active la fédération d'identité de charge de travail pour parc pour votre cluster enregistré. Toutefois, vous pouvez omettre le flag --workload-pool si vous ne souhaitez pas utiliser cette fonctionnalité. La fédération d'identité de charge de travail pour GKE est activée par défaut sur les clusters Autopilot.

  • Pour créer et enregistrer un nouveau cluster GKE Standard en tant que cluster léger, exécutez la commande suivante :

    gcloud container clusters create CLUSTER_NAME --enable-fleet --membership-type=LIGHTWEIGHT
    

En fonction du cluster que vous souhaitez créer, vous pouvez également spécifier l'une des autres options de création d'un cluster zonal standard, régional standard ou Autopilot. Vous devrez peut-être également spécifier une zone Compute Engine si vous n'avez pas configuré de zone par défaut pour Google Cloud CLI, et un Google Cloud projet pour posséder le cluster si vous n'avez pas configuré de projet par défaut.

Pour en savoir plus sur la création de différents types de clusters GKE, consultez la documentation GKE.

Terraform

Vous pouvez créer et enregistrer des clusters GKE avec Terraform à l'aide du google fournisseur. Vous trouverez une documentation de référence complète sur la ressource google_container_cluster utilisée pour gérer un cluster GKE dans le registre Terraform.

Avant de suivre ces instructions, assurez-vous d'avoir créé un compte de service pour Terraform, comme décrit dans les conditions préalables.

Pour créer et enregistrer un nouveau cluster, ajoutez les blocs suivants dans votre configuration Terraform.

  1. Spécifiez le fournisseur google en tant que fournisseur requis :

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = "VERSION"
        }
      }
    }
    

    Remplacez VERSION par 5.6.0 ou une version ultérieure.

  2. Créez et enregistrez un nouveau cluster:

    resource "google_container_cluster" "TF_CLUSTER_RESOURCE_NAME" {
      provider = google
      name               = "CLUSTER_NAME"
      location           = "ZONE"
      initial_node_count = 1
      fleet {
        project = "FLEET_HOST_PROJECT"
      }
    }
    

    Remplacez les éléments suivants :

    • TF_CLUSTER_RESOURCE_NAME : nom unique de la nouvelle ressource google_container_cluster que vous créez.
    • CLUSTER_NAME : nom unique du nouveau cluster GKE que vous souhaitez créer et enregistrer.
    • ZONE : zone de votre ressource de cluster GKE. Exemple : us-central1-a.
    • FLEET_HOST_PROJECT : ID du Google Cloud projet dans lequel vous créez et enregistrez le cluster. Si cette option n'est pas définie, le cluster n'est pas enregistré dans un parc. Spécifiez un autre ID de projet si vous souhaitez enregistrer le cluster dans un parc d'un autre projet.

Enregistrer un cluster existant

Utilisez l'une des options suivantes pour enregistrer des clusters existants, dans le parc de leur propre projet ou dans un parc d'un autre projet (toutes les options, à l'exception de la Google Cloud console).

Pour enregistrer un cluster GKE existant :

Console

Si vous souhaitez que votre cluster utilise la fédération d'identité de charge de travail de parc (recommandé), assurez-vous que la fédération d'identité de charge de travail pour GKE est activée sur le cluster avant de suivre ces instructions. La fédération d'identité de charge de travail pour GKE est activée par défaut sur les clusters Autopilot. La fédération d'identité de charge de travail de parc est automatiquement activée sur les clusters dotés de Workload Identity Federation for GKE lorsque vous les enregistrez depuis la Google Cloud console.

  1. Dans la Google Cloud console, accédez à la page Clusters GKE.

    Accédez à la page Clusters GKE.

  2. Cliquez sur Enregistrer à côté du cluster non enregistré que vous souhaitez ajouter à votre parc.

  3. Cliquez à nouveau sur Enregistrer dans la boîte de dialogue de confirmation qui s'affiche.

gcloud

Ces commandes nécessitent la gcloud CLI version 450.0.0 ou ultérieure.

L'enregistrement d'un cluster à l'aide de Google Cloud CLI lui attribue par défaut un emplacement d'appartenance régional.

Ces deux commandes activent la fédération d'identité de charge de travail de parc pour le cluster si Workload Identity Federation for GKE est déjà activée pour le cluster.

  • Pour enregistrer un cluster GKE existant dans le parc de son projet, exécutez la commande suivante : Google Cloud

    gcloud container clusters update CLUSTER_NAME --enable-fleet
    

    Remplacez CLUSTER_NAME par le nom du cluster que vous enregistrez. Ce nom sera également le nom d'appartenance du cluster.

  • Pour enregistrer un cluster GKE existant dans le parc de son projet en tant que cluster léger, exécutez la commande suivante : Google Cloud

    gcloud container clusters update CLUSTER_NAME --enable-fleet --membership-type=LIGHTWEIGHT
    
  • Pour enregistrer le cluster dans un parc d'un autre projet, utilisez le flag --fleet-project, comme indiqué dans la commande suivante. Avant d'exécuter cette commande, assurez-vous d'avoir configuré les autorisations nécessaires pour l'enregistrement multiprojets.

    gcloud container clusters update CLUSTER_NAME --fleet-project=PROJECT_ID_OR_NUMBER
    
    • Remplacez CLUSTER_NAME par le nom du cluster que vous enregistrez. Ce nom sera également le nom d'appartenance du cluster.
    • Remplacez PROJECT_ID_OR_NUMBER par l'ID du projet ou le numéro de projet du projet hôte de parc que vous avez choisi.
  • Pour enregistrer le cluster dans un parc d'un autre projet en tant que cluster léger, utilisez le flag --fleet-project, comme indiqué dans la commande suivante. Avant d'exécuter cette commande, assurez-vous d'avoir configuré les autorisations nécessaires pour l'enregistrement multiprojets.

    gcloud container clusters update CLUSTER_NAME --fleet-project=PROJECT_ID_OR_NUMBER /
    --membership-type=LIGHTWEIGHT
    
  • Pour convertir un cluster GKE existant sur Google Cloud d'une appartenance légère à une appartenance standard, utilisez la commande suivante :

    gcloud container clusters update CLUSTER_NAME --unset-membership-type
    

Terraform

Vous pouvez enregistrer des clusters GKE avec Terraform à l'aide du fournisseur google. Vous trouverez une documentation de référence complète sur la ressource google_container_cluster utilisée pour gérer un cluster GKE dans le registre Terraform.

Avant de suivre ces instructions, assurez-vous d'avoir créé un compte de service pour Terraform, comme décrit dans les conditions préalables.

Enregistrer un cluster existant

Pour enregistrer un cluster existant, ajoutez le bloc suivant à la configuration de la ressource google_container_cluster de votre cluster :

fleet {
        project = "FLEET_HOST_PROJECT"
      }

Remplacez FLEET_HOST_PROJECT par l' Google Cloud ID du projet auquel appartient votre cluster, ou un ID de projet différent si vous souhaitez enregistrer le cluster dans un parc d'un autre projet.

Activer la fédération d'identité de charge de travail pour GKE sur un cluster enregistré

Vous pouvez utiliser Terraform pour activer la fédération d'identité de charge de travail pour GKE pour un cluster.

Pour activer la fédération d'identité de charge de travail pour GKE sur votre nouveau cluster ou sur un cluster existant, ajoutez le bloc suivant dans la configuration de la ressource google_container_cluster du cluster concerné :

  workload_identity_config {
    workload_pool = "PROJECT_ID.svc.id.goog"
  }
  ```

 Replace <code><var>PROJECT_ID</var></code> with the Google Cloud project ID for your Terraform resources.

Config Connector

Si le module complémentaire Config Connector est installé, vous pouvez utiliser Config Connector pour enregistrer des clusters GKE. Assurez-vous de disposer d'une version de Config Connector supérieure à 1.47.0 et d'avoir créé un compte de service comme décrit dans les conditions préalables.

Vous trouverez une référence complète pour la ressource GKEHubMembership dans la documentation de référence sur Config Connector.

Enregistrer un cluster GKE

Pour enregistrer le cluster, commencez par indiquer où vous souhaitez créer vos ressources, en suivant les instructions du guide Config Connector. Créez ensuite un fichier YAML pour enregistrer et (éventuellement) créer un cluster, comme suit :

Créer et enregistrer un cluster GKE

  1. Créez un cluster GKE, comme dans l'exemple simple suivant :

    apiVersion: container.cnrm.cloud.google.com/v1beta1
    kind: ContainerCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      location: LOCATION
      initialNodeCount: 1
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom que vous avez choisi pour représenter de manière unique le cluster que vous avez créé avec Config Connector.
    • LOCATION : zone ou région que vous avez choisie pour provisionner la ressource de cluster GKE. Exemple : us-central1-a.

    Pour obtenir la liste complète des options lors de la création d'un cluster GKE avec Config Connector, consultez la documentation de Config Connector.

  2. Enregistrez une adhésion pour le cluster GKE.

    apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
    kind: GKEHubMembership
    metadata:
      name: MEMBERSHIP_NAME
    spec:
      location: MEMBERSHIP_LOCATION
      endpoint:
        gkeCluster:
          resourceRef:
            name: CLUSTER_NAME
    

    Remplacez l'élément suivant :

    • MEMBERSHIP_NAME : nom d'appartenance que vous avez choisi pour représenter de manière unique le cluster enregistré dans un parc.
    • MEMBERSHIP_LOCATION: emplacement du service de parc que vous souhaitez voir gérer l'appartenance de votre cluster. Il peut s'agir de l'emplacement propre du cluster (recommandé) ou de global. Pour en savoir plus, consultez Emplacement des appartenances à un parc. Vous ne pouvez pas spécifier un emplacement différent de celui du cluster. Si vous le faites, l'enregistrement échoue.
    • CLUSTER_NAME : nom que vous avez choisi pour représenter de manière unique le cluster que vous avez créé avec Config Connector.

Enregistrer le cluster dans un autre projet

Ajoutez les éléments suivants au champ metadata de la ressource GKEHubMembership pour enregistrer un cluster dans le parc d'un autre projet.

   metadata:
     annotations:
       cnrm.cloud.google.com/project-id: FLEET_PROJECT_ID

Remplacez les éléments suivants :

  • FLEET_PROJECT_ID : projet hôte du parc que vous avez choisi d'enregistrer pour le cluster GKE.

Enregistrer un cluster existant

Utilisez la configuration suivante si vous souhaitez enregistrer un cluster existant, quelle que soit son mode de création. Dans ce cas, vous devez spécifier le nom complet de la ressource du cluster afin que Config Connector puisse la trouver. Remplacez le champ resourceRef de la ressource GKEHubMembership par :

   resourceRef:
     external: //container.googleapis.com/CLUSTER_RESOURCE_NAME

Remplacez les éléments suivants :

  • CLUSTER_RESOURCE_NAME : nom de la ressource pour le cluster GKE. Google Cloud Exemple : projects/my-project/zones/us-west1-a/clusters/my-cluster.

Si le cluster a été créé avec Config Connector, vous n'avez pas besoin de spécifier le nom complet du cluster.

Activer la fédération d'identité de charge de travail pour GKE sur un cluster enregistré

L'activation de la fédération d'identité de charge de travail pour GKE utilise la même configuration que l'enregistrement d'un cluster, avec en plus les étapes suivantes.

  1. Activez Workload Identity Federation for GKE en ajoutant les éléments suivants dans le champ spec de la ressource ContainerCluster. Vous devez effectuer cette opération pour les clusters nouveaux et existants.

    spec:
      workloadIdentityConfig:
        workloadPool: PROJECT_ID.svc.id.goog
    

    Remplacez l'élément suivant :

  2. Activez la fédération d'identité de charge de travail de parc en ajoutant les éléments suivants dans le champ spec du bloc de ressources GKEHubMembership.

    spec:
      authority:
        issuer: https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : projet par défaut que vous avez choisi via l'annotation de l'espace de noms pour créer la ressource de cluster GKE.
    • LOCATION : zone ou région que vous avez choisie pour provisionner la ressource de cluster GKE. Exemple : us-central1-a.
    • CLUSTER_NAME : nom que vous avez choisi pour représenter de manière unique le cluster que vous avez créé.

Dépannage

Si vous rencontrez des problèmes lors de cette configuration, consultez notre guide de dépannage.

Étape suivante