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 à 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.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

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 :

  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 \
        storage.googleapis.com
    
  1. 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 :

  1. Sur votre poste de travail administrateur, 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. 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 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"
    
  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 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 :

  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 de compte de service 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 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.