Questa pagina descrive le risorse Google Cloud necessarie per creare prima di creare i cluster.
Prima di iniziare
Creare un progetto Google Cloud e un account di fatturazione.
Se non sei proprietario di un progetto Google Cloud, devi avere un proprietario assegnarti i seguenti ruoli IAM (Identity and Access Management):
Ruolo Finalità roles/compute.viewer Obbligatorio: necessario quando bmctl
convalida clusterOperations.location nel file di configurazione del cluster.roles/iam.serviceAccountAdmin Obbligatorio: necessario per creare gli account di servizio che Google Distributed Cloud richiede. roles/iam.securityAdmin Obbligatorio: necessario per concedere i ruoli IAM al servizio richiesti da Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Obbligatorio: necessario per creare file chiave JSON per gli account di servizio che di Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Obbligatorio: necessario per abilitare le API di Google che Google Distributed Cloud richiede. roles/gkeonprem.admin (Facoltativo) Necessario se vuoi creare cluster utilizzando l'API GKE On-Prem o configurare una da gestire mediante l'API GKE On-Prem. roles/gkehub.viewer
roles/container.viewer(Facoltativo) Necessaria se vuoi accedere a GKE Enterprise e pagine di Google Kubernetes Engine nella console Google Cloud. Per informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Abilita API
Devono essere abilitate diverse API di Google nel progetto Google Cloud associato. Google Distributed Cloud utilizza le API durante la creazione dei cluster. Le API era necessario anche per mantenere una connessione a Google Cloud. La connessione a Google Cloud consente a Google Distributed Cloud di utilizzare Cloud Logging Cloud Monitoring e funzionalità del parco risorse come Cloud Service Mesh, Config Sync Policy Controller e Config Controller.
Se utilizzerai lo strumento bmctl
per creare cluster, puoi includere
--enable-apis
quando esegui bmctl create config
, mentre bmctl
abilitare le API elencate nel comando gcloud services enable
seguente. Se
utilizzerai 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 questi 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 richiesta per il tuo progetto. Per la versione sono necessarie le due API seguenti Solo 1.29 e versioni 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 devi aggiungerli alla lista consentita e la motivazione del loro accesso, vedi Installazione con un proxy .
Per vedere quali API e servizi sono abilitati nel tuo progetto, esegui questo comando: :
gcloud services list --project=PROJECT_ID \ --enabled
Configura account di servizio
Per utilizzare le API di Google, Google Distributed Cloud richiede un account di servizio configurato con specifiche Ruoli IAM nel progetto Google Cloud associato. Come migliore è consigliabile creare account di servizio separati per scopi diversi, in particolare in ambienti di produzione.
Se utilizzerai lo strumento bmctl
per creare cluster, puoi includere
il flag --create-service-accounts
quando esegui bmctl create config
per avere
bmctl
creano 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 account di servizio
i ruoli IAM richiesti quando esegui il comando
creando un cluster di bootstrap.
Gli account di servizio sono necessari anche per la creazione del cluster utente, saranno stati creati e configurati durante la creazione dell'amministratore. che gestisce i cluster utente.
Nella tabella seguente sono descritti gli account di servizio creati automaticamente:
Account di servizio | Finalità | Ruoli |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud utilizza questo account di servizio per scaricare le immagini container da Container Registry. | Nessuno |
anthos-baremetal-connect | Agente Connect utilizza questo account di servizio per mantenere una connessione tra il cluster e in Google Cloud. Ciò consente l'accesso al cluster e alla gestione dei carichi di lavoro tra cui la console Google Cloud e connetti gateway di interagire con il tuo cluster. | ruoli/gkehub.connect |
anthos-baremetal-register | L'agente Connect utilizza questo account di servizio per registrare i cluster con 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. |
ruoli/logging.logWriter roles/monitoring.metricWriter roles/stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer ruoli/monitoring.dashboardEditor roles/monitoring.viewer roles/serviceusage.serviceUsageViewer roles/kubernetesmetadata.publisher |
Configurare gli account di servizio manualmente
Se preferisci, puoi creare manualmente gli account di servizio, configurarli con
i ruoli necessari e scaricare i file chiave JSON prima di creare i cluster.
Se utilizzi bmctl
per creare cluster, aggiungi riferimenti alla
JSON dei file di chiave al file di configurazione del cluster appropriato. Ad esempio,
consulta la sezione Modifica del file di configurazione.
Se utilizzi un'API GKE On-Prem per creare un cluster di amministrazione, puoi
specificare i file chiave
quando esegui bmctl register bootstrap
per creare il cluster di bootstrap.
Per creare gli account di servizio e i file delle chiavi:
Sulla workstation di amministrazione, assicurati di essere nella directory
baremetal
.Se non lo hai già 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
Configurare un account di servizio in grado di accedere a un bucket Cloud Storage
Puoi utilizzare un account di servizio e un file della chiave per accedere a Cloud Storage. Puoi utilizzare questo account di servizio per abilitare snapshot dei cluster in bucket Cloud Storage o per importare immagini di macchine virtuali (VM) dai bucket Cloud Storage per l'uso con il runtime VM su GDC.
Per creare l'account di servizio e il file della chiave, completa i seguenti passaggi:
Assicurati di essere nella directory
baremetal
.Se non lo hai già fatto, accedi a Google Cloud CLI:
gcloud auth login
Se non lo è già, 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 utilizzabile dal cluster per accedere 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 il nome dell'account di servizio appare nell'indirizzo email di cui è stato eseguito il provisioning del deployment, 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 di chiave JSON dell'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 del cluster e caricarli in un bucket Cloud Storage, Crea snapshot per diagnosticare i problemi del cluster.
Per saperne di più su come importare immagini VM da Cloud Storage, consulta Crea e utilizza le credenziali per importare immagini da Cloud Storage per il runtime VM su GDC.