Configurazione del progetto e del cluster GKE in autonomia
Quando installi Cloud Service Mesh utilizzando
asmcli
, può
il tuo progetto e il tuo cluster GKE on Google Cloud
se includi il flag --enable_all
o il flag più granulare
contrassegni di abilitazione.
Se preferisci eseguire la configurazione autonomamente anziché chiedere a asmcli
di
le modifiche, segui la procedura descritta in questa pagina.
Se hai già installato una versione precedente di Cloud Service Mesh, non
devi apportare modifiche al progetto o al cluster prima di utilizzare
asmcli
per eseguire l'upgrade alla versione più recente
Versione Cloud Service Mesh.
Per impostazione predefinita, asmcli
non installa istio-ingressgateway
. Me
ti consigliamo di eseguire il deployment del piano di controllo e dei gateway e di gestirlo separatamente.
Cloud Service Mesh supporta l'inserimento automatico per i deployment dei gateway,
Upgrade di Cloud Service Mesh più semplici. Dopo aver eseguito l'upgrade di Cloud Service Mesh, riavvii
come i tuoi servizi, per scegliere la nuova configurazione del piano di controllo.
Per ulteriori informazioni, vedi
Installazione e upgrade dei gateway.
Prima di iniziare
- Esamina i prerequisiti e i requisiti
- Pianifica l'installazione oppure l'upgrade
- Installa gli strumenti necessari
Configura il progetto
Ottieni l'ID per il progetto in cui è stato creato il cluster.
gcloud
Esegui questo comando:
gcloud projects list
Console
Vai alla pagina Dashboard nella nella console Google Cloud.
Fai clic sull'elenco a discesa nella parte superiore della pagina. Nella Nella finestra visualizzata, seleziona il tuo progetto Seleziona da.
L'ID progetto viene visualizzato nella dashboard del progetto Informazioni sul 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 progetto, disponi di tutte le autorizzazioni necessarie per completare l'installazione. Se non sei un proprietario del progetto, devi avere qualcuno che sia di assegnarti i seguenti ruoli IAM specifici. Nella seguente comando, 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 esegueasmcli
, imposterà automaticamente 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 disattivato meshconfig.googleapis.com
Cloud Service Mesh utilizza l'API Mesh Configuration per inoltrare i dati di configurazione dal mesh a Google Cloud. Inoltre, l'abilitazione dell'API di configurazione mesh consente di accedere alle pagine di Cloud Service Mesh nella console Google Cloud e di utilizzare l'autorità di certificazione Cloud Service Mesh. No meshca.googleapis.com
Contenuti correlati all'autorità di certificazione Cloud Service Mesh utilizzata da Cloud Service Mesh gestito. No container.googleapis.com
Necessaria per creare cluster Google Kubernetes Engine (GKE). No gkehub.googleapis.com
Necessario per gestire il mesh come parco risorse. No monitoring.googleapis.com
Necessaria per acquisire dati di telemetria per i carichi di lavoro mesh. No stackdriver.googleapis.com
Necessaria per utilizzare l'UI dei Servizi. No opsconfigmonitoring.googleapis.com
Richiesta per utilizzare l'interfaccia utente di Services per i cluster esterni a Google Cloud. No connectgateway.googleapis.com
Obbligatorio per consentire al piano di controllo Cloud Service Mesh gestito 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 un minuto o più. Quando le API sono attivate, verrà 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
, abilita le API richieste per tuo conto.
Configurazione del cluster
Se includi il flag --enable_all
o uno dei flag più granulari
flag di abilitazione,
asmcli
configura il cluster per te.
Imposta la zona o la regione predefinite per Google Cloud CLI. Se non imposti il valore predefinito qui, assicurati di specificare
--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
Attiva Identità carico di lavoro:
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 progetto in modo da prepararlo per l'installazione. Tra le altre cose, questo comando crea un account di servizio per consentire ai componenti del piano dati, come come proxy sidecar, puoi accedere in modo sicuro ai dati e alle risorse del progetto. Nel comando seguente 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:
{}
Attiva 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
.