Questa pagina descrive le Google Cloud risorse che devi creare e configurare prima di creare i cluster.
Prima di iniziare
Se non sei un Google Cloud proprietario del progetto, chiedi a un proprietario del progetto di grantirti i seguenti ruoli IAM (Identity and Access Management):
Ruolo Finalità roles/compute.viewer Obbligatorio: necessario quando bmctl
convalida il campo clusterOperations.location nel file di configurazione del cluster.roles/iam.serviceAccountAdmin Obbligatorio: necessario per creare gli account di servizio richiesti da Google Distributed Cloud. roles/iam.securityAdmin Obbligatorio: necessario per concedere i ruoli IAM agli account di servizio richiesti da Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Obbligatorio: necessario per creare file di chiavi JSON per gli account di servizio richiesti da Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Obbligatorio: necessario per attivare le API di Google richieste da Google Distributed Cloud. roles/gkeonprem.admin Facoltativo: necessario se vuoi creare cluster utilizzando i client dell'API GKE On-Prem o configurare un cluster da gestire tramite l'API GKE On-Prem. roles/gkehub.viewer
roles/container.viewer(Facoltativo) Occorre se vuoi accedere alle pagine GKE Enterprise e Google Kubernetes Engine nella console Google Cloud. Per informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Abilita API
Nel progetto Google Cloud associato devono essere abilitate diverse API Google. Google Distributed Cloud utilizza le API durante la creazione dei cluster. Le API sono necessarie anche per mantenere una connessione a Google Cloud. La connessione a Google Cloud consente a Google Distributed Cloud di utilizzare Cloud Logging e Cloud Monitoring e funzionalità di gestione del parco risorse come Cloud Service Mesh, Config Sync, Policy Controller e Config Controller.
Se utilizzerai lo strumento bmctl
per creare cluster, puoi includere il flag --enable-apis
quando esegui bmctl create config
e bmctl
attiverà le API elencate nel seguente comando gcloud services enable
. Se utilizzerai un client API GKE On-Prem per creare un cluster di amministrazione o un cluster utente, devi attivare le API prima di creare il cluster.
Per abilitare le API, esegui i seguenti comandi:
Accedi a Google Cloud CLI:
gcloud auth login
Abilita le seguenti API:
gcloud services enable --project=PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ compute.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ kubernetesmetadata.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ storage.googleapis.com
Ad eccezione di
gkeonprem.googleapis.com
, queste API di Google sono obbligatorie per il tuo progetto. Le due API riportate di seguito sono obbligatorie solo per la versione 1.29 e successive:compute.googleapis.com
kubernetesmetadata.googleapis.com
Se installi i cluster dietro un proxy, devi aggiungere molte di queste API all'elenco delle connessioni consentite. Per un elenco di API ed endpoint che devi aggiungere alla lista consentita e la motivazione del loro accesso, consulta Installare dietro un proxy .
Per vedere quali API e servizi sono abilitati nel tuo progetto, esegui il seguente comando:
gcloud services list --project=PROJECT_ID \ --enabled
Configura account di servizio
Per utilizzare le API Google, Google Distributed Cloud richiede un account di servizio configurato con ruoli IAM specifici nel progetto Google Cloud associato. Come best practice, devi creare account di servizio separati per scopi diversi, in particolare negli ambienti di produzione.
Se utilizzi lo strumento bmctl
per creare i cluster, puoi includere il flag --create-service-accounts
quando esegui bmctl create config
per fare in modo che bmctl
crei gli account di servizio con i ruoli IAM richiesti.
Se utilizzerai un client API GKE On-Prem per creare un cluster di amministrazione, per impostazione predefinita il comando bmctl register bootstrap
crea gli account di servizio con i ruoli IAM richiesti quando esegui il comando per creare un cluster di bootstrap.
Gli account di servizio sono necessari anche per la creazione dei cluster utente, ma sono stati creati e configurati durante la creazione del cluster di amministrazione che gestisce i cluster utente.
La tabella seguente descrive gli account di servizio creati automaticamente:
Service account | Finalità | Ruoli |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud utilizza questo account di servizio per scaricare immagini container da Container Registry. | Nessuno |
anthos-baremetal-connect | L'agente Connect utilizza questo account di servizio per mantenere una connessione tra il cluster e Google Cloud. In questo modo puoi accedere alle funzionalità di gestione del cluster e dei carichi di lavoro, tra cui la console Google Cloud e il gateway di connessione, per interagire con il cluster. | roles/gkehub.connect |
anthos-baremetal-register | L'agente Connect utilizza questo account di servizio per registrare i cluster in un parco risorse. | roles/gkehub.admin |
anthos-baremetal-cloud-ops | L'agente Stackdriver utilizza questo account di servizio per esportare log e metriche dai cluster in Cloud Logging e 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 |
Configurare manualmente gli account di servizio
Se preferisci, puoi creare manualmente gli account di servizio, configurarli con i ruoli necessari e scaricare i file delle chiavi JSON prima di creare i cluster.
Se utilizzi bmctl
per creare cluster, aggiungi i riferimenti ai file delle chiavi JSON al file di configurazione del cluster appropriato. Per un esempio, consulta Modificare il file di configurazione.
Se utilizzi un'API GKE On-Prem per creare un cluster di amministrazione, puoi
specificare i file di chiavi
quando esegui bmctl register bootstrap
per creare il cluster di bootstrap.
Per creare gli account di servizio e i file delle chiavi:
Nella workstation di amministrazione, assicurati di essere nella directory
baremetal
.Se non l'hai ancora fatto, accedi a Google Cloud CLI:
gcloud auth login
Crea gli account di servizio:
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
Concedi i ruoli IAM richiesti agli account di servizio:
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"
Scarica i file delle chiavi 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 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
Configura un account di servizio che possa accedere a un bucket Cloud Storage
Utilizzi un account di servizio e un file di chiavi per accedere a Cloud Storage. Puoi utilizzare questo account di servizio per consentire il caricamento automatico degli snapshot dei cluster nei bucket Cloud Storage o per importare le immagini delle macchine virtuali (VM) dai bucket Cloud Storage per utilizzarle con il runtime VM su GDC.
Per creare l'account di servizio e il file della chiave:
Assicurati di essere nella directory
baremetal
.Se non l'hai ancora fatto, accedi a Google Cloud CLI:
gcloud auth login
Se non l'hai già fatto, abilita l'API Cloud Storage
storage.googleapis.com
nel tuo progetto Google Cloud:gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
Crea un account di servizio che il tuo cluster possa utilizzare per accedere ai bucket Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID
Sostituisci
SA_NAME
con il nome del nuovo account di servizio. Questo nome dell'account di servizio viene visualizzato nell'indirizzo email di cui viene eseguito il provisioning durante la creazione, nel formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
.Crea un ruolo personalizzato con le seguenti autorizzazioni:
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
Sostituisci
ROLE_ID
con il nome del nuovo ruolo personalizzato, ad esempiosnapshotUpload
. Il percorso completo di questo ruolo personalizzato ha il formatoprojects/PROJECT_ID/roles/ROLE_ID
.Aggiungi un'associazione di criteri all'account di servizio:
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'
Scarica il file JSON della chiave dell'account di servizio:
gcloud iam service-accounts keys create OUTPUT_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Per ulteriori informazioni su come creare snapshot del cluster e caricarli automaticamente in un bucket Cloud Storage, consulta Creare snapshot per contribuire a diagnosticare i problemi del cluster.
Per ulteriori informazioni su come importare le immagini VM da Cloud Storage, consulta Creare e utilizzare le credenziali per importare le immagini da Cloud Storage per l'esecuzione di VM su GDC.