Cette page décrit les ressources Google Cloud que vous devez créer et configurer avant de créer des clusters.
Avant de commencer
Créez un projet Google Cloud et un compte de facturation.
Si vous n'êtes pas propriétaire d'un projet Google Cloud, demandez à un propriétaire du projet de vous attribuer les rôles Identity and Access Management (IAM) suivants:
Rôle Objectif roles/compute.viewer Obligatoire: nécessaire lorsque bmctl
valide le champ clusterOperations.location dans le fichier de configuration du cluster.roles/iam.serviceAccountAdmin Obligatoire: nécessaire pour créer les comptes de service requis par Google Distributed Cloud. roles/iam.securityAdmin Obligatoire: nécessaire pour attribuer des rôles IAM aux comptes de service requis par Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Obligatoire: nécessaire pour créer des fichiers de clé JSON pour les comptes de service requis par Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Obligatoire: nécessaire pour activer les API Google requises par Google Distributed Cloud. roles/gkeonprem.admin Facultatif: nécessaire si vous souhaitez créer des clusters à l'aide de clients API GKE On-Prem ou configurer un cluster à gérer par l'API GKE On-Prem. roles/gkehub.viewer
roles/container.viewerFacultatif: nécessaire si vous souhaitez accéder aux pages GKE Enterprise et Google Kubernetes Engine dans la console Google Cloud. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Activer les API
Plusieurs API Google doivent être activées dans votre projet Google Cloud associé. Google Distributed Cloud utilise les API lors de la création de clusters. Les API sont également nécessaires pour maintenir une connexion à Google Cloud. La connexion à Google Cloud permet à Google Distributed Cloud d'utiliser Cloud Logging et Cloud Monitoring, ainsi que des fonctionnalités de parc telles qu'Anthos Service Mesh, Config Sync, Policy Controller et Config Controller.
Si vous utilisez l'outil bmctl
pour créer des clusters, vous pouvez inclure l'option --enable-apis
lorsque vous exécutez bmctl create config
. bmctl
activera alors les API répertoriées dans la commande gcloud services enable
suivante. Si vous utilisez un client API GKE On-Prem pour créer un cluster d'administrateur ou un cluster d'utilisateur, vous devez activer les API avant de créer le cluster.
Pour activer les API, exécutez les commandes suivantes :
Connectez-vous à la Google Cloud CLI:
gcloud auth login
Activez les API suivantes :
gcloud services enable --project=PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ kubernetesmetadata.googleapis.com \ storage.googleapis.com
Pour afficher les API et les services activés dans votre projet, exécutez la commande suivante:
gcloud services list --project=PROJECT_ID \ --enabled
Configurer des comptes de service
Pour utiliser les API Google, Google Distributed Cloud nécessite un compte de service configuré avec des rôles IAM spécifiques dans votre projet Google Cloud associé. Il est recommandé de créer des comptes de service distincts pour des objectifs différents, en particulier dans les environnements de production.
Si vous utilisez l'outil bmctl
pour créer des clusters, vous pouvez inclure l'option --create-service-accounts
lors de l'exécution de bmctl create config
pour que bmctl
crée les comptes de service avec les rôles IAM requis.
Si vous prévoyez de créer un cluster d'administrateur à l'aide d'un client API GKE On-Prem, la commande bmctl register bootstrap
crée par défaut les comptes de service avec les rôles IAM requis lorsque vous exécutez la commande permettant de créer un cluster d'amorçage.
Les comptes de service sont également requis pour la création du cluster d'utilisateur, mais ils auraient été créés et configurés lors de la création du cluster d'administrateur qui gère les clusters d'utilisateur.
Le tableau suivant décrit les comptes de service créés automatiquement:
Compte de service | Objectif | Rôles |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud utilise ce compte de service pour télécharger des images de conteneurs à partir de Container Registry. | Aucune |
anthos-baremetal-connect | L'agent Connect utilise ce compte de service pour maintenir une connexion entre votre cluster et Google Cloud. Cela permet d'accéder au cluster et aux fonctionnalités de gestion de la charge de travail, y compris la console Google Cloud et la passerelle de connexion, pour interagir avec votre cluster. | roles/gkehub.connect |
anthos-baremetal-register | L'agent Connect utilise ce compte de service pour enregistrer vos clusters auprès d'un parc. | roles/gkehub.admin |
anthos-baremetal-cloud-ops | L'agent Stackdriver utilise ce compte de service pour exporter les journaux et les métriques des clusters vers Cloud Logging et Cloud Monitoring. |
roles/logging.logWriter roles/monitoring.metricWriter roles/stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer roles/monitoring.dashboardEditor roles/monitoring.viewer roles/serviceusage.serviceUsageViewer roles/kubernetesmetadata.publisher |
Configurer des comptes de service manuellement
Si vous préférez, vous pouvez créer manuellement les comptes de service, les configurer avec les rôles nécessaires et télécharger les fichiers de clé JSON avant de créer des clusters.
Si vous utilisez bmctl
pour créer des clusters, vous ajoutez des références aux fichiers de clé JSON dans le fichier de configuration de cluster approprié. Vous trouverez un exemple dans la section Modifier le fichier de configuration.
Si vous utilisez une API GKE On-Prem pour créer un cluster d'administrateur, vous pouvez spécifier les fichiers de clé lorsque vous exécutez bmctl register bootstrap
pour créer le cluster d'amorçage.
Pour créer les comptes de service et les fichiers de clé, procédez comme suit :
Sur votre poste de travail administrateur, vérifiez que vous vous trouvez dans le répertoire
baremetal
.Si vous ne l'avez pas déjà fait, connectez-vous à la Google Cloud CLI:
gcloud auth login
Créez les comptes de service:
gcloud iam service-accounts create anthos-baremetal-gcr \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-connect \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-register \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-cloud-ops \ --project=PROJECT_ID
Attribuez les rôles IAM requis sur les comptes de service:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.viewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/kubernetesmetadata.publisher"
Téléchargez les fichiers de clé JSON du compte de service:
gcloud iam service-accounts keys create anthos-baremetal-gcr.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-agent.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-register.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create anthos-baremetal-cloud-ops.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
Configurer un compte de service pouvant accéder à un bucket Cloud Storage
Vous utilisez un compte de service et un fichier de clé pour accéder à Cloud Storage. Vous pouvez utiliser ce compte de service pour activer l'importation automatique d'instantanés de clusters dans des buckets Cloud Storage, ou pour importer des images de machines virtuelles (VM) à partir de buckets Cloud Storage afin de les utiliser avec l'environnement d'exécution de VM sur GDC.
Pour créer le compte de service et le fichier de clé, procédez comme suit :
Assurez-vous que vous vous trouvez dans le répertoire
baremetal
.Si vous ne l'avez pas déjà fait, connectez-vous à la Google Cloud CLI:
gcloud auth login
Si ce n'est pas déjà fait, activez l'API Cloud Storage,
storage.googleapis.com
dans votre projet Google Cloud:gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
Créez un compte de service que votre cluster peut utiliser pour accéder aux buckets Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID
Remplacez
SA_NAME
par le nom du nouveau compte de service. Ce nom apparaît dans l'adresse e-mail provisionnée lors de la création, au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
.Créez un rôle personnalisé avec les autorisations suivantes:
storage.buckets.create
storage.buckets.get
storage.buckets.list
storage.objects.create
resourcemanager.projects.get
gcloud iam roles create ROLE_ID \ --permissions=storage.buckets.create,storage.buckets.get,storage.buckets.list,storage.objects.create \ --project=PROJECT_ID
Remplacez
ROLE_ID
par le nom du nouveau rôle personnalisé, par exemplesnapshotUpload
. Le chemin d'accès complet de ce rôle personnalisé est au formatprojects/PROJECT_ID/roles/ROLE_ID
.Ajoutez une liaison de stratégie au compte de service:
gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member=serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role='projects/PROJECT_ID/roles/ROLE_ID'
Téléchargez le fichier de clé JSON du compte de service :
gcloud iam service-accounts keys create OUTPUT_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Pour en savoir plus sur la création d'instantanés de cluster et leur importation automatique dans un bucket Cloud Storage, consultez la page Créer des instantanés pour diagnostiquer les problèmes de cluster.
Pour en savoir plus sur l'importation d'images de VM depuis Cloud Storage, consultez la page Créer et utiliser des identifiants pour importer des images depuis Cloud Storage pour l'environnement d'exécution des VM sur GDC.