Aggiungere cluster ad Anthos Service Mesh on-prem

Questa guida spiega come configurare Anthos Service Mesh con più GKE su VMware. Puoi estendere questo processo per incorporare un numero qualsiasi di cluster nel tuo mesh.

Una configurazione multi-cluster Anthos Service Mesh può risolvere diversi scenari aziendali cruciali, come scalabilità, località e isolamento. Per maggiori informazioni, consulta Casi d'uso multi-cluster. Inoltre, devi ottimizzare le applicazioni per ottenere il massimo da un mesh di servizi. Per ulteriori informazioni, consulta Preparazione di un'applicazione per Anthos Service Mesh.

Se hai installato una versione precedente di Anthos Service Mesh, consulta l'articolo sull'upgrade di Anthos Service Mesh GKE su VMware. Questa installazione abilita le funzionalità supportate sul cluster.

Requisiti

Prima di iniziare, questa guida presuppone che tu stia utilizzando cluster nuovi o esistenti creati seguendo i passaggi descritti in Installazione di Anthos Service Mesh on-premise.

  • I requisiti per questa guida si aggiungono a quelli elencati in Installazione di Anthos Service Mesh on-premise.

  • Anthos Service Mesh 1.8 o versioni successive installate sui cluster. Consulta Installazione di Anthos Service Mesh on-premise per installare o eseguire l'upgrade dei cluster alla versione richiesta.

    gkectl version

    Se non hai installato gkectl, vedi Download di GKE on-prem.

  • Tutti i cluster sono in esecuzione su GKE on-prem su vSphere.

  • Avrai bisogno del pacchetto di configurazione utilizzato in precedenza per installare Anthos Service Mesh sul tuo cluster. Se ti serve un'altra copia, puoi scaricarla utilizzando questo comando:

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

    Non è necessario impostare alcun valore nel pacchetto di configurazione.

Installazione del gateway est-ovest

  1. Installa un gateway in cluster1 dedicato al traffico est-ovest. Per impostazione predefinita, questo gateway sarà pubblico su Internet. I sistemi di produzione potrebbero richiedere ulteriori limitazioni di accesso, ad esempio regole firewall, per evitare attacchi esterni.

    asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster1 --network network1 --revision asm-186-8 | \
    istioctl --context="${CTX_CLUSTER1}" install -y -f -
    
  2. Installa un gateway in cluster2 dedicato al traffico est-ovest per cluster1.

    /asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster2 --network network2 | \
    istioctl --context="${CTX_CLUSTER2}" install -y -f -
    

Servizi di esposizione

Poiché i cluster si trovano su reti separate, devi esporre tutti i servizi (*.local) sul gateway est-ovest in entrambi i cluster. Sebbene questo gateway sia pubblico su Internet, i servizi sottostanti sono accessibili solo ai servizi con un certificato mTLS attendibile e un ID carico di lavoro, proprio come se si trovassero sulla stessa rete.

  1. Esponi i servizi tramite il gateway est-ovest per cluster1.

    kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    
  2. Esponi i servizi tramite il gateway est-ovest per cluster2.

    kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    

Abilitazione del rilevamento degli endpoint in corso...

  1. Installa un secret remoto in cluster2 che fornisce l'accesso al server API di cluster1.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER1}" \
    --name=cluster1 | \
    kubectl apply -f - --context="${CTX_CLUSTER2}"
    
  2. Installa un secret remoto in cluster1 che fornisca l'accesso al server API di cluster2.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER2}" \
    --name=cluster2 | \
    kubectl apply -f - --context="${CTX_CLUSTER1}"
    

Che cosa succede dopo?