Configura un mesh ibrido

Questa pagina spiega come configurare un mesh ibrido per seguenti piattaforme:

  • Ibrido: GKE su Google Cloud e Google Distributed Cloud (anteprima)
  • Ibrido: GKE su Google Cloud e Google Distributed Cloud (anteprima)

Seguendo queste istruzioni, configuri due cluster, ma puoi estendere questa procedura per incorporare un numero qualsiasi di cluster nella tua mesh.

Prerequisiti

  • Tutti i cluster devono essere registrati nello stesso modo progetto host del parco risorse.
  • Tutti i cluster GKE devono trovarsi una configurazione VPC condivisa sulla stessa rete.
  • L'indirizzo del control plane Kubernetes e l'indirizzo del gateway del cluster devono essere accessibili da ogni cluster del mesh. Il progetto Google Cloud in cui La posizione dei cluster GKE deve essere consentita per la creazione tipi di bilanciamento del carico esterni. Ti consigliamo di utilizzare le reti autorizzate e le regole firewall VPC per limitare l'accesso.
  • I cluster privati, inclusi i cluster privati GKE, non sono supportati. Se usi cluster on-premise, tra cui Google Distributed Cloud e Google Distributed Cloud, L'indirizzo del piano di controllo Kubernetes e quello del gateway devono essere raggiungibili dai pod nei cluster GKE. Ti consigliamo di utilizzare CloudVPN per connettere Subnet del cluster GKE con la rete del cluster on-premise.
  • Se utilizzi Istio CA, usa lo stesso certificato radice personalizzato per tutti i cluster.

Prima di iniziare

Devi avere accesso ai file kubeconfig di tutti i cluster che stai configurando nel mesh. Per il cluster GKE, per creare un'istanza nuovo file kubeconfig per il cluster, puoi esportare KUBECONFIG env con percorso completo del file come valore nel terminale e genera il file kubeconfig .

Configura le variabili di ambiente e i segnaposto

Quando installi l'API di Google Cloud, sono necessarie le seguenti variabili di ambiente gateway est-ovest.

  1. Crea una variabile di ambiente per il numero del progetto. Nel comando seguente, sostituisci FLEET_PROJECT_ID con l'ID del progetto host del parco risorse.

    export PROJECT_NUMBER=$(gcloud projects describe FLEET_PROJECT_ID --format="value(projectNumber)")
    
  2. Crea una variabile di ambiente per l'identificatore del mesh.

    export MESH_ID="proj-${PROJECT_NUMBER}"
    
  3. Crea variabili di ambiente per i nomi di rete.

    • Nei cluster GKE viene utilizzato per impostazione predefinita il nome della rete del cluster:

      export NETWORK_1="PROJECT_ID-CLUSTER_NETWORK"

    • Altri cluster utilizzano default:

      export NETWORK_2="default"

    Tieni presente che se hai installato Cloud Service Mesh su altri cluster con valori diversi per --network_id, devi passare gli stessi valori a NETWORK_2.

Installa il gateway est-ovest

  1. Installa un gateway in CLUSTER_1 (il tuo cluster GKE) dedicato al traffico da est a ovest verso CLUSTER_2 (il tuo cluster on-premise):

    asm/istio/expansion/gen-eastwest-gateway.sh \
        --mesh ${MESH_ID} \
        --network ${NETWORK_1}  \
        --revision asm-1215-7 | \
        ./istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y -f -
    

    Tieni presente che questo gateway è pubblico su internet per impostazione predefinita. I sistemi di produzione potrebbero richiedere ulteriori limitazioni di accesso, ad esempio regole di firewall, per prevenire attacchi esterni.

  2. Installa un gateway in CLUSTER_2 dedicato al traffico est-ovest per CLUSTER_1.

    asm/istio/expansion/gen-eastwest-gateway.sh \
        --mesh ${MESH_ID} \
        --network ${NETWORK_2} \
        --revision asm-1215-7 | \
        ./istioctl --kubeconfig=PATH_TO_KUBECONFIG_2 install -y -f -
    

Esporre i servizi

Poiché i cluster si trovano su reti separate, devi esporre tutti i servizi (\*.local) sul gateway est-ovest in entrambi i cluster. Mentre questo gateway è su internet, i servizi sottostanti sono accessibili solo un certificato mTLS attendibile e un ID carico di lavoro, proprio come se si trovassero sullo stesso indirizzo in ogni rete.

Esporre i servizi tramite il gateway est-ovest per ogni cluster

    kubectl --kubeconfig=PATH_TO_KUBECONFIG_1 apply -n istio-system -f \
        asm/istio/expansion/expose-services.yaml
    kubectl --kubeconfig=PATH_TO_KUBECONFIG_2 apply -n istio-system -f \
        asm/istio/expansion/expose-services.yaml

Abilita rilevamento endpoint

Esegui il comando asmcli create-mesh per attivare il rilevamento degli endpoint. Questo mostra solo due cluster, ma puoi eseguire il comando per abilitare il rilevamento degli endpoint su cluster aggiuntivi, in base alle Limite di servizio GKE Hub.

  ./asmcli create-mesh \
      FLEET_PROJECT_ID \
      PATH_TO_KUBECONFIG_1 \
      PATH_TO_KUBECONFIG_2

Verifica la connettività multi-cluster

Vedi Inserimento di proxy sidecar.