Configurer des ressources Google Cloud

Cette page décrit les ressources Google Cloud que vous devez créer et configurer avant de créer des clusters.

Avant de commencer

  1. Créez un projet Google Cloud et un compte de facturation.

  2. 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.viewer
    Facultatif: 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 que Cloud 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 :

  1. Connectez-vous à la Google Cloud CLI:

    gcloud auth login
    
  2. 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
    
    
  1. 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 :

  1. Sur votre poste de travail administrateur, vérifiez que vous vous trouvez dans le répertoire baremetal.

  2. Si vous ne l'avez pas déjà fait, connectez-vous à la Google Cloud CLI:

    gcloud auth login
    
  3. 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
    
  4. 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"
    
  5. 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 :

  1. Assurez-vous que vous vous trouvez dans le répertoire baremetal.

  2. Si vous ne l'avez pas déjà fait, connectez-vous à la Google Cloud CLI:

    gcloud auth login
    
  3. 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
    
  4. 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 format SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

  5. 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 exemple snapshotUpload. Le chemin d'accès complet de ce rôle personnalisé est au format projects/PROJECT_ID/roles/ROLE_ID.

  6. 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'
    
  7. 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.