Questa pagina descrive le Google Cloud risorse che devi creare e configurare prima di creare i cluster.
Prima di iniziare
Se non hai il ruolo Google Cloud Project Owner, chiedi a un Project Owner di concederti i seguenti ruoli Identity and Access Management (IAM):
Ruolo Finalità roles/compute.viewer Obbligatorio: necessario quando bmctlconvalida il campo clusterOperations.location nel file di configurazione del cluster.roles/iam.serviceAccountAdmin Obbligatorio: necessario per creare i service account richiesti da Google Distributed Cloud richiede. roles/iam.securityAdmin Obbligatorio: necessario per concedere i ruoli IAM ai service account richiesti da Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Obbligatorio: necessario per creare i file della chiave JSON per i service account richiesti da Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Obbligatorio: necessario per abilitare le API di Google richieste da Google Distributed Cloud richiede. 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) Necessario se vuoi accedere alle pagine GKE nella Google Cloud console. Per informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Abilita API
Nel progetto associato devono essere abilitate diverse API di Google. Google Cloud 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 le funzionalità del parco risorse come Cloud Service Mesh, Config Sync, Policy Controller e Config Controller.
Se utilizzi lo strumento bmctl per creare i cluster, puoi includere il
flag --enable-apis quando esegui bmctl create config, e bmctl abiliterà
le API elencate nel seguente comando gcloud services enable. Se utilizzi un client API GKE On-Prem per creare un cluster di amministrazione o un cluster utente, devi abilitare 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.comAd eccezione di
gkeonprem.googleapis.com, queste API di Google sono obbligatorie per il tuo progetto. Le seguenti due API sono obbligatorie solo per la versione 1.29 e successive:compute.googleapis.comkubernetesmetadata.googleapis.com
Se installi i cluster dietro un proxy, devi aggiungere molte di queste API all'elenco delle connessioni consentite. Per un elenco delle API e degli endpoint che devi aggiungere alla lista consentita e la motivazione del loro accesso, consulta Installare dietro un proxy .
Per visualizzare le API e i servizi abilitati nel tuo progetto, esegui il seguente comando:
gcloud services list --project=PROJECT_ID \ --enabled
Configura account di servizio
Per utilizzare le API di Google, Google Distributed Cloud richiede un service account configurato con ruoli IAM specifici nel progetto associato Google Cloud . Come best practice, ti consigliamo di creare service account 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 i service account con i ruoli IAM richiesti.
Se utilizzi un client dell'API GKE On-Prem per creare un cluster di amministrazione, per
impostazione predefinita il comando bmctl register bootstrap crea i service account con
i ruoli IAM richiesti quando esegui il comando per
creare un cluster di bootstrap.
I service account sono necessari anche per la creazione del cluster utente, ma sarebbero stati creati e configurati durante la creazione del cluster di amministrazione che gestisce i cluster utente.
La seguente tabella descrive i service account creati automaticamente:
| Service account | Finalità | Ruoli |
|---|---|---|
| anthos-baremetal-gcr | Google Distributed Cloud utilizza questo account di servizio per scaricare immagini container da Artifact 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 è possibile accedere al cluster e alle funzionalità di gestione dei carichi di lavoro, inclusa la Google Cloud console e il gateway Connect 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 a 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 |
Configura manualmente i service account
Se preferisci, puoi creare manualmente i service account, configurarli con i ruoli necessari e scaricare i file chiave JSON prima di creare i cluster.
Se utilizzi bmctl per creare i cluster, aggiungi i riferimenti ai file della chiave 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 della chiave
quando esegui bmctl register bootstrap per creare il cluster di bootstrap.
Per creare i service account e i file della chiave:
Nella workstation di amministrazione, assicurati di trovarti nella directory
baremetal.Se non l'hai ancora fatto, accedi a Google Cloud CLI:
gcloud auth login
Crea i service account:
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_IDConcedi i ruoli IAM richiesti nei service account:
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 della chiave JSON 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 può accedere a un bucket Cloud Storage
Utilizzi un account di servizio e un file della chiave 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 immagini di macchine virtuali (VM) dai bucket Cloud Storage per l'utilizzo con VM Runtime su GDC.
Per creare il account di servizio e il file della chiave, completa i seguenti passaggi:
Assicurati di trovarti nella directory
baremetal.Se non l'hai ancora fatto, accedi a Google Cloud CLI:
gcloud auth loginSe non è già abilitata, abilita l'API Storage di Cloud Storage,
storage.googleapis.comnel tuo Google Cloud progetto:gcloud services enable --project=PROJECT_ID \ storage.googleapis.comCrea un account di servizio che il cluster possa utilizzare per accedere ai bucket Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_IDSostituisci
SA_NAMEcon il nome del nuovo account di servizio. Questo nome del 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.createstorage.buckets.getstorage.buckets.liststorage.objects.createresourcemanager.projects.get
gcloud iam roles create ROLE_ID \ --permissions=storage.buckets.create,storage.buckets.get,storage.buckets.list,storage.objects.create \ --project=PROJECT_IDSostituisci
ROLE_IDcon 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 binding dei criteri al 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 della chiave JSON account di servizio:
gcloud iam service-accounts keys create OUTPUT_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Per saperne di più su come creare snapshot dei cluster e caricarli automaticamente in un bucket Cloud Storage, consulta Creare snapshot per diagnosticare i problemi del cluster.
Per saperne di più su come importare immagini VM da Cloud Storage, consulta Creare e utilizzare le credenziali per importare immagini da Cloud Storage per VM Runtime su GDC.