Installazione di un singolo progetto su GKE

Questa guida spiega come installare, migrare o eseguire l'upgrade alla versione 1.9.8 di Anthos Service Mesh per un mesh che contiene uno o più cluster GKE appartenenti allo stesso progetto. Devi utilizzare uno script fornito da Google, install_asm, che configura il progetto e il cluster, quindi installa Anthos Service Mesh utilizzando istioctl install.

Puoi utilizzare questa guida e lo script per i seguenti casi d'uso relativi alle operazioni preliminari:

  • Nuove installazioni di Anthos Service Mesh 1.9.8.

  • Upgrade da 1.8 or a 1.9 patch release. Gli upgrade dalle versioni precedenti non sono supportati.

  • Migrazione da Istio 1.8 or 1.9 open source ad Anthos Service Mesh. Se hai una versione precedente di Istio, devi eseguire l'upgrade prima di eseguire la migrazione ad Anthos Service Mesh. Se devi eseguire l'upgrade, vai alla pagina Esegui l'upgrade di Istio nella versione applicabile di Istio. Tieni presente che l'upgrade di Istio a più di una versione secondaria (ad es. da 1.6.x a 1.8.x) in un solo passaggio non è ufficialmente testato né consigliato. Assicurati di consultare la Preparazione per la migrazione da Istio per pianificare la migrazione.

Prerequisiti

Questa guida presuppone che tu disponga di:

Differenze tra Anthos e Anthos Service Mesh

Anthos Service Mesh è disponibile con GKE Enterprise o come servizio autonomo. Le API di Google vengono utilizzate per determinare le modalità di fatturazione. Per utilizzare Anthos Service Mesh come servizio autonomo, non abilitare l'API GKE Enterprise nel tuo progetto. Lo script abilita tutte le altre API di Google richieste. Per informazioni sui prezzi di Anthos Service Mesh, consulta i prezzi.

  • Gli abbonati a GKE Enterprise devono abilitare l'API GKE Enterprise.

    Abilitare l'API

  • Se non sei un abbonato a GKE Enterprise, puoi comunque installare Anthos Service Mesh, ma alcuni elementi e funzionalità dell'interfaccia utente nella console Google Cloud sono disponibili solo per gli abbonati a GKE Enterprise. Per informazioni su ciò che è disponibile per gli abbonati e i non abbonati, consulta Differenze nell'interfaccia utente di GKE Enterprise e Anthos Service Mesh.

  • Se hai abilitato l'API GKE Enterprise, ma vuoi utilizzare Anthos Service Mesh come servizio autonomo, disattiva l'API GKE Enterprise.

Requisiti

  • Il cluster GKE deve soddisfare i seguenti requisiti:

    • Il cluster GKE deve essere Standard, perché i cluster Autopilot hanno limitazioni dei webhook che non consentono MutatingWebhookConfiguration per istio-sidecar-injector.

    • Un tipo di macchina con almeno 4 vCPU, ad esempio e2-standard-4. Se il tipo di macchina per il cluster non ha almeno 4 vCPU, modifica il tipo di macchina come descritto in Migrazione di carichi di lavoro in tipi di macchine diversi.

    • Il numero minimo di nodi dipende dal tipo di macchina. Anthos Service Mesh richiede almeno 8 vCPU. Se il tipo di macchina ha 4 vCPU, il cluster deve avere almeno 2 nodi. Se il tipo di macchina ha 8 vCPU, il cluster ha bisogno di un solo nodo. Se devi aggiungere nodi, consulta Ridimensionamento di un cluster.

    • Per impostazione predefinita, lo script abilita Workload Identity sul cluster. Workload Identity è il metodo consigliato per chiamare le API di Google. L'abilitazione di Workload Identity cambia il modo in cui vengono protette le chiamate dai carichi di lavoro alle API di Google, come descritto in Limitazioni di Workload Identity.

      Se stai eseguendo una nuova installazione e prevedi di utilizzare l'autorità di certificazione Anthos Service Mesh (Mesh CA), puoi utilizzare il pool di identità per i carichi di lavoro del parco risorse come alternativa all'identità dei carichi di lavoro GKE. Per utilizzare la CA mesh con il pool di identità per i carichi di lavoro del parco risorse (Anteprima), devi seguire i passaggi descritti in Registrare un cluster prima di eseguire lo script o includere il flag --enable_registration quando esegui lo script per consentire allo script di registrare il cluster nel progetto in cui si trova il cluster. Per un esempio di esecuzione dello script, consulta Abilitare Mesh CA con il pool di identità dei carichi di lavoro del parco risorse.

    • (Facoltativo ma consigliato) registra il cluster in un canale di rilascio. Ti consigliamo di registrarti al canale di rilascio regolare perché altri canali potrebbero essere basati su una versione di GKE non supportata con Anthos Service Mesh 1.9.8. Per ulteriori informazioni, consulta la sezione Ambienti supportati. Segui le istruzioni riportate in Registrare un cluster esistente in un canale di rilascio se hai una versione GKE statica.

  • Per essere incluse nel mesh di servizi, è necessario assegnare un nome alle porte di servizio, che deve includere il protocollo della porta nella seguente sintassi: name: protocol[-suffix] dove le parentesi quadre indicano un suffisso facoltativo che deve iniziare con un trattino. Per maggiori informazioni, consulta Denominazione delle porte dei servizi.

  • Se stai installando Anthos Service Mesh su un cluster privato, devi aprire la porta 15017 nel firewall per far funzionare i webhook utilizzati per l'inserimento automatico dei sidecar e la convalida della configurazione. Per maggiori informazioni, consulta Apertura di una porta su un cluster privato.

  • Se hai creato un perimetro di servizio nell'organizzazione, potrebbe essere necessario aggiungere il servizio Mesh CA al perimetro. Per ulteriori informazioni, consulta Aggiunta di Mesh CA a un perimetro di servizio.

  • Per le migrazioni, istiod deve essere installato nello spazio dei nomi istio-system, come avviene in genere.

  • A un progetto Google Cloud è possibile associare un solo mesh.

  • Se vuoi modificare i limiti delle risorse predefiniti per il container Sidecar istio-proxy, i nuovi valori devono essere maggiori di quelli predefiniti per evitare gli eventi di esaurimento della memoria.

  • Per i carichi di lavoro Windows Server, Istio non è supportato. Se il cluster ha pool di nodi Linux e Windows Server, puoi comunque installare Anthos Service Mesh e utilizzarlo sui tuoi carichi di lavoro Linux.

Personalizzazione del piano di controllo

Le funzionalità supportate da Anthos Service Mesh variano a seconda della piattaforma. Ti consigliamo di esaminare le funzionalità supportate per scoprire quali sono le funzionalità supportate in GKE su Google Cloud. Alcune funzionalità sono attive per impostazione predefinita, mentre altre puoi attivarle in via facoltativa creando un IstioOperator file di overlay. Quando esegui lo script install_asm, puoi specificare l'opzione --custom_overlay con il file dell'overlay.

Scelta di un'autorità di certificazione

Sia per le nuove installazioni che per le migrazioni, puoi utilizzare l'autorità di certificazione Anthos Service Mesh (Mesh CA) o Istio CA (precedentemente nota come Citadel) come autorità di certificazione (CA) per rilasciare certificati mTLS (mutual TLS).

In genere consigliamo di utilizzare Mesh CA per i seguenti motivi:

  • Mesh CA è un servizio altamente affidabile e scalabile, ottimizzato per carichi di lavoro con scalabilità dinamica su Google Cloud.
  • Con Mesh CA, Google gestisce la sicurezza e la disponibilità del backend della CA.
  • Mesh CA consente di fare affidamento su un'unica radice di attendibilità tra i cluster.

Tuttavia, in alcuni casi potresti prendere in considerazione l'utilizzo di CA Istio, ad esempio:

  • Se hai una CA personalizzata,
  • Se esegui la migrazione da Istio.

    Se scegli la CA Istio, ci sono tempi di inattività minimi perché il traffico mTLS non viene interrotto durante la migrazione. Se scegli Mesh CA, devi pianificare il tempo di inattività per la migrazione perché la radice di attendibilità cambia da Istio CA a Mesh CA. Per completare la migrazione alla radice di attendibilità della CA mesh, è necessario riavviare tutti i pod in tutti gli spazi dei nomi. Durante questo processo, i pod precedenti non possono stabilire connessioni mTLS con i nuovi pod.

Nota: per le nuove installazioni di Anthos Service Mesh, per impostazione predefinita, lo script attiva Mesh CA.

I certificati di Mesh CA includono i seguenti dati sui servizi dell'applicazione:

  • ID progetto Google Cloud
  • Lo spazio dei nomi GKE
  • Il nome dell'account di servizio GKE

Registrazione del cluster in corso

Devi registrare il cluster con il parco risorse per ottenere l'accesso all'interfaccia utente unificata nella console Google Cloud. Un parco risorse fornisce un modo unificato per visualizzare e gestire i cluster e i relativi carichi di lavoro, inclusi i cluster al di fuori di Google Cloud.

Puoi seguire la procedura descritta in Registrazione di un cluster o includere il flag --enable_registration quando esegui lo script per consentire allo script di registrare il cluster nel progetto in cui si trova il cluster.

Installazione degli strumenti richiesti

Puoi eseguire lo script su Cloud Shell o sulla tua macchina locale che esegue Linux. Cloud Shell preinstalla tutti gli strumenti necessari. Tieni presente che macOS non è supportato perché include una versione precedente di bash.

Cloud Shell

Cloud Shell esegue il provisioning di una macchina virtuale (VM) Compute Engine g1-small che esegue un sistema operativo Linux basato su Debian. I vantaggi dell'utilizzo di Cloud Shell sono:

  • Cloud Shell include gcloud, kubectl, kpt e gli altri strumenti a riga di comando necessari.

  • La directory $HOME di Cloud Shell ha 5 GB di spazio di archiviazione permanente.

  • Puoi scegliere gli editor di testo:

    • Editor di codice, a cui puoi accedere facendo clic su nella parte superiore della finestra di Cloud Shell.

    • Emacs, Vim o Nano, a cui accedi dalla riga di comando in Cloud Shell.

Per utilizzare Cloud Shell:

  1. Vai alla console Google Cloud.
  2. Selezionare il tuo progetto Google Cloud.
  3. Fai clic sul pulsante Attiva Cloud Shell nella parte superiore della finestra della console Google Cloud.

    Console Google Cloud Platform

    All'interno di un nuovo frame nella parte inferiore della console Google Cloud si apre una sessione di Cloud Shell, che mostra un prompt della riga di comando.

    Sessione di Cloud Shell

  4. Aggiorna i componenti:

    gcloud components update
    

    Il comando risponde con un output simile al seguente:

    ERROR: (gcloud.components.update)
    You cannot perform this action because the gcloud CLI component manager
    is disabled for this installation. You can run the following command
    to achieve the same result for this installation:
    
    sudo apt-get update && sudo apt-get --only-upgrade install ...
  5. Copia il comando lungo e incollalo per aggiornare i componenti.

Computer Linux locale

  1. Assicurati di avere installato i seguenti strumenti:

  2. Esegui l'autenticazione con gcloud CLI:

    gcloud auth login
    
  3. Aggiorna i componenti:

    gcloud components update
    
  4. Assicurati che git sia nel tuo percorso in modo che kpt possa trovarlo.

Download dello script in corso...

Questa sezione descrive come scaricare lo script, impostare i parametri obbligatori e facoltativi ed eseguire lo script. Per una spiegazione dettagliata della funzione dello script, consulta la sezione Comprendere lo script.

  1. Scarica la versione dello script che installa Anthos Service Mesh 1.9.8 nella directory di lavoro attuale:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9 > install_asm
    
  2. Scarica l'algoritmo SHA-256 del file nella directory di lavoro corrente:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9.sha256 > install_asm.sha256
    
  3. Con entrambi i file nella stessa directory, verifica il download:

    sha256sum -c --ignore-missing install_asm.sha256
    

    Se la verifica ha esito positivo, il comando restituisce: install_asm: OK

    Per motivi di compatibilità, il file install_asm.sha256 include il checksum due volte per consentire di rinominare qualsiasi versione dello script in install_asm. Se viene visualizzato un errore che indica che --ignore-missing non esiste, esegui nuovamente il comando precedente senza il flag --ignore-missing.

  4. Rendi eseguibile lo script:

    chmod +x install_asm
    

Passaggi successivi