Configurazione del progetto e del cluster GKE in autonomia
Quando installi Anthos Service Mesh utilizzando asmcli
, puoi configurare il progetto e il cluster GKE su Google Cloud per te se includi il flag --enable_all
o i flag di abilitazione più granulari.
Se preferisci eseguire la configurazione autonomamente anziché lasciare che sia asmcli
ad apportare le
modifiche, segui i passaggi descritti in questa pagina.
Se hai già installato una versione precedente di Anthos Service Mesh, non è necessario apportare modifiche al progetto o al cluster prima di utilizzare asmcli
per eseguire l'upgrade alla versione più recente di Anthos Service Mesh.
Per impostazione predefinita, asmcli
non installa istio-ingressgateway
. Ti consigliamo di eseguire il deployment e la gestione del piano di controllo e dei gateway separatamente.
Anthos Service Mesh supporta l'inserimento automatico per i deployment dei gateway, il che semplifica gli upgrade di Anthos Service Mesh. Dopo aver eseguito l'upgrade di Anthos Service Mesh, devi riavviare i gateway
come per i servizi per passare alla nuova configurazione del piano di controllo.
Per maggiori informazioni, consulta
Installazione e upgrade dei gateway.
Prima di iniziare
- Esamina i prerequisiti e i requisiti
- Pianifica l'installazione o l'upgrade
- Installare gli strumenti richiesti
Configura il progetto
Recupera l'ID per il progetto in cui è stato creato il cluster.
gcloud
Esegui questo comando:
gcloud projects list
Console
Vai alla pagina Dashboard nella console Google Cloud.
Fai clic sull'elenco a discesa nella parte superiore della pagina. Nella finestra Seleziona da visualizzata, seleziona il tuo progetto.
L'ID progetto viene visualizzato nella scheda Informazioni sul progetto della dashboard del progetto.
Crea una variabile di ambiente per il pool di carichi di lavoro utilizzando l'ID progetto:
export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
Imposta i ruoli IAM (Identity and Access Management) richiesti. Se sei un proprietario del progetto, disponi di tutte le autorizzazioni necessarie per completare l'installazione. Se non sei un proprietario del progetto, ti serve qualcuno che ti conceda i ruoli IAM specifici riportati di seguito. Nel comando seguente, sostituisci
PROJECT_ID
con l'ID progetto del passaggio precedente eGCP_EMAIL_ADDRESS
con l'account che utilizzi per accedere a Google Cloud.ROLES=( 'roles/servicemanagement.admin' \ 'roles/serviceusage.serviceUsageAdmin' \ 'roles/meshconfig.admin' \ 'roles/compute.admin' \ 'roles/container.admin' \ 'roles/resourcemanager.projectIamAdmin' \ 'roles/iam.serviceAccountAdmin' \ 'roles/iam.serviceAccountKeyAdmin' \ 'roles/gkehub.admin') for role in "${ROLES[@]}" do gcloud projects add-iam-policy-binding PROJECT_ID \ --member "user:GCP_EMAIL_ADDRESS" \ --role="$role" done
Se includi il flag
--enable_all
o--enable_gcp_iam_roles
quando eseguiasmcli
, questo imposterà per te i ruoli IAM richiesti.Abilita le API di Google richieste:
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.com
Oltre a
mesh.googleapis.com
, questo comando abilita anche le seguenti API:API Finalità Può essere disabilitato meshconfig.googleapis.com
Anthos Service Mesh utilizza l'API Mesh Configuration per inoltrare i dati di configurazione dal tuo mesh a Google Cloud. Inoltre, l'abilitazione dell'API Mesh Configuration consente di accedere alle pagine Anthos Service Mesh nella console Google Cloud e utilizzare l'autorità di certificazione Anthos Service Mesh (Mesh CA). No meshca.googleapis.com
Correlata all'autorità di certificazione Anthos Service Mesh utilizzata da Anthos Service Mesh gestito. No container.googleapis.com
Necessario per creare cluster Google Kubernetes Engine (GKE). No gkehub.googleapis.com
Necessario per gestire il mesh come un parco risorse. No monitoring.googleapis.com
Necessaria per acquisire la telemetria per i carichi di lavoro mesh. No stackdriver.googleapis.com
Obbligatorio per utilizzare l'interfaccia utente dei servizi. No opsconfigmonitoring.googleapis.com
Necessario per utilizzare l'UI dei servizi per cluster esterni a Google Cloud. No connectgateway.googleapis.com
Richiesto per consentire al piano di controllo gestito di Anthos Service Mesh di accedere ai carichi di lavoro mesh. Sì* trafficdirector.googleapis.com
Abilita un piano di controllo gestito scalabile e a disponibilità elevata. Sì* networkservices.googleapis.com
Abilita un piano di controllo gestito scalabile e a disponibilità elevata. Sì* networksecurity.googleapis.com
Abilita un piano di controllo gestito scalabile e a disponibilità elevata. Sì* L'abilitazione delle API può richiedere almeno un minuto. Quando le API sono abilitate, viene visualizzato un output simile al seguente:
Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished successfully.
Se includi il flag
--enable_all
o--enable_apis
quando eseguiasmcli
, quest'ultimo abilita automaticamente le API richieste.
Configurazione del cluster
Se includi il flag --enable_all
o uno dei
flag di abilitazione più granulari,
asmcli
configura il cluster per te.
Imposta la zona o la regione predefinita per Google Cloud CLI. Se non imposti il valore predefinito qui, assicurati di specificare l'opzione
--zone
o--region
nei comandigcloud container clusters
di questa pagina.Se hai un cluster a zona singola, imposta la zona predefinita:
gcloud config set compute/zone CLUSTER_LOCATION
Se hai un cluster a livello di regione, imposta la regione predefinita:
gcloud config set compute/region CLUSTER_LOCATION
Abilita Workload Identity:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}
L'abilitazione di Workload Identity può richiedere da 10 a 15 minuti.
Inizializza il tuo progetto per prepararlo all'installazione. Tra le altre cose, questo comando crea un account di servizio per consentire ai componenti del piano dati, ad esempio il proxy sidecar, di accedere in modo sicuro ai dati e alle risorse del tuo progetto. Nel seguente comando sostituisci
FLEET_PROJECT_ID
con il progetto host del parco risorse:curl --request POST \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Content-Type: application/json" \ --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.svc.id.goog","PROJECT_ID.svc.id.goog"]}' \ "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
Il comando risponde con parentesi graffe vuote:
{}
Abilita Cloud Monitoring e Cloud Logging su GKE:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
Il progetto e il cluster sono ora pronti per una nuova installazione utilizzando asmcli
.