Enregistrer un cluster sur Google Cloud dans votre parc

Cette page explique comment ajouter un cluster GKE situé dans Google Cloud à votre parc. Selon votre projet et votre cas d'utilisation, vous pouvez utiliser la console Google Cloud, 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 console Google Cloud ou de Terraform.

Avant de commencer

Assurez-vous de satisfaire les conditions préalables pour l'enregistrement d'un cluster.

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

Enregistrer votre cluster GKE sur Google Cloud

Comme vous l'avez vu dans les conditions préalables, nous vous recommandons d'enregistrer vos clusters de fédération d'identité de charge pour GKE en activant la fonctionnalité Workload Identity pour parc, ce qui permet aux applications de s'authentifier de manière cohérente auprès des API et services Google Cloud. Pour en savoir plus sur les avantages d'activer la fédération d'identité de charge de travail de parc pour GKE, consultez la page Utiliser la fédération d'identité de charge de travail de parc pour GKE. L'enregistrement de clusters à l'aide de l'une des options suivantes vous permet d'activer la fédération d'identité de charge de travail du parc pour GKE 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

Si vous avez activé GKE Enterprise, nous vous recommandons vivement d'enregistrer de nouveaux clusters dans un parc lors de leur création. En effet, ces clusters "nés dans le parc" sont créés avec les paramètres par défaut que vous avez choisis au niveau du parc pour un certain nombre de fonctionnalités d'entreprise, et avec les journaux et les métriques recommandés déjà activés. Pour en savoir plus à ce sujet, consultez les guides suivants :

Si vous n'avez pas activé GKE Enterprise, vous pouvez quand même enregistrer des clusters lors de leur création en suivant ces instructions, mais vous n'obtiendrez aucune configuration par défaut au niveau du parc.

Console

  1. Dans la console Google Cloud, 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 console Google Cloud.

  3. Dans la section Enregistrement des parcs, 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 autres sections.

  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 gcloud CLI version 450.0.0 ou ultérieure.

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

  • Pour créer et enregistrer un 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 choisi, la commande renvoie une erreur.

  • Pour créer et enregistrer un cluster GKE standard avec la fédération d'identité de charge de travail pour 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 choisi, la commande renvoie une erreur.
    • PROJECT_ID: ID du projet Google Cloud qui possédera votre nouveau cluster.

    Si vous créez un cluster standard, nous vous recommandons de créer le cluster avec la fédération d'identité de charge de travail pour GKE activée, car cela active la fédération d'identité de charge de travail du parc pour votre cluster enregistré. Toutefois, vous pouvez omettre l'option --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.

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 projet Google Cloud pour être propriétaire du cluster si vous n'avez pas configuré de projet par défaut.

Découvrez comment créer différents types de clusters GKE dans la documentation GKE.

Terraform

Vous pouvez créer et enregistrer des clusters GKE avec Terraform à l'aide du fournisseur google-beta. 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 cluster, ajoutez les blocs suivants dans votre configuration Terraform.

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

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

    Remplacez VERSION par la version 5.6.0 ou ultérieure.

  2. Créez et enregistrez un nouveau cluster:

    resource "google_container_cluster" "TF_CLUSTER_RESOURCE_NAME" {
      provider = google-beta
      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 projet Google Cloud dans lequel vous créez et enregistrez le cluster. Si cette option n'est pas définie, le cluster ne sera pas enregistré dans un parc. Spécifiez un ID de projet différent 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 console Google Cloud). Vous pouvez également choisir d'enregistrer tout ou partie de vos clusters existants lors de la mise à niveau vers GKE Enterprise.

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 la fédération d'identité de charge de travail pour GKE lorsque vous les enregistrez depuis la console Google Cloud.

  1. Dans la console Google Cloud, 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 gcloud CLI version 450.0.0 ou ultérieure.

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

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

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

    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 le cluster dans un parc d'un autre projet, utilisez l'option --fleet-project, comme indiqué ci-dessous. Assurez-vous d'avoir configuré les autorisations nécessaires pour l'enregistrement multiprojet avant d'exécuter cette commande.

    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 ou le numéro du projet hôte de parc de votre choix.

Terraform

Vous pouvez enregistrer des clusters GKE avec Terraform à l'aide du fournisseur google-beta. 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'ID du projet Google Cloud 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 sur 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 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. Dans ce cas, 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 Google Cloud pour le cluster GKE. 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 la fédération d'identité de charge de travail pour GKE en ajoutant ce qui suit 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