Installazione di Anthos Service Mesh su GKE

Questa pagina spiega come eseguire un'installazione pulita della versione di Anthos Service Mesh 1.6.14 su un cluster GKE. Se hai installato una versione precedente di Anthos Service Mesh, consulta Upgrade di Anthos Service Mesh su GKE.

Prima di iniziare

Prima di installare Anthos Service Mesh, assicurati di avere:

Impostazione di credenziali e autorizzazioni

  1. 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 di controllo, ad esempio il proxy sidecar, di accedere in modo sicuro ai dati e alle risorse del tuo progetto:

    curl --request POST \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --data '' \
      "https://meshconfig.googleapis.com/v1alpha1/projects/${PROJECT_ID}:initialize"

    Il comando risponde con parentesi graffe vuote: {}

  2. Ottieni le credenziali di autenticazione per interagire con il cluster:

    gcloud container clusters get-credentials ${CLUSTER_NAME} \
        --project=${PROJECT_ID}
    
  3. Concedi all'utente corrente le autorizzazioni di amministratore del cluster. Devi disporre delle seguenti autorizzazioni per creare le regole di controllo dell'controllo dell'accesso basato sui ruoli (RBAC) necessarie per Anthos Service Mesh:

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user="$(gcloud config get-value core/account)"

Se viene visualizzato l'errore "cluster-admin-binding" already exists, puoi tranquillamente ignorarlo e continuare con l'associazione cluster-admin-binding esistente.

Download del file di installazione in corso...

    Linux

  1. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-linux-amd64.tar.gz
  2. Scarica il file della firma e utilizza openssl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.6.14-asm.2-linux-amd64.tar.gz.1.sig istio-1.6.14-asm.2-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    L'output previsto è: Verified OK

  3. Estrai i contenuti del file in qualsiasi posizione nel file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.6.14-asm.2-linux-amd64.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.6.14-asm.2 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.

  4. Mac OS

  5. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-osx.tar.gz
  6. Scarica il file della firma e utilizza openssl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.6.14-asm.2-osx.tar.gz.1.sig istio-1.6.14-asm.2-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    L'output previsto è: Verified OK

  7. Estrai i contenuti del file in qualsiasi posizione nel file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.6.14-asm.2-osx.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.6.14-asm.2 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.

  8. Windows

  9. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-win.zip
  10. Scarica il file della firma e utilizza openssl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.6.14-asm.2-win.zip.1.sig istio-1.6.14-asm.2-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    L'output previsto è: Verified OK

  11. Estrai i contenuti del file in qualsiasi posizione nel file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.6.14-asm.2-win.zip

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.6.14-asm.2 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.

  12. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh.
    cd istio-1.6.14-asm.2
  13. Per praticità, aggiungi gli strumenti nella directory /bin al tuo PERCORSO:
    export PATH=$PWD/bin:$PATH

Preparazione dei file di configurazione delle risorse

Quando esegui il comando istioctl install, specifichi -f istio-operator.yaml nella riga di comando. Questo file contiene informazioni sul progetto e sul cluster richieste da Anthos Service Mesh. Devi scaricare un pacchetto contenente istio-operator.yaml e altri file di configurazione delle risorse per poter impostare le informazioni sul progetto e sul cluster.

Per iniziare, scegli un pacchetto da scaricare in base all'autorità di certificazione (CA) che vuoi utilizzare:

  • asm: Questo pacchetto abilita Mesh CA, opzione consigliata per le nuove installazioni.

  • asm-citadel: facoltativamente, puoi abilitare Citadel come CA. Prima di scegliere questo pacchetto, consulta Scegliere un'autorità di certificazione per ulteriori informazioni.

Per preparare i file di configurazione delle risorse:

  1. Crea una nuova directory per i file di configurazione delle risorse del pacchetto Anthos Service Mesh. Ti consigliamo di utilizzare il nome del cluster come nome della directory.

  2. Passa alla directory in cui vuoi scaricare il pacchetto Anthos Service Mesh.

  3. Scarica il pacchetto che vuoi utilizzare, in base alla CA

    Mesh CA

    Scarica il pacchetto asm, che abilita Mesh CA:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.6-asm asm
    

    Cittadella

    Scarica il pacchetto asm-citadel, che abilita Citadel come CA:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm-citadel@release-1.6-asm asm
    
  4. Imposta l'ID per il progetto in cui è stato creato il cluster:

    kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    
  5. Imposta il numero di progetto per il progetto host del parco risorse:

    kpt cfg set asm gcloud.project.environProjectNumber ${FLEET_PROJECT_NUMBER}
    
  6. Imposta il nome del cluster:

    kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
    
  7. Imposta la zona o la regione predefinita:

    kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
    
  8. Imposta il webhook di convalida in modo che utilizzi un'etichetta di revisione:

    kpt cfg set asm anthos.servicemesh.rev asm-1614-2
    

    Quando installi Anthos Service Mesh, imposti un'etichetta di revisione su istiod. Devi impostare la stessa revisione sul webhook di convalida.

  9. Imposta il profilo di configurazione che prevedi di utilizzare:

    • Se tutti i cluster si trovano nello stesso progetto, imposta il profilo asm-gcp:

      kpt cfg set asm anthos.servicemesh.profile asm-gcp
      
    • Se il tuo mesh di servizi contiene o conterrà più cluster che si trovano in progetti diversi, imposta il profilo asm-gcp-multiproject (beta):

      kpt cfg set asm anthos.servicemesh.profile asm-gcp-multiproject
      
  10. Se imposti il profilo asm-gcp-multiproject e hai scaricato il pacchetto asm, che attiva Mesh CA, devi configurare gli alias dominio attendibili per gli altri progetti che formeranno il mesh di servizi multi-cluster/più progetti. In caso contrario, salta questo passaggio.

    1. Recupera l'ID progetto di tutti i cluster che saranno nel mesh multi-cluster/più progetti.

    2. Per l'ID progetto di ogni cluster, imposta gli alias dominio di attendibilità. Ad esempio, se hai cluster in 3 progetti, esegui il comando seguente e sostituisci PROJECT_ID_1, PROJECT_ID_2 e PROJECT_ID_3 con l'ID progetto di ogni cluster.

      kpt cfg set asm anthos.servicemesh.trustDomainAliases PROJECT_ID_1.svc.id.goog PROJECT_ID_2.svc.id.goog PROJECT_ID_3.svc.id.goog

      Quando configuri i cluster negli altri progetti, puoi utilizzare lo stesso comando.

      Gli alias dominio di attendibilità consentono a Mesh CA di autenticare i carichi di lavoro su cluster in altri progetti. Oltre a impostare gli alias dominio di attendibilità, dopo l'installazione di Anthos Service Mesh, devi abilitare il bilanciamento del carico tra cluster.

  11. Restituisce come output i valori dei setter kpt:

      kpt cfg list-setters asm
    

    Nell'output del comando verifica che i valori dei seguenti setter siano corretti:

    • anthos.servicemesh.rev
    • gcloud.compute.location
    • gcloud.container.cluster
    • gcloud.core.project
    • gcloud.project.environProjectNumber

Installazione di Anthos Service Mesh

  1. Verifica che il contesto kubeconfig attuale punti al cluster su cui vuoi installare Anthos Service Mesh:

      kubectl config current-context
    

    L'output è nel seguente formato:

      gke_PROJECT_ID_CLUSTER_LOCATION_CLUSTER_NAME

    Il contesto kubeconfig e i valori dei setter kpt devono corrispondere. Se necessario, esegui il comando gcloud container clusters get-credentials per impostare il contesto attuale di kubeconfig.

  2. Se utilizzi Citadel come autorità di certificazione e vuoi utilizzare una CA personalizzata, esegui questi comandi. In caso contrario, vai al passaggio successivo.

    kubectl create namespace istio-system
    kubectl create secret generic cacerts  \
      -n istio-system \
      --from-file=ca-cert.pem \
      --from-file=ca-key.pem \
      --from-file=root-cert.pem \
      --from-file=cert-chain.pem

    Per ulteriori informazioni, consulta la sezione Collegare i certificati CA esistenti.

  3. Esegui questo comando per installare Anthos Service Mesh utilizzando il profilo di configurazione impostato nel file istio-operator.yaml. Se vuoi abilitare una funzionalità facoltativa supportata, includi -f e il nome del file YAML nella riga di comando seguente. Per ulteriori informazioni, consulta Attivazione delle funzionalità facoltative.

    istioctl install \
      -f asm/cluster/istio-operator.yaml \
      --set revision=asm-1614-2

    L'argomento --set revision aggiunge a istiod un'etichetta di revisione nel formato istio.io/rev=asm-1614-2. L'etichetta di revisione viene utilizzata dal webhook automatico dell'iniettore sidecar per associare i sidecar inseriti a una determinata revisione istiod. Per abilitare l'inserimento automatico dell'inserimento automatico per uno spazio dei nomi, devi etichettarlo con una revisione che corrisponda all'etichetta su istiod.

  4. Configura il webhook di convalida in modo che possa individuare il servizio istiod con l'etichetta di revisione:

    kubectl apply -f asm/istiod-service.yaml

    Questo comando crea una voce di servizio che consente al webhook di convalida di controllare automaticamente le configurazioni prima che vengano applicate.

  5. Se hai utilizzato il profilo asm-gcp, esegui questo comando per eseguire il deployment del controller del servizio canonico:

    kubectl apply -f asm/canonical-service/controller.yaml

    Il comando esegue il deployment del controller del servizio canonico nel cluster. Il controller del servizio canonico raggruppa i carichi di lavoro appartenenti allo stesso servizio logico ed è necessario per sbloccare funzionalità aggiuntive nella dashboard Servizi della console Google Cloud. Per saperne di più, consulta Attivazione e disattivazione del controller del servizio canonico.

    Se hai utilizzato il profilo asm-gcp-multiproject, al momento i dati di telemetria non vengono visualizzati nelle dashboard di Anthos Service Mesh nella console Google Cloud. Tuttavia, puoi comunque visualizzare i log in Cloud Logging e le metriche in Cloud Monitoring per ciascun progetto.

Il TLS (mTLS automatico) automatico è abilitato per impostazione predefinita. Con la crittografia automatica mTLS, un proxy sidecar client rileva automaticamente se il server ha un file collaterale. Il client collaterale invia mTLS ai carichi di lavoro con file collaterali e invia traffico di testo normale ai carichi di lavoro senza file collaterali.

Controlla i componenti del piano di controllo

Verifica che i pod del piano di controllo in istio-system siano attivi:

kubectl get pod -n istio-system

L'output previsto è simile al seguente:

NAME                                   READY   STATUS      RESTARTS   AGE
istio-ingressgateway-cff9f5c7d-qg4ls   1/1     Running   0          7m5s
istio-ingressgateway-cff9f5c7d-vlkzb   1/1     Running   0          7m20s
istiod-66b587859c-886gx                1/1     Running   0          7m33s
istiod-66b587859c-dfs2j                1/1     Running   0          7m33s

Inserimento di proxy sidecar

Anthos Service Mesh utilizza i proxy sidecar per migliorare la sicurezza, l'affidabilità e l'osservabilità della rete. Con Anthos Service Mesh, queste funzioni vengono astratte dal container principale dell'applicazione e implementate in un proxy out-of-process comune, fornito come container separato nello stesso pod.

Prima di eseguire il deployment dei carichi di lavoro, assicurati di configurare l'inserimento del proxy sidecar in modo che Anthos Service Mesh possa monitorare e proteggere il traffico.

Tutti i carichi di lavoro in esecuzione sul tuo cluster prima dell'installazione di Anthos Service Mesh devono avere inserito o aggiornato il proxy sidecar in modo che abbia la versione attuale di Anthos Service Mesh. Prima di eseguire il deployment di nuovi carichi di lavoro, assicurati di configurare l'inserimento del proxy sidecar in modo che Anthos Service Mesh possa monitorare e proteggere il traffico.

Per abilitare l'inserimento automatica del file collaterale, etichetta gli spazi dei nomi con la stessa revisione che hai impostato su istiod. Esegui questo comando per mostrare le etichette su istiod:

kubectl -n istio-system get pods -l app=istiod --show-labels

Conferma che l'etichetta di revisione, istio.io/rev=asm-1614-2, si trovi nell'output. Si tratta dell'etichetta che utilizzi per abilitare l'inserimento automatico. Puoi abilitare l'inserimento automatico con un solo comando, ad esempio:

kubectl label namespace NAMESPACE istio-injection-istio.io/rev=asm-1614-2 --overwrite

dove NAMESPACE è il nome dello spazio dei nomi per i servizi della tua applicazione oppure default se non hai creato esplicitamente uno spazio dei nomi.

Per maggiori informazioni, consulta Inserimento di proxy sidecar.

Visualizzazione delle dashboard di Anthos Service Mesh

Questa sezione è applicabile solo se hai installato Anthos Service Mesh con il profilo di configurazione asm-gcp. Se hai utilizzato il profilo asm-gcp-multiproject per installare Anthos Service Mesh, i dati di telemetria non saranno disponibili nelle dashboard di Anthos Service Mesh nella console Google Cloud.

Dopo aver eseguito il deployment dei carichi di lavoro nel tuo cluster con i proxy sidecar inseriti, puoi esplorare le pagine Anthos Service Mesh nella console Google Cloud per vedere tutte le funzionalità di osservabilità offerte da Anthos Service Mesh. Tieni presente che sono necessari circa uno o due minuti per la visualizzazione dei dati di telemetria nella console Google Cloud dopo il deployment dei carichi di lavoro.

L'accesso ad Anthos Service Mesh nella console Google Cloud è controllato da Identity and Access Management (IAM). Per accedere alle pagine di Anthos Service Mesh, un Proprietario progetto deve concedere agli utenti il ruolo Editor di progetto o Visualizzatore oppure i ruoli più restrittivi descritti in Controllare l'accesso ad Anthos Service Mesh nella console Google Cloud.

  1. Nella console Google Cloud, vai ad Anthos Service Mesh.

    Vai ad Anthos Service Mesh

  2. Seleziona il progetto Google Cloud dall'elenco a discesa nella barra dei menu.

  3. Se disponi di più mesh di servizi, selezionalo dall'elenco a discesa Mesh di servizi.

Per scoprire di più, consulta Esplorazione di Anthos Service Mesh nella console Google Cloud.

Oltre alle pagine Anthos Service Mesh, le metriche relative ai tuoi servizi (ad esempio il numero di richieste ricevute da un determinato servizio) vengono inviate a Cloud Monitoring, dove vengono visualizzate in Metrics Explorer.

Per visualizzare le metriche:

  1. Nella console Google Cloud, vai alla pagina Monitoring:

    Vai a Monitoring

  2. Seleziona Risorse > Metrics Explorer.

Per un elenco completo delle metriche, consulta la pagina relativa alle metriche Istio nella documentazione di Cloud Monitoring.

Registrazione del cluster in corso

Devi registrare il cluster nel parco risorse del progetto per ottenere l'accesso all'interfaccia utente unificata nella console Google Cloud. Un parco risorse offre un modo unificato per visualizzare e gestire i cluster e i relativi carichi di lavoro, inclusi i cluster esterni a Google Cloud.

Consulta Registrazione dei cluster nel parco risorse per informazioni sulla registrazione del cluster.

Passaggi successivi