Le plan de contrôle distant ASM déploie les composants du plan de contrôle Alibaba Cloud Service Mesh (ASM) dans un cluster non Alibaba Cloud. Les proxys sidecar de ce cluster se connectent alors directement au plan de contrôle distant, ce qui optimise la distribution des configurations et réduit la latence de push.
Quand utiliser le plan de contrôle distant ASM
L'utilité du plan de contrôle distant pour votre mesh dépend de l'emplacement de vos clusters de plan de données :
Clusters de plan de données dans des VPC Alibaba Cloud — Les charges de travail du plan de données se connectent directement au plan de contrôle géré par ASM via le réseau Virtual Private Cloud (VPC) d'Alibaba Cloud. La latence réseau est faible et la distribution des configurations du plan de contrôle s'effectue sans encombre ; le plan de contrôle distant n'est donc pas nécessaire.
Clusters de plan de données sur un autre service cloud ou dans un centre de données sur site — Ces clusters se connectent au plan de contrôle ASM via Internet ou d'autres moyens spécifiques. Ce réseau pouvant être instable ou limité en bande passante, utilisez le plan de contrôle distant ASM pour réduire la latence de push.
Le plan de contrôle distant modifie également l'exploitation du mesh : il remplace le fichier kubeconfig utilisé pour les ressources du mesh, impose la désactivation d'une autre fonctionnalité ASM et redémarre les passerelles ASM du cluster. Consultez la section Considérations avant de prendre votre décision.
Fonctionnement
La figure suivante illustre l'architecture globale du plan de contrôle distant ASM.
Considérations
Avant d'activer le plan de contrôle distant ASM, tenez compte des points suivants :
Fichier kubeconfig pour les ressources du mesh — Une fois le plan de contrôle distant ASM activé, créez les ressources Kubernetes liées au service mesh à l'aide du fichier kubeconfig de l'instance ASM. L'utilisation du fichier kubeconfig du cluster non Alibaba Cloud risque d'écraser ces ressources.
Fonctionnalité mutuellement exclusive — Le plan de contrôle distant ASM entre en conflit avec la fonctionnalité Use the Kubernetes API of clusters on the data plane to access Istio resources. Avant d'activer le plan de contrôle distant, assurez-vous que cette fonctionnalité est désactivée.
Sens d'accès entre les clusters — Par défaut, l'accès entre les charges de travail du plan de contrôle géré et les services du plan de contrôle distant est unidirectionnel. Pour connaître la règle complète et les options disponibles, consultez la section Accès inter-clusters.
Le basculement vers le plan de contrôle distant entraîne le redémarrage des passerelles ASM du cluster. Évaluez l'impact avant de procéder.
Prérequis
Vous avez créé une instance ASM version 1.22 ou ultérieure. Pour plus d'informations, consultez la rubrique Créer une instance ASM.
-
Vous avez ajouté deux clusters de plan de données à l'instance ASM. Pour plus d'informations, consultez la rubrique Ajouter des clusters à une instance ASM. Les exemples de cette rubrique utilisent les deux clusters suivants :
cluster-1 : un cluster Container Service for Kubernetes (ACK) Alibaba Cloud dont les proxys sidecar peuvent se connecter directement au plan de contrôle ASM.
cluster-2 : le cluster non Alibaba Cloud utilisé dans cette rubrique. Ses proxys sidecar ne peuvent pas se connecter directement au plan de contrôle ASM ou sa connectivité réseau est limitée. Le cluster-2 peut être un cluster enregistré externe ou un cluster distant. Pour savoir comment ajouter un cluster non Alibaba Cloud à une instance ASM, consultez les rubriques Gérer les applications de cluster enregistré via ASM ou Ajouter un cluster Kubernetes en important le kubeconfig.
Étape 1 : Activer le plan de contrôle distant
-
Utilisez le fichier kubeconfig de l'instance ASM et exécutez la commande suivante pour modifier la ressource ASMMeshConfig :
kubectl edit ASMMeshconfig -
Ajoutez la configuration
.spec.externalIstiodConfigurationssuivante à la ressource ASMMeshConfig :apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMMeshConfig metadata: name: default spec: # The other existing fields under spec are omitted here. externalIstiodConfigurations: ${ClusterID of cluster-2}: replicas: 2 # The resources configuration is also supported here. It has the same field structure as the resource configuration of a pod. If it is left empty, the default configurations provided by ASM are used.Avant d'appliquer cette modification, consultez la section Considérations.
Étape 2 : Déployer des applications et exécuter un test
Déployez les applications sleep et httpbin dans le cluster-2. Pour obtenir des instructions, consultez la rubrique Déployer l'application httpbin.
-
Utilisez le fichier kubeconfig du cluster-2 et exécutez la commande suivante :
kubectl get podRésultat attendu :
NAME READY STATUS RESTARTS AGE httpbin-7df7fxxxxx-xxxxx 2/2 Running 0 3h15m sleep-6b7f9xxxxx-xxxxx 2/2 Running 0 3h15mUn proxy sidecar est injecté dans les deux pods, qui sont tous deux dans l'état Running.
-
Exécutez la commande suivante pour accéder à httpbin depuis l'application sleep :
kubectl exec deploy/sleep -it -- curl httpbin:8000/status/418Résultat attendu :
-=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""`
Accès inter-clusters
ASM fournit une découverte de services globale. Par défaut, l'accès entre les deux plans de contrôle est unidirectionnel. Les charges de travail gérées par le plan de contrôle géré ASM peuvent accéder aux services gérés par le plan de contrôle distant. En revanche, les services gérés par le plan de contrôle distant ne peuvent pas accéder aux services gérés par le plan de contrôle géré. Les appels du plan de contrôle géré vers le plan de contrôle distant utilisent mTLS par défaut et la passerelle est-ouest ASM est également prise en charge.
Si vous n'effectuez aucune action, ce comportement d'accès par défaut reste en vigueur. Sinon, choisissez l'une des options suivantes :
L'accès mutuel n'est pas requis — Utilisez la fonctionnalité de conservation du trafic intra-cluster. Pour plus d'informations, consultez la rubrique Activer la fonctionnalité de conservation du trafic intra-cluster local ASM dans les scénarios multi-clusters.
L'accès mutuel est requis — Pour obtenir des instructions, consultez la rubrique Obtenir un accès mutuel entre les charges de travail du plan de contrôle distant et du plan de contrôle géré.