Configurazione di un mesh multi-cluster on-premise

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

Questa guida presuppone che tu abbia già installato GKE on VMware o on bare metal seguendo i passaggi indicati in Installazione di Anthos Service Mesh on-premise. Se hai installato una versione precedente di Anthos Service Mesh, consulta l'articolo sull'upgrade di Anthos Service Mesh on-premise. Questa guida fa riferimento ai cluster come cluster1 su network1 e cluster2 su network2. Utilizza inoltre le variabili di ambiente per definire i contesti del cluster come CTX_CLUSTER1 e CTX_CLUSTER2.

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.

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.

  • 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.10-asm asm
    

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-1106-2 | \
    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?