Se installi Anthos Service Mesh utilizzando asmcli
, l'app può 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é chiedere a asmcli
di apportare le
modifiche, segui i passaggi indicati in questa pagina.
Se hai già installato una versione precedente di Anthos Service Mesh, non devi apportare alcuna modifica 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 gateway, che semplifica gli upgrade di Anthos Service Mesh. Dopo aver eseguito l'upgrade di Anthos Service Mesh, riavvii i gateway come per i servizi per utilizzare la nuova configurazione del piano di controllo.
Per ulteriori 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 e il numero del 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, scegli il tuo progetto.
L'ID e il numero del progetto sono visualizzati nella scheda Informazioni sul progetto della dashboard del progetto.
Crea le seguenti variabili di ambiente:
Imposta il pool di carichi di lavoro utilizzando l'ID progetto:
export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
Imposta l'ID mesh utilizzando il numero di progetto:
export MESH_ID="proj-PROJECT_NUMBER"
Imposta i ruoli IAM (Identity and Access Management) richiesti. Se sei un proprietario di progetto, disponi di tutte le autorizzazioni necessarie per completare l'installazione. Se non sei un proprietario del progetto, è necessaria una persona che ti conceda i ruoli IAM specifici riportati di seguito. Nel 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 eseguiasmcli
, questo imposta i ruoli IAM richiesti per te.Abilita le seguenti API di Google.
gcloud services enable \ --project=PROJECT_ID \ container.googleapis.com \ compute.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ cloudtrace.googleapis.com \ meshca.googleapis.com \ meshtelemetry.googleapis.com \ meshconfig.googleapis.com \ iamcredentials.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ cloudresourcemanager.googleapis.com \ stackdriver.googleapis.com \ connectgateway.googleapis.com
L'abilitazione delle API può richiedere un minuto o più. Quando le API sono abilitate, vedrai 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
, questo 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
in 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
Imposta l'etichetta
mesh_id
sul cluster. Se nel cluster esistono già etichette che vuoi conservare, devi includerle quando aggiungi l'etichettamesh_id
.Per verificare se il cluster ha etichette esistenti:
gcloud container clusters describe CLUSTER_NAME \ --project PROJECT_ID
Cerca il campo
resourceLabels
nell'output. Ogni etichetta viene archiviata in una riga separata sotto il camporesourceLabels
, ad esempio:resourceLabels: csm: '' env: dev release: stable
Per praticità, puoi aggiungere le etichette a una variabile di ambiente. Nel seguente, sostituisci
YOUR_EXISTING_LABELS
con un elenco separato da virgole delle etichette esistenti sul tuo cluster nel formatoKEY=VALUE
, ad esempio:env=dev,release=stable
export EXISTING_LABELS="YOUR_EXISTING_LABELS"
Imposta l'etichetta
mesh_id
:Se nel cluster esistono etichette che vuoi conservare, aggiorna il cluster con
mesh_id
e le etichette esistenti:gcloud container clusters update CLUSTER_NAME \ --project PROJECT_ID \ --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
Se il cluster non ha etichette esistenti, aggiorna il cluster solo con l'etichetta
mesh_id
:gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --update-labels=mesh_id=${MESH_ID}
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 progetto per prepararlo per l'installazione. Tra le altre cose, questo comando crea un account di servizio per consentire ai componenti del piano dati, come 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
.