Riferimento asmcli
Panoramica
asmcli è uno strumento fornito da Google che puoi utilizzare per installare o aggiornare Cloud Service Mesh. Se lo consenti, asmcli configurerà il progetto e il cluster nel seguente modo:
- Concede le autorizzazioni IAM (Identity and Access Management) richieste per il progettoGoogle Cloud .
- Abilita le API di Google richieste nel progetto Google Cloud .
- Imposta nel cluster un'etichetta che identifica il mesh.
- Crea un service account che consente ai componenti del piano dati, ad esempio il proxy sidecar, di accedere in modo sicuro ai dati e alle risorse del progetto.
- Registra il cluster nel parco risorse, se non è già registrato.
Includi il flag --enable_all quando esegui asmcli per consentire la configurazione
del progetto e del cluster. Per saperne di più sulle opzioni e sui flag di asmcli,
consulta il riferimento di asmcli.
In seguito, asmcli configura i file YAML con le informazioni sul progetto e sul cluster.
Questi file di configurazione sono necessari per installare il control plane di Cloud Service Mesh.
Se non hai mai utilizzato Cloud Service Mesh e Istio, vai direttamente a Piattaforme supportate. La sezione successiva ha lo scopo di aiutare gli utenti di Cloud Service Mesh esistenti a eseguire l'upgrade a 1.26.
Transizione a asmcli
asmcli sostituisce istioctl install e install_asm. Anche se
puoi ancora utilizzare gli strumenti legacy in Cloud Service Mesh 1.11, verranno deprecati gradualmente e non saranno più supportati in Cloud Service Mesh 1.12 e versioni successive.
Aggiorna gli script e gli strumenti per utilizzare asmcli.
Tutti i cluster devono essere registrati in un parco risorse. Per maggiori dettagli, consulta i requisiti del parco risorse.
Transizione da install_asm
Se hai familiarità con install_asm, asmcli è simile, ma con le seguenti differenze notevoli:
Viene utilizzato
asmcli installper nuove installazioni e nuovi upgrade. Non esiste un'opzione--modecome perinstall_asm. Quando eseguiasmcli install, viene verificato se esiste un control plane nel cluster. Se non esiste un control plane,asmcliinstalla Cloud Service Mesh. Se il cluster ha un control plane esistente (un control plane Cloud Service Mesh o un control plane Istio open source):Se l'etichetta di revisione nel control plane esistente non corrisponde all'etichetta di revisione del nuovo control plane,
asmcliesegue un upgrade canary.Se le etichette di revisione del control plane sono uguali,
asmcliesegue un upgrade in loco.
La maggior parte
asmclidelle opzioni e dei flag si comporta come quelli perinstall_asm.
Transizione da istioctl install
Se hai familiarità con istioctl install e di solito passi un file YAML IstioOperator tramite l'argomento della riga di comando -f per configurare il control plane, puoi passare il file a asmcli utilizzando l'opzione --custom_overlay. Nella documentazione di Cloud Service Mesh, questi file sono chiamati
file di overlay.
Piattaforme supportate
Le installazioni di Cloud Service Mesh nell'elenco delle piattaforme supportate possono essere configurate o aggiornate da asmcli.
Tuttavia, non tutte le funzionalità sono disponibili sulle piattaforme al di fuori di Google Cloud. Per maggiori dettagli, vedi Funzionalità supportate del control plane in-cluster.
Riferimento asmcli
Questa sezione descrive gli argomenti disponibili per asmcli.
Opzioni
Identifica il cluster Per identificare il cluster, hai a disposizione le seguenti opzioni:
Solo GKE
-p|--project_id CLUSTER_PROJECT_ID- L'ID progetto in cui è stato creato il cluster.
-n|--cluster_name CLUSTER_NAME- Il nome del cluster.
-l|--cluster_location CLUSTER_LOCATION- La zona (per i cluster a zona singola) o la regione (per i cluster regionali) in cui è stato creato il cluster.
Tutte le piattaforme
--kubeconfig KUBECONFIG_FILE
Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui.
--ctx|--context KUBE_CONTEXT
Il contesto kubeconfig da utilizzare. Se non specificato, asmcli utilizza il contesto predefinito.
-c|--ca {mesh_ca|gcp_cas|citadel}L'autorità di certificazione (CA) da utilizzare per gestire i certificati mutual TLS. Specifica
mesh_caper utilizzare l'autorità di certificazione Cloud Service Mesh,gcp_casper utilizzare Certificate Authority Service ocitadelper utilizzare Istio CA. Cloud Service Mesh gestito non supporta Istio CA. Per ulteriori informazioni, consulta le seguenti risorse:--channel CLOUD_SERVICE_MESH_CHANNELUtilizza
--channelcon un canale di rilascio Cloud Service Mesh specifico per eseguire il provisioning della revisione del control plane associata a quel canale di rilascio. Ad esempio--channel rapid,--channel regulare--channel stable. Questo flag è necessario quando configuri determinate funzionalità di Cloud Service Mesh sui cluster GKE Autopilot.
L'opzione --channel non è più supportata per Cloud Service Mesh gestito, come indicato nelle note di rilascio di CSM.
Il canale di rilascio viene determinato in base a quello del cluster GKE.
Per ulteriori informazioni, consulta Canali di rilascio di Cloud Service Mesh gestito.
--co|--custom_overlay OVERLAY_FILE- Utilizza
--custom_overlycon il nome di un file YAML (chiamato anche file di overlay) contenente la risorsa personalizzataIstioOperatorper configurare il control plane in-cluster. Specifica un file di overlay per abilitare una funzionalità che non è abilitata per impostazione predefinita. Cloud Service Mesh gestito non supporta l'APIIstioOperator, quindi non puoi utilizzare--custom_overlayper configurare il control plane gestito.asmclideve essere in grado di individuare il file di overlay, quindi deve trovarsi nella stessa directory diasmclioppure puoi specificare un percorso relativo. Per aggiungere più file, specifica--co|--custom_overlaye il nome file, ad esempio:--co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml --hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS- Se utilizzi cluster Amazon EKS collegati, utilizza
--hub-registration-extra-flagsper registrare il cluster nel parco risorse, se non è già registrato. -k|--key_file FILE_PATH- Il file della chiave per un service account. Ometti questa opzione se non utilizzi un service account.
--network_id NETWORK_ID- Utilizza
--network_idper impostare l'etichettatopology.istio.io/networkapplicata allo spazio dei nomiistio-system. Per GKE,--network_idcorrisponde per impostazione predefinita al nome della rete per il cluster. Per gli altri ambienti, verrà utilizzatodefault. -o|--option OVERLAY_FILEIl nome del file di overlay (senza l'estensione
.yaml) cheasmcliscarica dal repositoryanthos-service-meshper abilitare una funzionalità facoltativa. Per usare--optionè necessaria una connessione a internet. Le opzioni--optione--custom_overlaysono simili, ma hanno un comportamento leggermente diverso:Utilizza
--custom_overlayquando devi modificare le impostazioni nel file di overlay.Utilizza
--optionper abilitare una funzionalità che non richiede modifiche al file di overlay, ad esempio per configurare le policy di audit per i servizi.
Per aggiungere più file, specifica
-o|--optione il nome file, ad esempio:-o option_file1 -o option_file2 -o option_file3-D|--output_dir DIR_PATHSe non specificato,
asmclicrea una directory temporanea in cui scarica i file e le configurazioni necessari per installare Cloud Service Mesh. Specifica il flag--output-dirper specificare un percorso relativo a una directory da utilizzare in alternativa. Al termine, la directory specificata contiene le sottodirectoryasmeistio-1.26.7-asm.1. La directoryasmcontiene la configurazione per l'installazione. La directoryistio-1.26.7-asm.1include i contenuti estratti del file di installazione, che contieneistioctl, esempi e manifest. Se specifichi--output-dire la directory contiene già i file necessari,asmcliutilizza questi file anziché scaricarli di nuovo.--platform PLATFORM {gcp|multicloud}La piattaforma o il provider del cluster Kubernetes. Il valore predefinito è
gcp(per i cluster GKE). Per tutte le altre piattaforme, utilizzamulticloud.-r|--revision_name REVISION NAMEUn'etichetta di revisione è una coppia chiave-valore impostata sul control plane. La chiave dell'etichetta di revisione è sempre
istio.io/rev. Per impostazione predefinita,asmcliimposta il valore dell'etichetta di revisione in base alla versione di Cloud Service Mesh, ad esempio:asm-1267-1. Includi questa opzione se vuoi sostituire il valore predefinito e specificarne uno personalizzato. L'argomentoREVISION NAMEdeve essere un'etichetta DNS-1035. Ciò significa che il nome deve:- contenere al massimo 63 caratteri
- contenere solo caratteri alfanumerici minuscoli o '-'
- iniziare con un carattere alfabetico
- terminare con un carattere alfanumerico
L'espressione regolare utilizzata per la convalida è: '[a-z]([-a-z0-9]*[a-z0-9])?'
-s|--service_account ACCOUNT- Il nome di un service account utilizzato per installare Cloud Service Mesh. Se non specificato, viene utilizzato l'account utente attivo nella configurazione
gcloudcorrente. Se devi modificare l'account utente attivo, esegui gcloud auth login.
Opzioni per il certificato personalizzato Istio CA
Se hai specificato --ca citadel e utilizzi una CA personalizzata, includi le seguenti opzioni:
--ca_cert FILE_PATH: il certificato intermedio--ca_key FILE_PATH: la chiave del certificato intermedio--root_cert FILE_PATH: il certificato radice--cert_chain FILE_PATH: la catena di certificati
Per ulteriori informazioni, consulta Inserimento di certificati CA esistenti.
Flag di abilitazione
I flag che iniziano con --enable consentono a asmcli di abilitare le API Google richieste, impostare le autorizzazioni IAM (Identity and Access Management) richieste e aggiornare il cluster. Se preferisci, puoi
aggiornare il progetto e il cluster autonomamente
prima di eseguire asmcli. Tutti i flag di abilitazione non sono compatibili con
asmcli validate. Se specifichi un flag di abilitazione quando esegui
asmcli validate, il comando termina con un errore.
-e|--enable_all- Consenti a
asmclidi eseguire tutte le singole azioni di abilitazione descritte di seguito. --enable_cluster_roles- Consenti a
asmclidi tentare di associare l'utente o il service account che esegueasmclial ruolocluster-adminnel cluster. Google Cloudasmclidetermina l'account utente dal comandogcloud config get core/account. Se eseguiasmclilocalmente con un account utente, assicurati di chiamare il comandogcloud auth loginprima di eseguireasmcli. Se devi modificare l'account utente, esegui il comandogcloud config set core/account GCP_EMAIL_ADDRESSdove GCP_EMAIL_ADDRESS è l'account che utilizzi per accedere a Google Cloud. --enable_cluster_labels- Consenti a
asmclidi impostare le etichette del cluster richieste. --enable_gcp_componentsConsenti a
asmclidi abilitare i seguenti servizi e componenti gestiti da Google Cloud richiesti:Workload Identity, che consente alle applicazioni GKE di accedere in modo sicuro ai servizi Google Cloud.
Abilita la funzionalità Cloud Service Mesh nel progetto del parco risorse. Richiesto da asmcli 1.25 o versioni successive per il provisioning del controller dei servizi canonici gestito.
--enable_gcp_apisConsenti a
asmclidi abilitare tutte le API di Google richieste.--enable_gcp_iam_rolesConsenti a
asmclidi impostare le autorizzazioni IAM richieste.--enable_meshconfig_initConsenti allo script di inizializzare l'endpoint meshconfig per tuo conto. Implicito da
--enable_gcp_componentse--managed.--enable_namespace_creationConsenti a
asmclidi creare lo spazio dei nomi radiceistio-system.--enable_registrationConsenti a
asmclidi registrare il cluster nel progetto in cui si trova. Se non includi questo flag, segui i passaggi descritti in Registrazione di un cluster per registrare manualmente il cluster. Tieni presente che, a differenza degli altri flag di abilitazione,--enable_registrationè incluso in--enable_allsolo se specifichi un'opzione (ad esempio--option hub-meshca) che richiede la registrazione del cluster. In caso contrario, devi specificare questo flag separatamente.
Altri flag
--dry_run- Stampa i comandi, ma non eseguirli.
--fleet_id- Registra un cluster in un parco risorse utilizzando l'ID progetto host del parco risorse. Questo flag è obbligatorio per i cluster nonGoogle Cloud . Se non viene fornito per i clusterGoogle Cloud , viene utilizzato l'ID progetto del cluster. Puoi eseguire
asmcli installinsieme a--fleet_idprima dell'installazione o come parte dell'installazione passando i flag--enable-registratione--fleet-id. Questa impostazione non può essere modificata dopo la configurazione. --managed- Deprecato. Esegui il provisioning di un control plane gestito remoto anziché installarne uno in-cluster.
--offline- Esegui un'installazione offline utilizzando il pacchetto pre-scaricato nella directory di output. Se la directory non è specificata o non contiene i file richiesti, lo script verrà chiuso con un errore.
--only_enable- Esegue i passaggi specificati per configurare l'utente o il cluster corrente, ma non installa nulla.
--only_validate- Esegui la convalida, ma non aggiorna il progetto o il cluster e non installa Cloud Service Mesh. Questo flag non è compatibile con i
flag di abilitazione.
asmclitermina con un errore se specifichi--only_validatecon qualsiasi flag di abilitazione. --print_config- Anziché installare Cloud Service Mesh, stampa tutto il file YAML compilato nell'output standard (stdout). Tutti gli altri output vengono scritti nell'errore standard (stderr), anche se normalmente andrebbero in stdout.
asmclisalta tutte le convalide e la configurazione quando specifichi questo flag. --disable_canonical_service- Deprecato. Il controller dei servizi canonici gestito viene sempre sottoposto a provisioning.
-h|--help- Mostra un messaggio di aiuto che descrive le opzioni e i flag ed esce.
--use_managed_cni- Utilizza la CNI gestita. Se questo flag non viene passato,
asmcliapplicherà i manifest CNI statici. --use_vpcsc- Se l'organizzazione applica
Controlli di servizio VPC per il progetto, devi
configurare Cloud Service Mesh gestito con il flag
--use_vpcsc. In caso contrario, l'installazione non supererà i controlli di sicurezza. -v|--verbose- Durante l'esecuzione di
asmcli, viene stampato il comando che verrà eseguito successivamente. Con il flag--verbose,asmclistampa il comando anche dopo l'esecuzione. --version- Stampa la versione di
asmclied esce. Se non hai l'ultima versione, puoi scaricare l'ultima versione diasmcli_1.26.