Activer des services Google et des comptes de service

En plus de répondre aux prérequis pour l'installation, le matériel et le système d'exploitation, vous devez configurer des projets, des API et des comptes de service Google Cloud pour exécuter des clusters Anthos sur Bare Metal.

Notez que la commande bmctl peut activer automatiquement les comptes de service et les API au moment de la création du cluster, mais vous pouvez également configurer manuellement ces services pour un contrôle plus précis des opérations.

Activer les API

Pour activer ces API dans votre projet, l'un des rôles suivants doit avoir été attribué à votre compte : roles/owner, roles/editor ou roles/serviceusage.serviceUsageAdmin.

Pour plus d'informations, consultez la section Attribuer un rôle unique.

Une fois que votre compte dispose d'un rôle approprié, vous pouvez activer les API dans Google Cloud Console ou en exécutant la commande suivante dans Cloud Shell ou Google Cloud CLI.

gcloud services enable --project=PROJECT_ID \
    servicemanagement.googleapis.com \
    servicecontrol.googleapis.com

Définir l'ID de projet Google Cloud et les rôles par défaut

Vous pouvez définir votre project id par défaut en plus de configurer les comptes de service.

Vous devez disposer des rôles owner ou editor sur votre projet pour les clusters Anthos sur Bare Metal.

Pour définir le projet par défaut, exécutez la commande suivante et remplacez PROJECT_ID par l'ID de votre projet Google Cloud :

gcloud config set project PROJECT_ID

Configurer des comptes de service manuellement

La commande bmctl des clusters Anthos sur Bare Metal permet de configurer automatiquement des comptes de service et des API Google lorsque vous créez des clusters.

Toutefois, pour un meilleur contrôle de votre système ou pour optimiser la création de clusters avec un ensemble par défaut de services, de comptes et de projets, vous pouvez configurer ces services manuellement.

Les clusters Anthos sur Bare Metal connectent vos clusters à Google Cloud. Cette connexion active les fonctionnalités suivantes :

  • Connect pour connecter votre cluster Bare Metal à Google Cloud. Vous pouvez ainsi accéder au cluster et aux fonctionnalités de gestion de charge de travail, y compris à une interface utilisateur unifiée, la console Cloud, pour interagir avec votre cluster.
  • Logging et Monitoring, pour afficher les journaux et les métriques du cluster dans la console Cloud.
  • Importations automatiques des instantanés de cluster dans les buckets Cloud Storage.

Le processus de configuration manuelle des accès comprend les étapes suivantes :

  • Activer les services Google nécessaires dans votre projet Cloud
  • Créer les comptes de service suivants avec les rôles nécessaires :
    • Compte de service connect-agent : Connect utilise ce compte de service pour maintenir une connexion entre votre cluster et Google Cloud.
    • Compte de service connect-register : Connect utilise ce compte de service pour enregistrer vos clusters avec Google Cloud.
    • Compte de service logging-monitoring : Connect utilise ce compte de service pour exporter les journaux et les métriques des clusters vers Logging et Monitoring.
    • Compte de service storage-agent : bmctl utilise ce compte de service pour stocker automatiquement les instantanés des clusters dans Cloud Storage.

  • Télécharger les fichiers de clé JSON pour chaque compte de service

Vous ajoutez ensuite des références aux fichiers de clé JSON dans les fichiers de configuration de cluster appropriés. Pour en savoir plus, consultez la section Créer des clusters : présentation.

Configurer des comptes de service à utiliser avec Connect

Pour créer les comptes de service et les fichiers de clé, procédez comme suit :

  1. Assurez-vous que vous vous trouvez dans le répertoire baremetal.
  2. Activez les services Google nécessaires dans votre projet Cloud :
  3. gcloud services enable --project=PROJECT_ID \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. Créez le compte de service Connect-agent avec le rôle nécessaire, puis téléchargez le fichier de clé. Cette procédure permet de créer le fichier de clé connect-agent.json dans le répertoire baremetal :
    1. Créez le compte de service :
    2. gcloud iam service-accounts create connect-agent-svc-account --project=PROJECT_ID
    3. Attribuez le rôle gkehub.connect :
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/gkehub.connect"
    5. Téléchargez le fichier de clé JSON du compte de service :
    6. gcloud iam service-accounts keys create connect-agent.json \
          --project=PROJECT_ID \
          --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com
      
  5. Créez le compte de service Connect-register avec le rôle nécessaire, puis téléchargez le fichier de clé. Cette procédure permet de créer le fichier de clé connect-register.json dans le répertoire baremetal :
    1. Créez le compte de service :
    2. gcloud iam service-accounts create connect-register-svc-account \
          --project=PROJECT_ID
    3. Attribuez le rôle gkehub.admin :
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. Téléchargez le fichier de clé JSON du compte de service :
    6. gcloud iam service-accounts keys create connect-register.json \
          --project=PROJECT_ID \
          --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com
      

Configurer un compte de service pour auditer les journaux et surveiller les projets

Pour créer le compte de service et le fichier de clé pour la journalisation et la surveillance, procédez comme suit :

  1. Assurez-vous que vous vous trouvez dans le répertoire baremetal.
  2. Activez les services Google nécessaires dans votre projet Cloud :
  3. gcloud services enable --project PROJECT_ID \
        anthos.googleapis.com \
        anthosaudit.googleapis.com \
        anthosgke.googleapis.com \
        cloudresourcemanager.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com \
        monitoring.googleapis.com \
        logging.googleapis.com \
        opsconfigmonitoring.googleapis.com
    
  4. Créez le compte de service logging-monitoring doté des rôles nécessaires, puis téléchargez le fichier de clé. Cette procédure permet de créer le fichier de clé cloud-ops.json dans le répertoire baremetal :
    1. Créez le compte de service
    2. gcloud iam service-accounts create logging-monitoring-svc-account \
          --project=PROJECT_ID
      
    3. Attribuez le rôle logging.logWriter
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/logging.logWriter"
      
    5. Attribuez le rôle monitoring.metricWriter
    6. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.metricWriter"
      
    7. Attribuez le rôle roles/stackdriver.resourceMetadata.writer
    8. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/stackdriver.resourceMetadata.writer"
      
    9. Attribuez le rôle roles/opsconfigmonitoring.resourceMetadata.writer
    10. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/opsconfigmonitoring.resourceMetadata.writer"
      
    11. Attribuez le rôle roles/monitoring.dashboardEditor
    12. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.dashboardEditor"
      
    13. Téléchargez le fichier de clé JSON du compte de service :
    14. gcloud iam service-accounts keys create cloud-ops.json \
          --project=PROJECT_ID \
          --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com
      

Configurer un compte de service capable d'importer dans un bucket Cloud Storage

Pour créer le compte de service et le fichier de clé permettant d'importer automatiquement les instantanés des clusters dans des buckets Cloud Storage, procédez comme suit :

  1. Assurez-vous que vous vous trouvez dans le répertoire baremetal.
  2. Activez les services Google nécessaires dans votre projet Cloud :
  3. gcloud services enable --project=PROJECT_ID \
        storage.googleapis.com
  4. Créez un compte de service que la commande bmctl check cluster --snapshot utilisera pour importer automatiquement un instantané de cluster dans un bucket Cloud Storage :
  5. gcloud iam service-accounts create storage-agent-svc-account \
      --project=PROJECT_ID
  6. Attribuez un rôle storage.admin au compte de service afin qu'il puisse importer des données dans un bucket Cloud Storage :
  7. gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:storage-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/storage.admin"
    
  8. Téléchargez le fichier de clé JSON du compte de service :
  9. gcloud iam service-accounts keys create storage-agent.json \
        --iam-account=storage-agent-svc-account@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 section Créer des instantanés pour diagnostiquer les problèmes de cluster.