Prérequis d'ordre général

Comme vous l'avez appris dans la présentation de la création de parcs, les clusters GKE sur VMware, clusters GKE sur Bare Metal et clusters multicloud (sur AWS et Azure) sont automatiquement enregistrés dans l'ensemble de vos projets au moment de la création du cluster. Toutefois, les clusters GKE sur Google Cloud et les clusters Kubernetes tiers (clusters associés) doivent être enregistrés manuellement pour rejoindre votre parc. Vous trouverez plus de détails sur les différentes options d'enregistrement dans la présentation de création de parcs.

Cette page décrit les conditions préalables à l'enregistrement manuel d'un cluster Kubernetes sur un parc Google Cloud. Des exigences distinctes spécifiques s'appliquent également aux clusters GKE sur Google Cloud et aux clusters associés. Une fois ce guide terminé, suivez les instructions correspondant au type de cluster que vous souhaitez enregistrer.

Installer les outils de ligne de commande

Vérifiez que les outils de ligne de commande suivants sont installés. Si vous utilisez Cloud Shell comme environnement shell pour interagir avec Google Cloud, ces outils sont installés pour vous.

Installer Google Cloud CLI

Google Cloud CLI est l'interface de ligne de commande (CLI) de Google Cloud. Vous pouvez enregistrer des clusters à l'aide de Google Cloud CLI ou, en fonction de votre type de cluster, à l'aide d'autres outils tels que Terraform ou la console Google Cloud. Cependant, même si vous ne l'utilisez pas pour l'enregistrement du cluster, gcloud est requis ou utile pour de nombreuses autres étapes de configuration décrites sur cette page.

  1. Si vous ne l'avez pas déjà fait, installez la Google Cloud CLI en suivant les instructions d'installation. Nous vous recommandons d'utiliser la version la plus récente de Google Cloud CLI. Vous devez disposer de la version 361.0.0 ou ultérieure pour enregistrer des clusters, et de la version 423.0.0 ou ultérieure si vous souhaitez utiliser les commandes d'enregistrement non héritées pour GKE, avec le composant alpha ou bêta installé.

  2. Exécutez la commande suivante pour vous connecter à Google Cloud :

    gcloud auth login
  3. (Facultatif) Si vous envisagez d'essayer les fonctionnalités alpha ou bêta, assurez-vous d'avoir installé le composant gcloud beta:

     gcloud components install beta 

Installez kubectl.

Bien que kubectl ne soit pas requis pour enregistrer un cluster, il peut être nécessaire d'accorder les autorisations RBAC (contrôle des accès basé sur les rôles) à l'utilisateur qui enregistre le cluster s'il n'en est pas le propriétaire, ainsi que pour la configuration spécifique à d'autres plates-formes. La version de kubectl doit être antérieure à la version minimale requise de Kubernetes de Google Kubernetes Engine (GKE).

Nous vous recommandons d'installer kubectl avec Google Cloud CLI.

Pour vérifier la version de kubectl, procédez comme suit :

kubectl version

La version du client est indiquée par gitVersion dans la sortie.

Pour installer kubectl, procédez comme suit :

gcloud components install kubectl

Activer les API

Vous devez activer les API suivantes dans votre projet hôte de parc :

  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com, également appelée API Fleet. Il s'agit du service Google Cloud qui gère l'enregistrement du cluster et l'appartenance au parc.
  • cloudresourcemanager.googleapis.com

Les pods du cluster que vous souhaitez enregistrer doivent pouvoir atteindre les adresses googleapis.com et gkeconnect.googleapis.com, directement ou à l'aide d'un serveur proxy configuré.

Si vous souhaitez activer Workload Identity pour parc pour l'enregistrement, vous devez également activer l'élément suivant :

  • iam.googleapis.com

Les propriétaires ne faisant pas partie du projet doivent disposer de l'autorisation serviceusage.services.enable pour pouvoir activer les API.

gcloud

Pour activer ces API, exécutez la commande suivante :

gcloud services enable \
   --project=FLEET_HOST_PROJECT_ID \
   container.googleapis.com \
   gkeconnect.googleapis.com \
   gkehub.googleapis.com \
   cloudresourcemanager.googleapis.com \
   iam.googleapis.com

où :

Si vous ne souhaitez pas activer Workload Identity pour parc, vous pouvez omettre iam.googleapis.com.

Pour répertorier les API que vous avez déjà activées dans vos projets, suivez les instructions de la section Répertorier les services dans la documentation Service Usage.

Accorder des autorisations d'accès

Assurez-vous de disposer des autorisations d'accès appropriées pour enregistrer un cluster. L'enregistrement du cluster nécessite à la fois l'autorisation d'enregistrer le cluster dans un parc et des autorisations d'administrateur sur le cluster lui-même.

Accorder des autorisations d'enregistrement de cluster

Pour enregistrer un cluster, vous devez disposer d'autorisations IAM dans le projet hôte de votre parc. Si roles/owner se trouve dans votre projet hôte de parc, ces autorisations sont attribuées automatiquement et vous disposez de toutes les autorisations d'accès nécessaires pour effectuer toutes les tâches d'enregistrement.

Si vous ne disposez pas de roles/owner dans votre projet, vous devez détenir des rôles IAM spécifiques avant de pouvoir connecter des clusters à Google.

  • Pour enregistrer un cluster avec Workload Identity pour parc pour l'authentification auprès de Google, il vous suffit de disposer du rôle IAM suivant :

    • roles/gkehub.admin
  • Certaines options d'enregistrement en dehors de Google Cloud nécessitent la configuration d'un compte de service que le cluster utilisera pour s'authentifier auprès de Google au lieu de Workload Identity. Pour enregistrer le cluster et gérer ce compte de service, vous devez disposer de l'ensemble de rôles suivant :

    • roles/gkehub.admin
    • roles/iam.serviceAccountAdmin
    • roles/iam.serviceAccountKeyAdmin
    • roles/resourcemanager.projectIamAdmin

Pour obtenir la liste détaillée des autorisations incluses dans les rôles gkehub, consultez la section Rôles IAM.

gcloud

Pour attribuer un rôle IAM à un utilisateur, exécutez la commande suivante :

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
   --member user:GCP_EMAIL_ADDRESS \
   --role=ROLE

où :

  • FLEET_HOST_PROJECT_ID est l'ID du projet Google Cloud dans lequel vous souhaitez enregistrer les clusters. Découvrez comment identifier cette valeur.
  • GCP_EMAIL_ADDRESS est le compte utilisé par l'utilisateur pour se connecter à Google Cloud.
  • ROLE est le rôle IAM que vous souhaitez accorder, par exemple roles/gkehub.admin.

Pour en savoir plus sur l'attribution de rôles IAM, consultez la page Accorder, modifier et révoquer les accès à des ressources dans la documentation IAM.

Accorder des autorisations d'administrateur de cluster

En plus des autorisations requises pour enregistrer un cluster, vous devez également disposer d'autorisations d'administrateur sur le cluster lui-même. Selon l'emplacement de votre cluster, vous pouvez attribuer cette autorisation à l'aide de rôles IAM ou du contrôle des accès basé sur les rôles (RBAC) de Kubernetes.

Clusters GKE sur Google Cloud

Pour les clusters GKE sur Google Cloud uniquement, ajoutez le rôle IAM suivant pour obtenir des autorisations d'administration sur le cluster, si ce n'est pas déjà fait (votre compte utilisateur devrait détenir ce rôle si vous avez créé le cluster) :

  • roles/container.admin

Ce rôle IAM inclut le rôle cluster-admin Kubernetes RBAC. Pour les autres environnements de cluster, vous devez attribuer ce rôle RBAC à l'aide de kubectl, comme décrit dans la section suivante. Pour en savoir plus sur la relation entre les rôles IAM et RBAC dans GKE, consultez la documentation GKE.

Clusters en dehors de Google Cloud

Pour associer des clusters tiers en dehors de Google Cloud, assurez-vous que l'utilisateur qui enregistre le cluster dispose du rôle Kubernetes RBAC cluster-admin.

kubectl

Si vous avez créé le cluster, vous bénéficiez probablement de ce rôle. Vous pouvez le vérifier en exécutant la commande suivante :

kubectl auth can-i '*' '*' --all-namespaces

Si vous ou un autre utilisateur avez besoin de ce rôle, créez une ressource ClusterRoleBinding dans le cluster :

kubectl create clusterrolebinding BINDING_NAME --clusterrole cluster-admin --user USER

où :

  • BINDING_NAME est un nom que vous choisissez pour la ressource ClusterRoleBinding.
  • USER est l'identité utilisée pour s'authentifier auprès du cluster.

Étape suivante

Suivez le guide des prérequis pour le type de cluster que vous souhaitez enregistrer :