Configurer un maillage multicluster sur site

Ce guide explique comment configurer Anthos Service Mesh avec plusieurs instances GKE sur VMware et sur bare metal. Vous pouvez facilement étendre ce processus pour intégrer autant de clusters que vous le souhaitez dans votre maillage.

Une configuration multicluster Anthos Service Mesh peut résoudre plusieurs scénarios d'entreprise essentiels, tels que l'échelle, l'emplacement et l'isolation. Pour en savoir plus, consultez la section Cas d'utilisation multicluster. En outre, vous devez optimiser vos applications pour tirer le meilleur parti d'un maillage de services. Pour en savoir plus, consultez la page Préparer une application pour Anthos Service Mesh.

Conditions requises

Avant de commencer à suivre ce guide, nous supposons que vous utilisez des clusters nouveaux ou existants créés à l'aide de la procédure décrite sur la page Installer Anthos Service Mesh sur site.

  • Les exigences de ce guide s'ajoutent à celles répertoriées sur la page Installer Anthos Service Mesh sur site.

  • Vous aurez besoin du package de configuration utilisé précédemment pour installer Anthos Service Mesh sur votre cluster. Si vous avez besoin d'une autre copie, vous pouvez la télécharger à l'aide de la commande suivante :

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

Installer la passerelle est-ouest

  1. Installez une passerelle dédiée au trafic est-ouest dans le cluster1. Par défaut, cette passerelle est publique sur Internet. Les systèmes de production peuvent imposer des restrictions d'accès supplémentaires, telles que des règles de pare-feu, pour empêcher les attaques externes.

    asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster1 --network network1 --revision asm-198-6 | \
    istioctl --context="${CTX_CLUSTER1}" install -y -f -
    
  2. Dans le cluster2, installez une passerelle dédiée au trafic est-ouest du cluster1.

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

Afficher les services

Étant donné que les clusters se trouvent sur des réseaux distincts, vous devez afficher l'ensemble des services (*.local) sur la passerelle est-ouest des deux clusters. Bien que cette passerelle soit publique sur Internet, les services qui en dépendent ne sont accessibles que par les services disposant d'un certificat mTLS et d'un ID de charge de travail approuvés, comme s'ils se trouvaient sur le même réseau.

  1. Affichez les services via la passerelle est-ouest du cluster1.

    kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    
  2. Affichez les services via la passerelle est-ouest du cluster2.

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

Activer la détection de points de terminaison

  1. Installez un secret distant dans cluster2 pour accéder au serveur d'API du cluster1.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER1}" \
    --name=cluster1 | \
    kubectl apply -f - --context="${CTX_CLUSTER2}"
    
  2. Installez un secret distant dans cluster1 pour accéder au serveur d'API du cluster2.

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

Étape suivante