Configura le risorse Google Cloud

Oltre a soddisfare i prerequisiti di installazione, hardware e sistema operativo, devi configurare e configurare progetti, API e account di servizio di Google Cloud per eseguire GKE su Bare Metal.

Tieni presente che il comando bmctl può abilitare automaticamente account di servizio e API al momento della creazione del cluster, ma puoi anche configurare manualmente questi servizi per un controllo più preciso delle operazioni.

Prima di iniziare

Crea un progetto Google Cloud e un account di fatturazione.

Durante l'installazione, devi fornire le seguenti credenziali:

  • Le chiavi SSH private necessarie per accedere alle macchine dei nodi del cluster.
  • Se non utilizzi root, il nome di accesso alla macchina del nodo cluster.

Assicurati di disporre di tutte le credenziali necessarie prima di tentare di installare GKE su Bare Metal.

Accesso a gcloud

  1. Accedi a gcloud come utente utilizzando l'accesso a gcloud auth application-default:
  2. gcloud auth application-default login
    
    Devi avere un ruolo Proprietario/Editor del progetto per utilizzare le funzionalità di abilitazione API automatica e creazione di account di servizio, descritte di seguito. Puoi anche aggiungere i seguenti ruoli IAM per l'utente:
    • Amministratore account di servizio
    • Amministratore chiavi account di servizio
    • Amministratore IAM progetto
    • Visualizzatore Compute
    • Amministratore Service Usage
    In alternativa, se hai già un account di servizio con questi ruoli, esegui:
    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    
    JSON_KEY_FILE specifica il percorso del file della chiave JSON del tuo account di servizio.
  3. Recupera il tuo ID progetto Google Cloud da utilizzare per la creazione di cluster:
  4. export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

Impostare l'ID progetto e i ruoli predefiniti per Google Cloud

Puoi impostare il tuo project id predefinito oltre a configurare gli account di servizio.

Devi avere i ruoli owner o editor nel progetto per GKE su Bare Metal.

Per impostare il progetto predefinito, esegui il comando seguente e sostituisci PROJECT_ID con il tuo ID progetto Google Cloud:

gcloud config set project PROJECT_ID

Abilita API

Prima di installare GKE su Bare Metal, devi abilitare diverse API nel progetto Google Cloud associato. Per abilitare le API nel progetto, devi aver ricevuto uno dei seguenti ruoli nel progetto Google Cloud: roles/owner, roles/editor o roles/serviceusage.serviceUsageAdmin.

Per ulteriori informazioni, vedi Concedere un singolo ruolo.

Dopo aver ottenuto le autorizzazioni IAM richieste, abilita le API seguenti:

  • 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

Per abilitare questi servizi puoi anche usare lo strumento bmctl.

Configurare gli account di servizio manualmente

Il comando bmctl di GKE su Bare Metal può configurare automaticamente account di servizio e API Google quando crei i cluster.

Tuttavia, per un maggiore controllo sul sistema o per semplificare la creazione di cluster con un insieme predefinito di servizi, account e progetti, puoi configurare questi servizi manualmente.

In ambienti di produzione, è necessario creare account di servizio separati per scopi diversi. GKE su Bare Metal richiede i seguenti tipi diversi di account di servizio Google Cloud a seconda del loro scopo:

  • Per accedere a Container Registry (gcr.io), non è richiesto alcun ruolo speciale.
  • Per registrare un cluster in un parco risorse, concedi il ruolo IAM roles/gkehub.admin all'account di servizio nel tuo progetto Google Cloud.
  • Per connetterti ai parchi risorse, concedi il ruolo IAM roles/gkehub.connect all'account di servizio nel tuo progetto Google Cloud.
  • Per inviare log e metriche alla suite operativa di Google Cloud, concedi i seguenti ruoli IAM all'account di servizio nel tuo progetto Google Cloud:

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

GKE su Bare Metal connette i tuoi cluster a Google Cloud. Questa connessione attiva la seguente funzionalità:

  • Connettiti per connettere il tuo cluster Bare Metal a Google Cloud. Ciò consente l'accesso alle funzionalità dei cluster e di gestione dei carichi di lavoro, tra cui un'interfaccia utente unificata, la console Cloud, per interagire con il cluster.
  • Logging e Monitoring per visualizzare log e metriche del cluster nella console Cloud.
  • Caricamenti automatici di snapshot di cluster nei bucket Cloud Storage.

Il processo di configurazione manuale dell'accesso include:

  • Abilitazione dei servizi Google necessari nel progetto Cloud.
  • Creazione dei seguenti account di servizio con i ruoli necessari:
    • Account di servizio gcr: GKE su Bare Metal utilizza questo account di servizio per scaricare immagini container da Container Registry.
    • account di servizio Connect-agent: Connect utilizza questo account di servizio per mantenere una connessione tra il cluster e Google Cloud.
    • connect-register account di servizio: Connect utilizza questo account di servizio per registrare i cluster in Google Cloud.
    • account di servizio cloud-ops: Connect utilizza questo account di servizio per esportare log e metriche dai cluster a Logging e Monitoring.
    • account di servizio storage-agent: bmctl utilizza questo account di servizio per archiviare automaticamente gli snapshot dei cluster in Cloud Storage.

  • È in corso il download dei file della chiave JSON per ciascun account di servizio.

Potrai quindi aggiungere riferimenti ai file di chiave JSON nei file di configurazione del cluster appropriati. Per ulteriori informazioni, consulta Creazione di cluster: panoramica.

Configura un account di servizio per il pull delle immagini del container

Per creare l'account di servizio e il file della chiave per il pull delle immagini container GKE su Bare Metal:

  1. Assicurati di essere nella directory baremetal.

  2. Creare l'account di servizio anthos-baremetal-gcr con il ruolo necessario e scaricare il file della chiave.

    Questi passaggi creano il file della chiave anthos-baremetal-gcr.json nella directory baremetal:

    1. Crea l'account di servizio:

      gcloud iam service-accounts create anthos-baremetal-gcr --project=PROJECT_ID
      
    2. Scarica il file della chiave JSON dell'account di servizio:

      gcloud iam service-accounts keys create anthos-baremetal-gcr.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
      

Configura gli account di servizio da utilizzare con Connect

Per creare gli account di servizio e i file delle chiavi:

  1. Assicurati di essere nella directory baremetal.
  2. Abilita i servizi Google necessari nel tuo progetto Cloud:
  3. gcloud services enable --project=PROJECT_ID \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        connectgateway.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. Crea l'account di servizio anthos-baremetal-Connect con il ruolo necessario e scarica il file della chiave. Questi passaggi creano il file della chiave anthos-baremetal-connect.json nella directory baremetal:
    1. Crea account di servizio:
    2. gcloud iam service-accounts create anthos-baremetal-connect --project=PROJECT_ID
    3. Concedi il ruolo 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. Scarica il file della chiave JSON dell'account di servizio:
    6. gcloud iam service-accounts keys create connect-agent.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com
      
  5. Crea l'account di servizio anthos-baremetal-register con il ruolo necessario e scarica il file della chiave. Questi passaggi creano il file della chiave anthos-baremetal-register.json nella directory baremetal:
    1. Crea account di servizio:
    2. gcloud iam service-accounts create anthos-baremetal-register \
          --project=PROJECT_ID
    3. Concedi il ruolo 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. Scarica il file della chiave JSON dell'account di servizio:
    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
      

Configura un account di servizio per controllare gli audit log e monitorare i progetti

Per creare l'account di servizio e il file della chiave per il logging e il monitoraggio:

  1. Assicurati di essere nella directory baremetal.
  2. Abilita i servizi Google necessari nel tuo progetto 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. Crea l'account di servizio anthos-baremetal-cloud-ops con i ruoli necessari e scarica il file della chiave. Questi passaggi creano il file della chiave anthos-baremetal-cloud-ops.json nella directory baremetal:
    1. Crea un account di servizio
    2. gcloud iam service-accounts create anthos-baremetal-cloud-ops \
          --project=PROJECT_ID
      
    3. Concedi il ruolo 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. Concedi il ruolo 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. Concedi il ruolo 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. Concedi il ruolo 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. Concedi il ruolo 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. Scarica il file della chiave JSON dell'account di servizio:
    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
      

Configura un account di servizio che può accedere a un bucket Cloud Storage

Per accedere a Cloud Storage devi utilizzare un account di servizio e un file della chiave. Puoi utilizzare questo account di servizio per abilitare gli snapshot dei cluster da caricare automaticamente nei bucket Cloud Storage o per importare immagini di macchine virtuali (VM) dai bucket Cloud Storage per utilizzarle con VM Runtime su Google Distributed Cloud.

Per creare l'account di servizio e il file della chiave, completa questi passaggi:

  1. Assicurati di essere nella directory baremetal.
  2. Abilita i servizi Google necessari nel tuo progetto Cloud:
  3. gcloud services enable --project=PROJECT_ID \
        storage.googleapis.com
  4. Crea un account di servizio che il tuo cluster può utilizzare per accedere ai bucket Cloud Storage:
  5. gcloud iam service-accounts create anthos-baremetal-storage \
        --project=PROJECT_ID
  6. Concedi un ruolo storage.admin all'account di servizio in modo che possa caricare dati in un bucket Cloud Storage o importare immagini 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. Scarica il file della chiave JSON dell'account di servizio:
  9. gcloud iam service-accounts keys create anthos-baremetal-storage.json \
        --iam-account=anthos-baremetal-storage@PROJECT_ID.iam.gserviceaccount.com

Per ulteriori informazioni su come creare snapshot dei cluster e caricarli automaticamente in un bucket Cloud Storage, consulta Creare snapshot per diagnosticare i problemi dei cluster.

Per ulteriori informazioni su come importare immagini VM da Cloud Storage, consulta Creare e utilizzare credenziali per importare immagini da Cloud Storage for VM Runtime su Google Distributed Cloud.