Configurer des ressources Google Cloud

En plus de remplir les conditions préalables à l'installation, au matériel et au système d'exploitation, vous devez configurer des projets, des API et des comptes de service Google Cloud pour exécuter GKE sur une solution 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.

Avant de commencer

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

Lors de l'installation, vous devez fournir les identifiants suivants :

  • Clés SSH privées nécessaires pour accéder aux machines du nœud de cluster.
  • Si vous n'utilisez pas root, le nom de connexion de la machine du nœud de cluster.

Assurez-vous de disposer de tous les identifiants nécessaires avant d'essayer d'installer GKE sur bare metal.

Se connecter à gcloud

  1. Connectez-vous à gcloud en tant qu'utilisateur avec l'identifiant gcloud auth application-default :
  2. gcloud auth application-default login
    
    Vous devez disposer d'un rôle de propriétaire/éditeur de projet pour utiliser les fonctionnalités d'activation automatique d'API et de création de compte de service, décrites ci-dessous. Vous pouvez également ajouter les rôles IAM suivants à l'utilisateur :
    • Administrateur de compte de service
    • Administrateur de clés de compte de service
    • Administrateur de projet IAM
    • Lecteur de Compute
    • Administrateur Service Usage
    Si vous disposez déjà d'un compte de service avec ces rôles, exécutez la commande suivante :
    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    
    JSON_KEY_FILE spécifie le chemin d'accès au fichier de clé JSON de votre compte de service.
  3. Obtenez l'ID du projet Cloud à utiliser avec la création de cluster :
  4. export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

Définir l'ID et les rôles de votre projet Google Cloud 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 GKE 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

Activer les API

Avant d'installer GKE sur Bare Metal, vous devez activer plusieurs API dans votre projet Google Cloud associé. Pour activer des API dans votre projet, vous devez avoir reçu l'un des rôles suivants dans le projet Google Cloud: roles/owner, roles/editor ou roles/serviceusage.serviceUsageAdmin.

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

Une fois que vous disposez des autorisations IAM requises, activez les API suivantes :

  • anthos.googleapis.com
  • anthosaudit.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • connectgateway.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • iam.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com

Vous pouvez également utiliser l'outil bmctl pour activer ces services.

Configurer des comptes de service manuellement

La commande bmctl de GKE sur Bare Metal peut 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.

Dans les environnements de production, il est recommandé de créer des comptes de service distincts pour remplir différents objectifs. GKE sur Bare Metal nécessite les différents types de comptes de service Google Cloud suivants, en fonction de leur objectif:

  • Pour accéder à Container Registry (gcr.io), aucun rôle spécial n'est requis.
  • Pour enregistrer un cluster dans un parc, attribuez le rôle IAM roles/gkehub.admin au compte de service de votre projet Google Cloud.
  • Pour vous connecter à vos parcs, attribuez le rôle IAM roles/gkehub.connect au compte de service de votre projet Google Cloud.
  • Pour envoyer des journaux et des métriques à la suite Google Cloud Operations, accordez les rôles IAM suivants au compte de service de votre projet Google Cloud :

    • roles/logging.logWriter
    • roles/monitoring.metricWriter
    • roles/stackdriver.resourceMetadata.writer
    • roles/monitoring.dashboardEditor
    • roles/opsconfigmonitoring.resourceMetadata.writer

GKE sur Bare Metal connecte 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 gcr: GKE sur Bare Metal utilise ce compte de service pour télécharger les images de conteneurs à partir de Container Registry.
    • 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 cloud-ops: 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 un compte de service pour extraire des images de conteneurs

Pour créer le compte de service et le fichier de clé permettant d'extraire des images de conteneur GKE sur Bare Metal:

  1. Vérifiez que vous êtes bien dans le répertoire baremetal.

  2. Créez le compte de service anthos-baremetal-gcr avec le rôle nécessaire et téléchargez le fichier de clé.

    Cette procédure permet de créer le fichier de clé anthos-baremetal-gcr.json dans le répertoire baremetal :

    1. Créez le compte de service :

      gcloud iam service-accounts create anthos-baremetal-gcr --project=PROJECT_ID
      
    2. Téléchargez le fichier 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
      

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 \
        connectgateway.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. Créez le compte de service anthos-baremetal-connect avec le rôle nécessaire et téléchargez le fichier de clé. Cette procédure permet de créer le fichier de clé anthos-baremetal-connect.json dans le répertoire baremetal :
    1. Créez le compte de service :
    2. gcloud iam service-accounts create anthos-baremetal-connect --project=PROJECT_ID
    3. Attribuez le rôle gkehub.connect :
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-connect@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=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com
      
  5. Créez le compte de service anthos-baremetal-register avec le rôle nécessaire et téléchargez le fichier de clé. Cette procédure permet de créer le fichier de clé anthos-baremetal-register.json dans le répertoire baremetal :
    1. Créez le compte de service :
    2. gcloud iam service-accounts create anthos-baremetal-register \
          --project=PROJECT_ID
    3. Attribuez le rôle gkehub.admin :
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. Téléchargez le fichier de clé JSON du compte de service :
    6. anthos-baremetal-register
      gcloud iam service-accounts keys create connect-register.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-register@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 \
        logging.googleapis.com \
        monitoring.googleapis.com \
        opsconfigmonitoring.googleapis.com \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com
    
  4. Créez le compte de service anthos-baremetal-cloud-ops avec les rôles nécessaires et téléchargez le fichier de clé. Cette procédure permet de créer le fichier de clé anthos-baremetal-cloud-ops.json dans le répertoire baremetal :
    1. Créez le compte de service
    2. gcloud iam service-accounts create anthos-baremetal-cloud-ops \
          --project=PROJECT_ID
      
    3. Attribuez le rôle logging.logWriter
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@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:anthos-baremetal-cloud-ops@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:anthos-baremetal-cloud-ops@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:anthos-baremetal-cloud-ops@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:anthos-baremetal-cloud-ops@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 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 de VM sur Google Distributed Cloud.

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. 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 votre cluster peut utiliser pour accéder aux buckets Cloud Storage :
  5. gcloud iam service-accounts create anthos-baremetal-storage \
        --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 ou importer des images de VM :
  7. gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-storage@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 anthos-baremetal-storage.json \
        --iam-account=anthos-baremetal-storage@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.

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 Google Distributed Cloud.