Guida rapida di Anthos Service Mesh per GKE

In questo tutorial installerai Anthos Service Mesh 1.9.8-asm.6 utilizzando uno script fornito da Google, install_asm, su un nuovo cluster Google Kubernetes Engine (GKE). Questo tutorial illustra:

  1. per configurare il tuo progetto Google Cloud
  2. creando un cluster GKE con il numero minimo di vCPU richiesto da Anthos Service Mesh
  3. installando Anthos Service Mesh con un piano di controllo nel cluster
  4. eseguendo il deployment di un'applicazione di esempio per visualizzare i dati di telemetria sulle dashboard Anthos Service Mesh nella console Google Cloud.

Costi

In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi basata sull'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Al termine di questa guida rapida, puoi evitare di continuare la fatturazione eliminando il cluster. Per ulteriori informazioni, consulta Pulizia.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Kubernetes Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Kubernetes Engine API.

    Enable the API

  8. Prendi nota dell'ID progetto.

Sebbene Anthos Service Mesh richieda altre API, lo script install_asm le consente. Per mantenere bassi i costi di fatturazione, lo script install_asm non abilita l'API GKE Enterprise. Esistono alcune piccole differenze nella console Google Cloud quando è abilitata l'API GKE Enterprise. Per saperne di più su queste differenze, consulta Differenze tra le UI di GKE Enterprise e Anthos Service Mesh.

Installa gli 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

Computer Linux locale

  1. Assicurati di avere installato i seguenti strumenti:

  2. Esegui l'autenticazione con Google Cloud 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.

crea un cluster GKE

  1. Esegui questo comando per creare il cluster con il numero minimo di vCPU richieste da Anthos Service Mesh. Nel comando, sostituisci i segnaposto con le seguenti informazioni:

    • CLUSTER_NAME : il nome del cluster. Il nome può contenere solo caratteri alfanumerici minuscoli e -, deve iniziare con una lettera, terminare con un carattere alfanumerico e non deve superare i 40 caratteri.
    • PROJECT_ID: l'ID progetto in cui verrà creato il cluster.
    • CLUSTER_LOCATION la zona per il cluster, ad esempio us-central1-a.
    gcloud container clusters create CLUSTER_NAME  \
        --project=PROJECT_ID \
        --zone=CLUSTER_LOCATION  \
        --machine-type=e2-standard-4 \
        --num-nodes=2 \
        --workload-pool=PROJECT_ID.svc.id.goog
    
  2. Ottieni credenziali di autenticazione per interagire con il cluster. Questo comando imposta anche il contesto attuale per kubectl nel cluster.

    gcloud container clusters get-credentials CLUSTER_NAME  \
        --project=PROJECT_ID \
        --zone=CLUSTER_LOCATION
    

Scarica lo script di installazione di ASM

  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
    

Installazione di Anthos Service Mesh

Esegui lo script install_asm con le seguenti opzioni per installare Anthos Service Mesh sul cluster che hai creato in precedenza. Se non hai chiuso questa pagina dopo aver creato il cluster, i segnaposto contengono i valori che hai inserito per il comando gcloud container clusters create.

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME  \
  --cluster_location CLUSTER_LOCATION  \
  --mode install \
  --output_dir ./asm-downloads \
  --enable_all

Il completamento dello script install_asm può richiedere diversi minuti. Lo script genera messaggi informativi in modo che tu possa seguirne l'avanzamento.

Il comando esegue install_asm con le seguenti opzioni:

  • --mode install: esegue lo script per una nuova installazione e abilita l'autorità di certificazione Anthos Service Mesh (Mesh CA), che è l'autorità di certificazione (CA) predefinita per le installazioni.
  • --output_dir ./asm-downloads: la directory in cui lo script scarica i file dal repository anthos-service-mesh, dove scarica ed estrae il file di installazione di Anthos Service Mesh, che contiene istioctl, esempi e manifest.
  • --enable-registration: consente allo script di registrare il cluster nel progetto in cui si trova il cluster.
  • --enable_all: consente allo script di abilitare le API di Google richieste, impostare le autorizzazioni di Identity and Access Management e apportare gli aggiornamenti necessari al cluster, inclusa l'abilitazione di GKE Workload Identity.

Esegui il deployment dell'esempio di Boutique online

  1. Scarica l'anteprima utilizzando kpt:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  2. Crea uno spazio dei nomi per l'applicazione:

    kubectl create namespace demo
    
  3. Attiva l'iniezione automatica del sidecar (inserimento automatica). Utilizza il seguente comando per individuare l'etichetta nel servizio istiod, che contiene il valore dell'etichetta di revisione da utilizzare nei passaggi successivi.

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

    L'output è simile al seguente:

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-asm-198-6-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-198-6-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586

    Nell'output, sotto la colonna LABELS, prendi nota del valore dell'etichetta di revisione istiod, che segue il prefisso istio.io/rev=. In questo esempio, il valore è asm-198-6.

  4. Applica l'etichetta di revisione allo spazio dei nomi. Nel comando seguente, REVISION è il valore dell'etichetta di revisione istiod che hai annotato nel passaggio precedente.

    kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
    

    Puoi ignorare il messaggio "istio-injection not found" nell'output. Ciò significa che lo spazio dei nomi non aveva in precedenza l'etichetta istio-injection, cosa che dovresti aspettarti nelle nuove installazioni di Anthos Service Mesh o nei nuovi deployment. Poiché l'inserimento automatica non riesce se uno spazio dei nomi contiene sia l'etichetta istio-injection sia l'etichetta di revisione, tutti i comandi kubectl label nella documentazione di Anthos Service Mesh comprendono la rimozione dell'etichetta istio-injection.

  5. Esegui il deployment dell'esempio nel cluster:

    kubectl apply -n demo -f online-boutique
    
  6. Ottieni l'indirizzo IP esterno del gateway in entrata:

    kubectl get service istio-ingressgateway -n istio-system
    

    L'output è simile a questo:

    NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
    istio-ingressgateway   LoadBalancer   10.19.247.233   35.239.7.64   80:31380/TCP,443:31390/TCP,31400:31400/TCP   27m

    In questo esempio, l'indirizzo IP del gateway in entrata è 35.239.7.64.

  7. Visita l'applicazione sul tuo browser per confermare l'installazione:

    http://EXTERNAL_IP/
    

Visualizza le dashboard del mesh di servizi

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.

Esegui la pulizia

Prima di ripulire, se ti interessa saperne di più sulla TLS reciproca, vedi Anthos Service Mesh con l'esempio: mTLS.

  • Per evitare addebiti aggiuntivi, elimina il cluster:

    gcloud container clusters delete  CLUSTER_NAME  \
        --project=PROJECT_ID \
        --zone=CLUSTER_LOCATION
    
  • Se vuoi mantenere il cluster e rimuovere l'esempio di Boutique online:

    kubectl delete namespaces demo
    

Passaggi successivi

Scopri di più su: