Configura Anthos Service Mesh gestito con l'API del parco risorse

Questa pagina mostra come utilizzare l'API fleet per configurare Anthos Service Mesh gestito con la gestione automatica del piano di controllo.

Quando abiliti la gestione automatica del piano di controllo su un cluster GKE, Google applica la configurazione consigliata di Anthos Service Mesh gestito in base al canale di rilascio del tuo cluster e lo mantiene aggiornato.

Utilizza questo percorso di anteprima per l'anteprima se vuoi:

  • Per utilizzare gcloud per configurare Anthos Service Mesh gestito utilizzando le API Google Cloud e IAM.
  • Per configurare Anthos Service Mesh utilizzando le stesse API di altre funzionalità del parco risorse.
  • per ottenere automaticamente la configurazione consigliata di Anthos Service Mesh per ciascuno dei tuoi cluster.

Per l'esperienza di onboarding di GA utilizzando lo strumento asmcli, consulta la sezione Configurare Anthos Service Mesh gestito.

Prerequisiti

Come punto di partenza, questa guida presuppone che tu abbia:

Requisiti

  • Uno o più cluster con una versione supportata di GKE in una delle aree geografiche supportate.
  • I cluster devono essere registrati in un parco risorse. Queste operazioni sono incluse nelle istruzioni oppure possono essere eseguite separatamente prima dell'installazione.
  • Il progetto deve avere la funzionalità Service Mesh abilitata. Questi passaggi sono inclusi nelle istruzioni o possono essere eseguiti separatamente.
  • Tutti i cluster GKE devono trovarsi in un singolo progetto, su una singola rete.

Limitazioni

Ti consigliamo di esaminare l'elenco delle funzionalità e delle limitazioni supportate da Anthos Service Mesh supportate. In particolare, tieni presente quanto segue:

  • L'API IstioOperator non è supportata perché il suo scopo principale è controllare i componenti in-cluster.

  • Ogni cluster nel parco risorse che esegue Anthos Service Mesh deve utilizzare Mesh CA.

  • Il piano dati gestito è disponibile sui canali di rilascio regolari e rapidi.

  • Le funzionalità effettive disponibili per Anthos Service Mesh gestito dipendono dal canale di rilascio. Per ulteriori informazioni, consulta l'elenco completo delle funzionalità e delle limitazioni supportate da Anthos Service Mesh.

  • Durante il processo di provisioning per un piano di controllo gestito da Google, i cluster CRD Istio corrispondenti al canale selezionato vengono installati nel cluster specificato. Se esistono già dei record CRD Istio nel cluster, verranno sovrascritti.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  4. Nella pagina del selettore dei progetti in Google Cloud Console, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  5. Assicurati che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata su un progetto.

  6. Abilita le API richieste:

      gcloud services enable mesh.googleapis.com \
          --project=PROJECT_ID
    

L'attivazione di mesh.googleapis.com abilita le seguenti API:

API
meshconfig.googleapis.com
meshca.googleapis.com
container.googleapis.com
gkehub.googleapis.com
monitoring.googleapis.com
stackdriver.googleapis.com
opsconfigmonitoring.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
bigquery.googleapis.com
bigquerystorage.googleapis.com
compute.googleapis.com
oslogin.googleapis.com
containerregistry.googleapis.com
pubsub.googleapis.com
storage-api.googleapis.com
gkeconnect.googleapis.com
multiclustermetering.googleapis.com
logging.googleapis.com
connectgateway.googleapis.com

Configura gcloud

Procedi come segue anche se utilizzi Cloud Shell.

  1. Autentica con l'interfaccia a riga di comando di Google Cloud:

    gcloud auth login --project PROJECT_ID
    
  2. Aggiorna i componenti:

    gcloud components update
    
  3. Se installi Anthos Service Mesh su un cluster GKE, configura kubectl in modo che rimandi al cluster.

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

Attiva Anthos Service Mesh

Attiva Anthos Service Mesh sul parco risorse. Tieni presente che se prevedi di registrare più cluster, l'abilitazione di Anthos Service Mesh avviene a livello di progetto, quindi devi eseguire questo comando una sola volta.

gcloud container fleet mesh enable --project PROJECT_ID

dove:

  • PROJECT_ID è l'ID del progetto corrente.

Registrazione dei cluster in un parco risorse

  1. Registra un cluster GKE utilizzando Workload Identity in un parco risorse:

    gcloud container fleet memberships register MEMBERSHIP_NAME \
         --gke-cluster=GKE_CLUSTER \
         --enable-workload-identity \
         --project PROJECT_ID
    

    dove:

    • MEMBERSHIP_NAME è il nome dell'appartenenza che scegli per rappresentare in modo univoco il cluster registrato nel parco risorse.

    • GKE_CLUSTER è il location/name del cluster GKE del progetto attuale. La località può essere una zona o un'area geografica, ad esempio us-central1-a/my-gke-cluster.

  2. Verifica che il cluster sia registrato:

    gcloud container fleet memberships list --project PROJECT_ID
    

Configura ogni cluster

Utilizza i passaggi seguenti per configurare Anthos Service Mesh gestito per ogni cluster nel tuo mesh.

Applica l'etichetta mesh_id

Applica l'etichetta mesh_id per il cluster GKE:

  gcloud container clusters update CLUSTER_NAME --zone ZONE\
      --update-labels mesh_id=proj-PROJECT_NUMBER

dove:

  • CLUSTER_NAME è il nome del cluster.
  • ZONE è la zona Compute del cluster.
  • PROJECT_NUMBER è l'identificatore univoco del tuo progetto.

Abilita gestione automatica del piano di controllo

Esegui questo comando per abilitare la gestione automatica del piano di controllo:

  gcloud container fleet mesh update \
     --control-plane automatic \
     --memberships MEMBERSHIP_NAME \
     --project PROJECT_ID

Tieni presente che per il gateway in entrata non viene eseguito automaticamente il deployment. Il disaccoppiamento del deployment del gateway in entrata e del piano di controllo consente di gestire più facilmente i gateway in un ambiente di produzione. Se il cluster ha bisogno di un gateway in entrata o in uscita, consulta Eseguire il deployment dei gateway. Per abilitare altre funzionalità facoltative, consulta la sezione Abilitare funzionalità facoltative su Anthos Service Mesh gestito.

Verifica che sia stato eseguito il provisioning del piano di controllo

  1. Dopo qualche minuto, verifica che lo stato del piano di controllo sia ACTIVE:

    gcloud container fleet mesh describe --project PROJECT_ID
    

    L'output è simile al seguente:

    ...
    membershipSpecs:
      projects/746296320118/locations/global/memberships/demo-cluster-1:
        mesh:
          controlPlane: AUTOMATIC
    membershipStates:
      projects/746296320118/locations/global/memberships/demo-cluster-1:
        servicemesh:
          controlPlaneManagement:
            details:
            - code: REVISION_READY
              details: 'Ready: asm-managed'
            state: ACTIVE
        state:
          code: OK
          description: 'Revision(s) ready for use: asm-managed.'
    ...
    

    Prendi nota dell'etichetta di revisione nel campo description:, ad esempio asm-managed nell'output fornito. Dovrai prima impostare questa etichetta prima di eseguire il deployment delle applicazioni.

Applicare il piano dati gestito (facoltativo)

Se vuoi che Google gestisca completamente gli upgrade dei proxy, abilita il piano dati gestito. Se l'opzione è abilitata, i proxy sidecar e i gateway inseriti vengono aggiornati automaticamente in combinazione con il piano di controllo gestito riavviando i carichi di lavoro per reinserire le nuove versioni del proxy. Se disabilitato, la gestione del proxy è basata sul ciclo di vita naturale dei pod nel cluster e deve essere attivata manualmente dall'utente per controllare la frequenza di aggiornamento.

Il piano dati gestito esegue l'upgrade dei proxy eliminando i pod che eseguono versioni precedenti del proxy. Gli espulsioni vengono effettuati gradualmente, rispettando il budget di interruzione dei pod e controllando il tasso di variazione.

Tieni presente che il piano dati gestito richiede il plug-in Istio Container Network Interface (CNI), abilitato per impostazione predefinita quando esegui il deployment del piano di controllo gestito.

Questa versione di anteprima del piano dati gestito non gestisce quanto segue:

  • Pod non inseriti
  • Pod inseriti manualmente
  • Job
  • StatefulSet
  • DaemonSet

Il piano dati gestito è disponibile per i canali di rilascio rapidi e regolari.

Per attivare il piano dati gestito:

  1. Abilita gestione piano dati:

    kubectl annotate --overwrite namespace NAMESPACE \
    mesh.cloud.google.com/proxy='{"managed":"true"}'
    

    In alternativa, puoi abilitare il piano dati gestito per un pod specifico annotandolo con la stessa annotazione.

  2. Ripeti il passaggio precedente per ogni spazio dei nomi in cui vuoi un piano dati gestito.

    Potrebbero essere necessari fino a dieci minuti prima che il servizio sia pronto per gestire i proxy nel cluster. Esegui il comando seguente per verificare lo stato:

    gcloud alpha container fleet mesh describe --project PROJECT_ID
    

    Output previsto

     membershipStates:
       projects/PROJECT_NUMBER/locations/global/memberships/CLUSTER_NAME:
         servicemesh:
           dataPlaneManagement:
             details:
             - code: OK
               details: Service is running.
             state: ACTIVE
         state:
           code: OK
           description: 'Revision(s) ready for use: asm-managed-rapid.'
     ```
    

Se il servizio non diventa pronto entro dieci minuti, consulta la sezione Stato del piano dati gestito per i passaggi successivi.

Se vuoi disabilitare il piano dati gestito e tornare alla gestione dei proxy sidecar, modifica l'annotazione:

kubectl annotate --overwrite namespace NAMESPACE \
  mesh.cloud.google.com/proxy='{"managed":"false"}'

Attiva le notifiche di manutenzione

Puoi richiedere di ricevere notifiche sulle prossime manutenzione fino alla settimana in cui hai intenzione di eseguire la manutenzione. Le notifiche di manutenzione non vengono inviate per impostazione predefinita. Per poter ricevere le notifiche, devi anche configurare un periodo di manutenzione di GKE.

Per attivare le notifiche di manutenzione:

  1. Vai alla pagina Comunicazione.

    Vai alla pagina Comunicazione

  2. Nella riga Anthos Service Mesh Upgrade, sotto la colonna Email, seleziona il pulsante di opzione per attivare le notifiche di manutenzione.

Ogni utente che vuole ricevere le notifiche deve attivarlo separatamente. Se vuoi impostare un filtro per le notifiche, la riga dell'oggetto è:

Upcoming upgrade for your ASM cluster "CLUSTER_LOCATION/CLUSTER_NAME".

Configurare il rilevamento degli endpoint (solo per le installazioni multi-cluster)

Prima di continuare, devi aver già configurato Anthos Service Mesh gestito su ogni cluster come descritto nei passaggi precedenti. Non è necessario indicare che un cluster sia un cluster principale, ovvero il comportamento predefinito. Prima di configurare il rilevamento degli endpoint, devi completare le sezioni Impostazione delle variabili di progetto e cluster e Creazione di una regola firewall.

Cluster pubblici

Configura il rilevamento degli endpoint tra i cluster pubblici

Se operi su cluster pubblici (non cluster privati), puoi configurare il rilevamento degli endpoint tra cluster pubblici o, semplicemente, di attivare il rilevamento degli endpoint tra i cluster pubblici.

Cluster privati

Configura il rilevamento degli endpoint tra cluster privati

Quando utilizzi i cluster privati di GKE, devi configurare l'endpoint del piano di controllo del cluster come endpoint pubblico anziché come endpoint privato. Fai riferimento a Configurare il rilevamento degli endpoint tra cluster privati.

Per un'applicazione di esempio con due cluster, vedi Esempio di servizio HelloWorld.

Esegue il deployment delle applicazioni

Per eseguire il deployment delle applicazioni, utilizza l'etichetta corrispondente al canale configurato durante l'installazione oppure istio-injection=enabled se utilizzi le etichette di inserimento predefinite.

Etichetta iniezione predefinita

kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev- --overwrite

Etichetta revisione

Prima di eseguire il deployment delle applicazioni, rimuovi tutte le etichette istio-injection precedenti dagli spazi dei nomi e imposta invece l'etichetta istio.io/rev=asm-managed-rapid.

Questa è l'etichetta di revisione identificata quando hai verificato il piano di controllo. Se utilizzi un'etichetta di revisione diversa, fai clic su asm-managed-rapid e sostituiscila con l'etichetta applicabile: asm-managed per Normale o asm-managed-stable per stabile.

L'etichetta di revisione corrisponde a un canale di rilascio:

Etichetta revisione Canale
asm-managed Normale
asm-managed-rapid Elasticità
asm-managed-stable Stabile
kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION_LABEL --overwrite

A questo punto hai configurato correttamente il piano di controllo gestito da Anthos Service Mesh. Se hai applicato anche il piano dati gestito, riavvia i carichi di lavoro. In caso contrario, esegui un aggiornamento in sequenza. Ora puoi eseguire il deployment delle tue applicazioni o eseguire il deployment dell'applicazione di esempio Bookbook.

Se esegui il deployment di un'applicazione in una configurazione multi-cluster, replica la configurazione di Kubernetes e del piano di controllo in tutti i cluster, a meno che tu non abbia intenzione di limitare la configurazione specifica a un sottoinsieme di cluster. La configurazione applicata a un determinato cluster è la fonte di riferimento per il cluster. Inoltre, se il cluster esegue anche Anthos Service Mesh o il servizio dell'autorità di certificazione con Mesh CA in altri spazi dei nomi, verifica che l'applicazione possa comunicare con le altre applicazioni controllate dal piano di controllo in-cluster.

Disabilita gestione automatica del piano di controllo

La disabilitazione della gestione automatica del piano di controllo non esegue il deprovisioning di alcuna risorsa. Tutte le risorse vengono lasciate nel cluster per la gestione o rimozione manuale. Per eseguire l'offboarding completo, vedi Disinstallare Anthos Service Mesh.

  1. Esegui il comando seguente per disabilitare la gestione automatica del piano di controllo:

    gcloud container fleet mesh update \
       --control-plane manual \
       --memberships MEMBERSHIP_NAME \
       --project PROJECT_ID
    
  2. Dopo qualche minuto, verifica che lo stato della gestione automatica del piano di controllo sia DISABLED:

    gcloud container fleet mesh describe --project PROJECT_ID
    

    L'output è simile al seguente:

    ...
    membershipSpecs:
      projects/projectid/locations/global/memberships/cluster-name:
        mesh:
          controlPlane: MANUAL
    membershipStates:
      projects/projectid/locations/global/memberships/cluster-name:
        servicemesh:
          controlPlaneManagement:
            state: DISABLED
        state:
          code: OK
          description: 'Revision(s) ready for use: asm-managed.'
    ...
    

    Per disinstallare completamente Anthos Service Mesh, vedi Disinstallare Anthos Service Mesh.

Passaggi successivi