Ce document explique comment rendre les clusters créés avec le logiciel Google Distributed Cloud pour VMware disponibles pour la gestion dans la Google Cloud console. Cela inclut la gestion de base, comme la possibilité de se connecter aux clusters et d'afficher leurs charges de travail, ainsi que l'activation de la gestion du cycle de vie des clusters pour pouvoir les mettre à niveau, les mettre à jour et les supprimer.
Membres du parc et console
Tous les clusters Google Distributed Cloud doivent être membres d'un parc, qui constitue un moyen unifié d'afficher et de gérer plusieurs clusters et leurs charges de travail. Chaque parc de clusters est associé à un projet hôte de parc.
Dans Google Distributed Cloud, un cluster d'administrateur est enregistré dans un parc au moment de sa création en spécifiant votre projet hôte de parc dans la section gkeConnect du fichier de configuration du cluster. Google Distributed Cloud utilise ces informations pour enregistrer votre cluster dans le projet de parc spécifié. Si l'enregistrement échoue, vous pouvez réessayer en exécutant gkectl update credentials register.
Notez que lorsque vous tentez à nouveau d'enregistrer le cluster, vous n'avez pas besoin de mettre à jour la clé du compte de service connect-register. En d'autres termes, vous pouvez continuer à utiliser votre compte de service connect-register d'origine. Pour en savoir plus sur la commande, consultez la section Effectuer une rotation des clés de compte de service.
Dans Google Distributed Cloud, un cluster d'utilisateur est enregistré dans un parc au moment de sa création :
Lorsque vous créez un cluster d'utilisateur à l'aide de
gkectl, vous spécifiez votre projet hôte de parc dans la sectiongkeConnectdu fichier de configuration du cluster. Google Distributed Cloud utilise ces informations pour enregistrer votre cluster dans le projet de parc spécifié.Lorsque vous créez un cluster d'utilisateur à l'aide d'un outil standard (la console, Google Cloud CLI ou Terraform), le cluster devient automatiquement membre d'un parc dans le projet que vous spécifiez.
Les membres du parc en dehors de Google Cloud comme Google Distributed Cloud s'affichent dans la console de votre projet hôte de parc, ainsi que d'autres clusters de parc tels que GKE On-Prem Google Cloud. La mesure dans laquelle vous pouvez gérer Google Distributed Cloud à partir de la console dépend des éléments suivants :
Si vous avez configuré l'authentification, vous pouvez vous connecter à vos clusters et afficher leurs charges de travail et d'autres détails.
Si vous avez activé la gestion du cycle de vie des clusters pour le cluster, vous pouvez également mettre à niveau, mettre à jour ou supprimer des clusters d'utilisateur en utilisant la console. Si cette fonctionnalité n'est pas activée, vous ne pouvez gérer le cycle de vie des clusters qu'à l'aide de
gkectlsur votre poste de travail administrateur.
Afficher les clusters enregistrés
Tous vos clusters de parc s'affichent sur la page Vue d'ensemble des clusters Google Kubernetes Engine de la console. Vous obtenez ainsi une vue d'ensemble de votre parc et, pour Google Distributed Cloud, vous pouvez voir quels clusters sont gérés par l'API GKE On-Prem.
Pour afficher les clusters de votre parc, procédez comme suit :
Dans la console, accédez à la page Vue d'ensemble des clusters Google Kubernetes Engine.
Sélectionnez le Google Cloud projet.
Si vm Google Distributed Cloud s'affiche dans la colonne Type, le cluster est géré par l'API GKE On-Prem.
Si la valeur Externe s'affiche dans la colonne Type, cela signifie que le cluster n'est pas géré par l'API GKE On-Prem.
Pour afficher plus de détails sur un cluster, les utilisateurs doivent se connecter et s'authentifier auprès du cluster. Pour ce faire, vous devez :
- Configurer une méthode d'authentification
- Accorder aux utilisateurs des rôles Identity and Access Management spécifiques
Configurer l'authentification
Comme décrit précédemment, tous les clusters de parc s'affichent dans les listes de clusters GKE de la console. Toutefois, pour afficher plus de détails, tels que les nœuds et les charges de travail (et pour effectuer des tâches de gestion du cycle de vie des clusters si la fonctionnalité est activée), les utilisateurs doivent se connecter et s'authentifier auprès du cluster. Pour ce faire, vos clusters enregistrés doivent être configurés avec l'une des méthodes d'authentification suivantes :
Identité Google : cette option permet aux utilisateurs de se connecter à l'aide de leur Google Cloud identité, qui correspond à l'adresse e-mail associée à votre Google Cloud compte. Utilisez cette option si les utilisateurs ont déjà accès à Google Cloud avec leur identité Google. Si vous avez créé le cluster dans la console, vous pouvez vous y connecter à l'aide de votre identité Google, mais vous devrez configurer l'authentification pour les autres utilisateurs.
La connexion avec l'identité Google est l'approche d'authentification la plus simple dans la console, en particulier si vous essayez Google Distributed Cloud avec une installation minimale. Nous avons donc décrit comment la configurer plus en détail ci-dessous dans Configurer l'authentification avec l'identité Google.
OpenID Connect (OIDC) : cette option permet aux utilisateurs de se connecter aux clusters depuis la console en utilisant leur identité d'un fournisseur d'identité OIDC tiers tel que Okta ou Microsoft AD FS. Vous pouvez utiliser cette option si vos utilisateurs disposent déjà de noms d'utilisateur, de mots de passe et d'appartenances à des groupes de sécurité auprès de votre fournisseur. Pour savoir comment configurer l'authentification OIDC tierce pour vos clusters, consultez les guides suivants :
Configurer des clusters pour GKE Identity Service avec OIDC : ce guide vous explique comment configurer l'authentification OIDC par cluster.
Configurer GKE Identity Service pour un parc : cette option vous permet de configurer OIDC au niveau du parc.
Jeton de support : si les solutions précédentes fournies par Google ne sont pas adaptées à votre organisation, vous pouvez configurer l'authentification à l'aide d'un compte de service Kubernetes et de son jeton de support pour vous connecter. Pour en savoir plus, consultez la page Configurer à l'aide d'un jeton de support.
Attribuer les rôles requis
L'accès à la console est contrôlé par Identity and Access Management (IAM). Ces rôles IAM sont requis, quelle que soit la méthode d'authentification choisie. Pour gérer le cycle de vie du cluster dans la console, vous devez attribuer certains rôles IAM.
Pour permettre aux utilisateurs d'accéder à la console, vous devez au minimum attribuer les rôles suivants :
roles/container.viewer. Ce rôle permet aux utilisateurs d'afficher la page "Clusters GKE" et les autres ressources de conteneur dans la console. Pour en savoir plus sur les autorisations incluses dans ce rôle ou pour accorder un rôle avec des autorisations en lecture/écriture, consultez la section Rôles Kubernetes Engine dans la documentation IAM.roles/gkehub.viewer. Ce rôle permet aux utilisateurs d'afficher les clusters en dehors Google Cloud dans la console. Pour en savoir plus sur les autorisations incluses dans ce rôle ou pour accorder un rôle avec des autorisations en lecture/écriture , consultez la section Rôles GKE Hub dans la documentation IAM.
Pour permettre aux utilisateurs de gérer le cycle de vie du cluster dans la console, accordez le rôle IAM
roles/gkeonprem.admin. Le rôleroles/gkeonprem.admindonne aux utilisateurs un accès administrateur à l'API GKE On-Prem, que la console utilise pour gérer le cycle de vie du cluster. Pour en savoir plus sur les autorisations incluses dans ce rôle, consultez la section Rôles GKE On-Prem dans la documentation IAM.
Les commandes suivantes montrent comment attribuer les rôles minimaux nécessaires pour gérer le cycle de vie du cluster dans la console :
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
--member=MEMBER \
--role=roles/container.viewer
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
--member=MEMBER \
--role=roles/gkehub.viewer
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
--member=MEMBER \
--role=roles/gkeonprem.admin
où :
FLEET_HOST_PROJECT_IDest le projet hôte du parc. Pour les clusters créés à l'aide degkectl, il s'agit du projet que vous avez configuré dans la sectiongkeConnectdu fichier de configuration du cluster d'utilisateur. Pour les clusters créés dans la console, il s'agit du projet que vous avez choisi lors de la création du cluster.MEMBERest l'adresse e-mail de l'utilisateur au formatuser:emailID, par exemple :user:alice@example.com
Activer la gestion du cycle de vie des clusters dans la console
Les clusters d'utilisateur créés à l'aide d'outils standards (la console, gcloud CLI ou Terraform) sont automatiquement enregistrés dans l'API GKE On-Prem, ce qui vous permet d'effectuer des tâches de gestion du cycle de vie des clusters dans la console. Si vous souhaitez activer cette fonctionnalité pour les clusters d'utilisateur créés à l'aide de gkectl, suivez les étapes décrites dans
Configurer un cluster d'utilisateur pour qu'il soit géré par l'API GKE On-Prem.
Lorsque la gestion du cycle de vie des clusters est activée, vous pouvez effectuer les tâches suivantes à partir de la console :
- Mettre à niveau les clusters d'utilisateur
- Redimensionner les clusters d'utilisateur
- Créer et gérer des pools de nœuds
- Supprimer des clusters d'utilisateur
Configurer l'authentification avec l'identité Google
Pour permettre aux utilisateurs de se connecter au cluster à l'aide de leur identité Google, vous devez configurer les éléments suivants :
Les utilisateurs ont besoin de rôles Identity and Access Management (IAM) spécifiques pour pouvoir afficher les clusters et interagir avec eux dans la console de la liste "Clusters GKE".
Les utilisateurs doivent être ajoutés aux stratégies de contrôle des accès basé sur les rôles (RBAC) Kubernetes dont la passerelle Connect a besoin pour accéder au serveur d'API Kubernetes du cluster via l' agent Connect.
Configurer l'autorisation RBAC
Le serveur d'API Kubernetes de chaque cluster doit pouvoir autoriser les requêtes provenant de la console. Pour configurer l'autorisation, vous devez configurer les stratégies de contrôle des accès basé sur les rôles (RBAC) Kubernetes sur chaque cluster.
Si vous avez utilisé un outil standard pour créer le cluster d'utilisateur, vous pouvez déjà bénéficier des stratégies RBAC appropriées qui vous accordent un accès administrateur complet au cluster. L'API GKE On-Prem ajoute automatiquement votre compte Google en tant qu'administrateur dans les cas suivants :
Vous avez créé le cluster d'utilisateur dans la console.
Vous avez créé le cluster d'utilisateur à l'aide de gcloud CLI, et votre compte Google a été spécifié dans l'option
--admin-usersde la commande de création du cluster.Vous avez créé le cluster d'utilisateur à l'aide de Terraform et votre compte Google a été spécifié dans le champ
authorization.admin_users.username.
Les clusters d'utilisateur créés à l'aide de gkectl ne vous accordent pas les stratégies RBAC nécessaires pour administrer le cluster à l'aide de la console. Vous devez vous ajouter après la création du cluster. Quel que soit l'outil que vous avez utilisé pour créer le cluster, vous pouvez ajouter d'autres utilisateurs en tant qu'administrateurs après la création du cluster.
Vous pouvez utiliser l'une des méthodes suivantes pour accorder un accès administrateur au cluster. Deux commandes gcloud différentes sont fournies.
La commande
gcloud ... generate-gateway-rbacdoit être exécutée sur votre poste de travail administrateur, car elle nécessite d'accéder au fichier kubeconfig et au contexte du cluster (qui ne se trouvent généralement que sur votre poste de travail administrateur). La commandegenerate-gateway-rbacvous permet de personnaliser les stratégies RBAC, mais les adresses e-mail des utilisateurs ne s'affichent pas en tant qu'administrateurs dans la section Détails du cluster de la console.La commande
gcloud ... updatepeut être exécutée sur votre poste de travail administrateur ou sur n'importe quel ordinateur ayant accès à l'API GKE On-Prem.
generate-gateway-rbac
Se connecter au poste de travail administrateur
Exécutez la commande suivante pour mettre à jour les composants :
gcloud components updateGénérez et appliquez les stratégies RBAC à votre cluster pour les utilisateurs et les comptes de service :
gcloud container fleet memberships generate-gateway-rbac \ --membership=MEMBERSHIP_NAME \ --role=ROLE \ --users=USERS \ --project=FLEET_HOST_PROJECT_ID \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT \ --applyRemplacez les éléments suivants :
- MEMBERSHIP_NAME : nom utilisé pour représenter de manière unique le cluster dans son parc. Dans Google Distributed Cloud, le nom de l'appartenance et le nom du cluster sont identiques.
- ROLE : rôle Kubernetes que vous souhaitez attribuer aux utilisateurs du
cluster. Pour accorder aux utilisateurs un accès complet à toutes les ressources du cluster dans tous les espaces de noms, spécifiez
clusterrole/cluster-admin. Pour fournir un accès en lecture seule, spécifiezclusterrole/view. Vous pouvez également créer un rôle personnalisé, par exemple :role/mynamespace/namespace-reader. Le rôle personnalisé doit déjà exister avant l'exécution de la commande. - USERS : adresses e-mail des utilisateurs (comptes utilisateur ou comptes de service) auxquels vous souhaitez accorder les autorisations, sous la forme d'une liste d'éléments séparés par une virgule. Exemple :
--users=foo@example.com,test-acct@test-project.iam.gserviceaccount.com. - FLEET_HOST_PROJECT_ID : ID du projet hôte du parc.
- KUBECONFIG_PATH : chemin d'accès à l'emplacement local du fichier kubeconfig contenant une entrée pour le cluster.
KUBECONFIG_CONTEXT : contexte du cluster tel qu'il apparaît dans le fichier kubeconfig. Vous pouvez obtenir le contexte actuel à partir de la ligne de commande en exécutant la commande
kubectl config current-context. Que vous utilisiez le contexte actuel ou non, assurez-vous qu'il fonctionne pour l'accès au cluster en exécutant une commande simple telle que la suivante :kubectl get namespaces \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT
Une fois la commande
gcloud container fleet memberships generate-gateway-rbacexécutée, un message semblable à ce qui suit s'affiche à la fin du résultat, qui est tronqué par souci de lisibilité :Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /usr/local/google/home/foo/.kube/config, context: kind-kind Writing RBAC policy for user: foo@example.com to cluster. Successfully applied the RBAC policy to cluster.Il s'agit du contexte permettant d'accéder au cluster via la passerelle Connect.
Pour en savoir plus sur la commande
generate-gateway-rbac, consultez le guide de référence de gcloud CLI.
update
Exécutez la commande suivante pour mettre à jour les composants :
gcloud components updatePour chaque utilisateur auquel vous devez accorder le rôle
clusterrole/cluster-admin, incluez l'option--admin-userset exécutez la commande suivante. Vous ne pouvez pas spécifier plusieurs utilisateurs dans une seule option. Veillez à inclure votre compte Google dans la commande, car elle remplace la liste d'attribution par les utilisateurs que vous spécifiez dans la commande.gcloud container vmware clusters update USER_CLUSTER_NAME \ --admin-users YOUR_GOOGLE_ACCOUNT \ --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
En plus d'accorder le rôle Kubernetes clusterrole/cluster-admin, la
commande accorde aux utilisateurs les stratégies RBAC dont ils ont besoin pour accéder au cluster
via la passerelle Connect.
Console
Pour appliquer les stratégies RBAC aux utilisateurs, procédez comme suit dans la console :
Dans la console, accédez à la page Vue d'ensemble des clusters Google Kubernetes Engine.
Sélectionnez le Google Cloud projet dans lequel se trouve le cluster d'utilisateur.
Dans la liste des clusters, cliquez sur le nom du cluster pour afficher ses détails.
Dans la section Autorisation, cliquez sur le bouton de modification Utilisateurs administrateurs.
Saisissez l'adresse e-mail de l'utilisateur que vous souhaitez ajouter en tant qu'administrateur de cluster dans le panneau Modifier l'autorisation. Pour ajouter d'autres utilisateurs administrateurs, cliquez sur Ajouter un utilisateur administrateur.
Lorsque vous avez terminé d'ajouter des utilisateurs, cliquez sur Enregistrer les modifications.
En savoir plus
- Présentation de la gestion de parc
- Utiliser des clusters depuis la Google Cloud console
- Présentation de Connect
- Présentation de l'agent Connect