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 à son propriétaire de vous attribuer les rôles IAM (Identity and Access Management) 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 GKE sur une solution Bare Metal. roles/iam.securityAdmin Obligatoire: nécessaire pour attribuer des rôles IAM aux comptes de service requis par GKE sur une solution Bare Metal. roles/iam.serviceAccountKeyAdmin Obligatoire: nécessaire pour créer des fichiers de clé JSON pour les comptes de service requis par GKE sur une solution Bare Metal. roles/serviceusage.serviceUsageAdmin Obligatoire: nécessaire pour activer les API Google requises par GKE sur une solution Bare Metal. 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 qui sera géré 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
Vous devez activer plusieurs API Google dans votre projet Google Cloud associé. GKE sur Bare Metal 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 à GKE sur Bare Metal 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 \ storage.googleapis.com
Pour voir 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, GKE sur Bare Metal 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 différents objectifs, 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
lorsque vous exécutez bmctl create config
pour que bmctl
crée les comptes de service avec les rôles IAM requis.
Si vous utilisez un client API GKE On-Prem pour créer un cluster d'administrateur, par défaut, la commande bmctl register bootstrap
crée 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 | GKE sur Bare Metal utilise ce compte de service pour télécharger des images de conteneurs à partir de Container Registry. | Aucune |
anthos-baremetal-connect | Connect Agent 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 permettre l'interaction 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 |
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 les clusters.
Si vous utilisez bmctl
pour créer des clusters, vous ajoutez des références aux fichiers de clé JSON au 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, 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
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 aux 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"
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 des 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 des 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 de compte de service 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 savoir comment créer des instantanés de cluster et les importer automatiquement 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 à partir de Cloud Storage, consultez la page Créer et utiliser des identifiants pour importer des images à partir de Cloud Storage pour l'environnement d'exécution de VM sur GDC.