Riferimento

Questa pagina descrive gli argomenti disponibili dello script e fornisce dettagli sulle modifiche apportate dallo script al progetto e al cluster GKE.

Opzioni

-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 a livello di regione) in cui è stato creato il cluster.
-m|--mode {install|migrate|upgrade}

Puoi utilizzare --mode install per una nuova installazione, upgrade o migrazione da Istio. Quando utilizzi --mode install per gli upgrade o le migrazioni, install_asm consente l'upgrade/la migrazione a prescindere dalla versione del piano di controllo sul cluster. I flag migrate e upgrade consentono solo upgrade o migrazioni dalla versione secondaria precedente o da una versione patch precedente.

Se utilizzi --mode install per gli upgrade o le migrazioni, assicurati di specificare la stessa autorità di certificazione (CA) attualmente abilitata sul cluster. La modifica della CA comporterà un tempo di inattività. Il flag --upgrade non consente di modificare la CA, impedendo tempi di inattività involontari.

Se stai eseguendo la migrazione da Istio, puoi modificare la CA e abilitare l'autorità di certificazione Anthos Service Mesh (Mesh CA). Se non riesci a pianificare il tempo di inattività per la migrazione a Mesh CA, sarà ancora disponibile un percorso di migrazione a Mesh CA, ma saranno necessari passaggi aggiuntivi. Per i dettagli, consulta Migrazione a Mesh CA.

-c|--ca {mesh_ca|citadel}

Per le nuove installazioni, se vuoi utilizzare Mesh CA, non devi includere questa opzione perché l'impostazione predefinita dello script è mesh CA. Per gli upgrade, non è necessario includere questa opzione perché lo script non consente di modificare la CA. Per le migrazioni, devi specificare citadel o mesh_ca. Se puoi pianificare il tempo di riposo per la migrazione, ti consigliamo di utilizzare mesh_ca. Per scoprire di più su quale CA utilizzare, consulta Scegliere un'autorità di certificazione. Per ulteriori opzioni che devi specificare quando utilizzi Istio CA, consulta Opzioni per il certificato personalizzato CA Istio.

--co|--custom_overlay YAML_FILE

Il nome del file YAML della risorsa personalizzata (CR) IstioOperator per abilitare una funzionalità non abilitata per impostazione predefinita. Lo script deve essere in grado di individuare il file YAML, quindi il file deve trovarsi nella stessa directory dello script oppure puoi specificare un percorso relativo. Per aggiungere più file, specifica --co|--custom_overlay e il nome del file, ad esempio: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml

-o|--option OPTION_FILE

Il nome di un file YAML del pacchetto anthos-service-mesh che contiene la RP IstioOperator per abilitare una funzionalità facoltativa. Quando includi uno di questi file, non è necessario scaricare prima il pacchetto anthos-service-mesh e non specifichi l'estensione .yaml. Se devi modificare uno qualsiasi dei file, scarica il pacchetto anthos-service-mesh, apporta le modifiche e utilizza l'opzione --custom_overlay. Per aggiungere più file, specifica -o|--option e il nome del file, ad esempio: -o option_file1 -o option_file2 -o option_file3

-D|--output_dir DIR_PATH

Se non specificata, lo script crea una directory temporanea in cui scarica i file e le configurazioni necessari per l'installazione di Anthos Service Mesh. Specifica il flag --output-dir per specificare un percorso relativo a una directory da utilizzare. Al termine, la directory specificata contiene le sottodirectory asm e istio-1.11.8-asm.4. La directory asm contiene la configurazione per l'installazione. La directory istio-1.11.8-asm.4 contiene i contenuti estratti del file di installazione, che includono istioctl, esempi e manifest. Se specifichi --output-dir e la directory contiene già i file necessari, lo script li utilizza anziché scaricarli di nuovo.

-r|--revision_name REVISION NAME>

Un'etichetta di revisione è una coppia chiave-valore impostata sul piano di controllo. La chiave dell'etichetta della revisione è sempre istio.io/rev. Per impostazione predefinita, lo script imposta il valore dell'etichetta della revisione in base alla versione Anthos Service Mesh, ad esempio asm-1118-4. Includi questa opzione se vuoi sostituire il valore predefinito e specificarne uno personalizzato. L'argomento REVISION NAME deve essere un'etichetta DNS-1035, deve essere composto da caratteri alfanumerici minuscoli o -, iniziare con un carattere alfabetico e terminare con un carattere alfanumerico (ad esempio my-name' o abc-123). L'espressione regolare utilizzata per la convalida è: '[a-z]([-a-z0-9]*[a-z0-9])?')

-s|--service_account ACCOUNT

Il nome di un account di servizio utilizzato per installare Anthos Service Mesh. Se non specificato, viene utilizzato l'account utente attivo nell'attuale configurazione di gcloud. Se devi modificare l'account utente attivo, esegui gcloud auth login.

-k|--key_file FILE_PATH

Il file della chiave per un account di servizio. Ometti questa opzione se non utilizzi un account di servizio.

Opzioni per il certificato personalizzato Citadel

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 per il certificato intermedio
  • --root_cert FILE_PATH: il certificato radice
  • --cert_chain FILE_PATH: la catena di certificati

Per maggiori informazioni, consulta la sezione Collegamento di certificati CA esistenti.

Flag di abilitazione

I flag che iniziano con --enable consentono allo script di attivare le API di Google richieste, impostare le autorizzazioni Identity and Access Management (IAM) richieste e aggiornare il cluster. Se preferisci, puoi aggiornare il progetto e il cluster prima di eseguire lo script come descritto nelle sezioni Configurazione del progetto e Configurazione del cluster della guida all'installazione per più progetti. Tutti questi flag non sono compatibili con --only_validate e in questo caso lo script termina con un errore.

-e|--enable_all
Consenti allo script di eseguire tutte le singole azioni di abilitazione descritte di seguito.
--enable_cluster_roles
Consenti allo script di tentare di associare l'account utente o di servizio della piattaforma Google Cloud che esegue lo script al ruolo cluster-admin sul tuo cluster. Lo script determina l'account utente dal comando gcloud config get core/account. Se esegui lo script in locale con un account utente, assicurati di chiamare il comando gcloud auth login prima di eseguire lo script. Se devi cambiare l'account utente, esegui il comando gcloud config set core/account GCP_EMAIL_ADDRESS, dove GCP_EMAIL_ADDRESS è l'account che utilizzi per accedere a Google Cloud.
--enable_cluster_labels
Consenti allo script di impostare le etichette del cluster richieste.
--enable_gcp_components

Consenti allo script di abilitare i seguenti componenti e servizi gestiti di Google Cloud richiesti:

--enable_gcp_apis

Consenti allo script di attivare tutte le API di Google richieste.

--enable_gcp_iam_roles

Consenti allo script di impostare le autorizzazioni IAM necessarie.

--enable_registration

Consenti allo script di registrare il cluster nel progetto in cui si trova il cluster. 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_all solo quando specifichi un'opzione (ad esempio --option vm o --option hub-meshca) che richiede la registrazione del cluster. In caso contrario, devi specificare questo flag separatamente.

Altri flag

--dry_run
Stampare i comandi, ma non eseguirli.
--only_validate
Esegui la convalida, ma non aggiornare il progetto o il cluster e non installare Anthos Service Mesh. Questo flag non è compatibile con i flag di abilitazione. Lo script termina con un errore se specifichi --only_validate con un flag di abilitazione.
--print_config
Anziché installare Anthos Service Mesh, stampa tutti i file YAML compilati nell'output standard (stdout). Tutti gli altri output vengono scritti nell'errore standard (stderr), anche se normalmente vanno su stdout. Quando specifichi questo flag, lo script ignora tutte le convalide e la configurazione.
--disable_canonical_service
Per impostazione predefinita, lo script esegue il deployment del controller del servizio canonico nel cluster. Se non vuoi che lo script esegua il deployment del controller, specifica --disable_canonical_service. Per maggiori informazioni, consulta Attivare e disattivare il controller di servizio canonico.
-h|--help
Mostra un messaggio della guida che descrive le opzioni e i flag, quindi esci.
-v|--verbose
Durante l'esecuzione dello script, viene visualizzato il comando successivo che verrà eseguito. Con il flag --verbose, lo script stampa anche il comando dopo l'esecuzione.
--version
Stampa la versione di install_asm ed esci. Se il comando non restituisce una versione, scarica la versione più recente di install_asm_1.11.

Comprensione dello script

Anche se scarichi lo script da una posizione sicura di Cloud Source Repositories, lo script è disponibile anche su GitHub in modo che tu possa vedere cosa fa prima di scaricarlo. Lo script verifica che il progetto e il cluster soddisfino i requisiti di Anthos Service Mesh e automatizza tutti i passaggi che eseguiresti manualmente per configurare il progetto e il cluster e installare Anthos Service Mesh utilizzando il comando istioctl install.

Con Anthos Service Mesh 1.11.8, utilizzi la versione dello script install_asm sul ramo release-1.11. Per una spiegazione del processo di controllo delle versioni e di rilascio, consulta Controllo delle versioni/rilascio.

Convalida

validate_dependencies() {
  validate_node_pool
  validate_k8s
  validate_expected_control_plane

  if [[ "${MODE}" = "migrate" ]]; then
    validate_istio_version
  elif [[ "${MODE}" = "upgrade" ]]; then
    validate_asm_version
    validate_ca_consistency
  fi
}

Lo script install_asm verifica che:

  • L'ID progetto, il nome e la località del cluster che hai inserito come valori dei parametri sono validi.
  • Il cluster soddisfa il tipo di macchina minimo richiesto e il numero di nodi.

Configurazione del progetto in corso…

Ruoli obbligatori

Se hai incluso il flag --enable_all o --enable_gcp_iam_roles, lo script imposta le autorizzazioni IAM richieste.

required_iam_roles() {
  # meshconfig.admin - required for init, stackdriver, UI elements, etc.
  # servicemanagement.admin/serviceusage.serviceUsageAdmin - enables APIs
  if can_modify_gcp_components || \
     can_modify_cluster_labels || \
     can_modify_cluster_roles; then
    echo roles/container.admin
  fi
  if can_modify_gcp_components; then
    echo roles/meshconfig.admin
  fi
  if can_modify_gcp_apis; then
    echo roles/servicemanagement.admin
    echo roles/serviceusage.serviceUsageAdmin
  fi
  if can_modify_gcp_iam_roles; then
    echo roles/resourcemanager.projectIamAdmin
  fi
  if is_sa; then
    echo roles/iam.serviceAccountAdmin
  fi
  if can_register_cluster; then
    echo roles/gkehub.admin
  fi
  if [[ "${CA}" = "gcp_cas" ]]; then
    echo roles/privateca.admin
  fi
  if [[ "${_CI_I_AM_A_TEST_ROBOT}" -eq 1 ]]; then
    echo roles/compute.admin
    echo roles/iam.serviceAccountKeyAdmin
  fi
}

API di Google obbligatorie

Se hai incluso il flag --enable_all o --enable_apis, lo script abilita le API richieste:

required_apis() {
    cat << EOF
container.googleapis.com
monitoring.googleapis.com
logging.googleapis.com
cloudtrace.googleapis.com
meshtelemetry.googleapis.com
meshconfig.googleapis.com
iamcredentials.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
cloudresourcemanager.googleapis.com
stackdriver.googleapis.com
EOF
  case "${CA}" in
   mesh_ca)
     echo meshca.googleapis.com
     ;;
   gcp_cas)
     echo privateca.googleapis.com
     ;;
    *);;
  esac

  if [[ "${_CI_I_AM_A_TEST_ROBOT}" -eq 1 ]]; then
    echo compute.googleapis.com
  fi
}

Configurazione del cluster

Lo script esegue i seguenti aggiornamenti al cluster se hai incluso il flag --enable_all o uno dei flag di abilitazione più granulari elencati di seguito:

Aggiornamento del cluster Flag
Abilita Workload Identity, che consente alle applicazioni GKE di accedere in sicurezza ai servizi Google Cloud. --enable_gcp_components
Abilita Cloud Monitoring e Cloud Logging su GKE. --enable_gcp_components
Imposta sul cluster l'etichetta mesh_id, necessaria per visualizzare le metriche nelle pagine Anthos Service Mesh nella console Google Cloud. --enable_cluster_labels
Imposta un'etichetta come asmv=asm-1118-4, in modo che tu possa capire che il cluster è stato modificato dallo script. --enable_cluster_labels
Associa l'account utente o di servizio Google Cloud che esegue lo script al ruolo "cluster-admin" nel cluster. --enable_cluster_roles

Passaggi successivi