Multi-Cluster-Mesh lokal einrichten

In dieser Anleitung wird beschrieben, wie Sie Anthos Service Mesh mit mehreren GKE on VMware und Bare Metal einrichten. Sie können diesen Prozess erweitern, um eine beliebige Anzahl von Clustern in Ihr Mesh-Netzwerk einzubinden.

In diesem Leitfaden wird davon ausgegangen, dass Sie GKE on VMware oder Bare Metal bereits installiert haben. Folgen Sie dazu den Schritten unter Anthos Service Mesh lokal installieren. Lesen Sie Lokales Upgrade von Anthos Service Mesh ausführen, wenn Sie eine frühere Version von Anthos Service Mesh installiert haben. In diesem Leitfaden werden die Cluster als cluster1 auf network1 und cluster2 auf network2 bezeichnet. Außerdem werden mit Umgebungsvariablen die Clusterkontexte als CTX_CLUSTER1 und CTX_CLUSTER2 definiert.

Eine Anthos Service Mesh-Konfiguration mit mehreren Clustern kann in mehreren wichtigen Unternehmensszenarien wie Skalierung, Standortwahl und Isolation eine Lösung sein. Weitere Informationen finden Sie unter Multi-Cluster-Anwendungsfälle. Darüber hinaus sollten Sie Ihre Anwendungen optimieren, um die Vorteile eines Service Mesh optimal zu nutzen. Weitere Informationen finden Sie unter Anwendung für Anthos Service Mesh vorbereiten.

Voraussetzungen

In dieser Anleitung davon ausgegangen, dass Sie neue oder vorhandene Cluster verwenden, die mit den Schritten unter Anthos Service Mesh lokal installieren erstellt wurden.

  • Die Anforderungen für diese Anleitung gelten zusätzlich zu den Anforderungen unter Anthos Service Mesh lokal installieren.

  • Sie benötigen das Konfigurationspaket, das zuvor verwendet wurde, um Anthos Service Mesh auf Ihrem Cluster zu installieren. Wenn Sie eine weitere Kopie benötigen, können Sie sie mit dem folgenden Befehl herunterladen:

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

east-west-Gateway installieren

  1. Installieren Sie ein Gateway in cluster1 speziell für east-west traffic. Standardmäßig ist dieses Gateway im Internet öffentlich zugänglich. Für Produktionssysteme sind möglicherweise zusätzliche Zugriffseinschränkungen erforderlich, z. B. Firewallregeln, um externe Angriffe zu verhindern.

    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. Installieren Sie in cluster2 ein Gateway für east-west-Traffic für cluster1.

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

Verfügbar machende Dienste

Da sich die Cluster in separaten Netzwerken befinden, müssen Sie alle Dienste (*.local) auf dem east-west-Gateway in beiden Clustern verfügbar machen. Während dieses Gateway öffentlich im Internet verfügbar ist, können Dienste nur mit Diensten mit einem vertrauenswürdigen mTLS-Zertifikat und einer Arbeitslast-ID aufgerufen werden, genauso wie sie sich im selben Netzwerk befinden.

  1. Machen Sie Dienste über das east-west-Gateway für cluster1 verfügbar.

    kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    
  2. Machen Sie Dienste über das east-west-Gateway für cluster2 verfügbar.

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

Endpunkterkennung aktivieren

  1. Installieren Sie in cluster2 ein Remote-Secret, das Zugriff auf den API-Server von cluster1 ermöglicht.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER1}" \
    --name=cluster1 | \
    kubectl apply -f - --context="${CTX_CLUSTER2}"
    
  2. Installieren Sie in cluster1 ein Remote-Secret, das Zugriff auf den API-Server von cluster2 ermöglicht.

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

Nächste Schritte