Ce guide explique comment configurer un maillage multicluster pour les plates-formes suivantes :
- GKE sur VMware
- Google Distributed Cloud Virtual pour Bare Metal
- GKE sur AWS
- Amazon EKS
Ce guide explique comment configurer deux clusters, mais vous pouvez étendre ce processus pour intégrer à votre maillage autant de clusters que vous le souhaitez.
Avant de commencer
Ce guide suppose que vous avez installé Anthos Service Mesh à l'aide de asmcli install
. Vous avez besoin de asmcli
et du package de configuration que asmcli
télécharge dans le répertoire que vous avez spécifié dans --output_dir
lors de l'exécution de asmcli install
.
Si vous devez effectuer la configuration, suivez les étapes décrites dans la section Premiers pas pour effectuer les tâches suivantes :
- Installer les outils nécessaires
- Télécharger
asmcli
- Accorder des autorisations d'administrateur de cluster
- Valider votre projet et votre cluster
Vous devez accéder aux fichiers kubeconfig de tous les clusters que vous configurez dans le maillage.
Configurer des variables d'environnement et des espaces réservés
Vous avez besoin des variables d'environnement suivantes lorsque vous installez la passerelle est-ouest.
Créez une variable d'environnement pour le numéro de projet. Dans la commande suivante, remplacez FLEET_PROJECT_ID par l'ID du projet hôte du parc.
export PROJECT_NUMBER=$(gcloud projects describe FLEET_PROJECT_ID --format="value(projectNumber)")
Créez une variable d'environnement pour l'identifiant de maillage :
export MESH_ID="proj-${PROJECT_NUMBER}"
Créez des variables d'environnement pour les noms de cluster au format requis par
asmcli
:export CLUSTER_1="cn-FLEET_PROJECT_ID-global-CLUSTER_NAME_1" export CLUSTER_2="cn-FLEET_PROJECT_ID-global-CLUSTER_NAME_2"
Installer la passerelle est-ouest
Dans les commandes suivantes :
Remplacez
CLUSTER_NAME_1
etCLUSTER_NAME_2
par les noms de vos clusters.Remplacez
PATH_TO_KUBECONFIG_1
etPATH_TO_KUBECONFIG_2
par les fichiers kubeconfig de vos clusters.
Mesh CA
Installez dans le cluster1 une passerelle dédiée au trafic est-ouest vers
$CLUSTER_2
. 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 ${MESH_ID} \ --cluster ${CLUSTER_1} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y --set spec.values.global.pilotCertProvider=kubernetes -f -
Installez dans
$CLUSTER_2
une passerelle dédiée au trafic est-ouest du$CLUSTER_1
.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_2} \ --network default \ --revision asm-1118-4 | \ istioctl install --kubeconfig=PATH_TO_KUBECONFIG_2 -y --set spec.values.global.pilotCertProvider=kubernetes -f -
Istio CA
Installez dans le cluster1 une passerelle dédiée au trafic est-ouest vers
$CLUSTER_2
. 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 ${MESH_ID} \ --cluster ${CLUSTER_1} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y -f -
Installez dans
$CLUSTER_2
une passerelle dédiée au trafic est-ouest du$CLUSTER_1
.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_2} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_2 install -y -f -
Services associés
É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.
Affichez les services via la passerelle est-ouest du
CLUSTER_NAME_1
.kubectl --kubeconfig=PATH_TO_KUBECONFIG_1 apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Affichez les services via la passerelle est-ouest du
CLUSTER_NAME_2
.kubectl --kubeconfig=PATH_TO_KUBECONFIG_2 apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Activer la détection des points de terminaison
Exécutez la commande asmcli create-mesh
pour activer la détection des points de terminaison. Cet exemple n'affiche que deux clusters, mais vous pouvez exécuter la commande pour activer la découverte de points de terminaison sur des clusters supplémentaires, sous réserve du nombre maximal autorisé de clusters que vous pouvez ajouter à votre parc.
./asmcli create-mesh \
FLEET_PROJECT_ID \
PATH_TO_KUBECONFIG_1 \
PATH_TO_KUBECONFIG_2