El plano de control remoto de ASM despliega los componentes del plano de control de Alibaba Cloud Service Mesh (ASM) en un clúster que no pertenece a Alibaba Cloud. Los sidecar proxies de dicho clúster se conectan directamente al plano de control remoto, lo cual mejora la eficiencia en el envío de configuraciones y reduce la latencia de transmisión.
Cuándo usar el plano de control remoto de ASM
La aplicabilidad del plano de control remoto a su malla depende de dónde se ejecuten los clústeres del plano de datos:
Clústeres del plano de datos en VPC de Alibaba Cloud: las cargas de trabajo del plano de datos se conectan directamente al plano de control administrado de ASM a través de la red de nube privada virtual (VPC) de Alibaba Cloud. Dado que la latencia de red es baja y las configuraciones del plano de control se entregan sin problemas, no se requiere el plano de control remoto.
Clústeres del plano de datos en otro servicio en la nube o en un centro de datos local: estos clústeres se conectan al plano de control de ASM a través de Internet u otros medios especiales, por lo que la red puede ser inestable o tener un ancho de banda limitado. Use el plano de control remoto de ASM para reducir la latencia de envío.
El plano de control remoto también modifica la forma de operar la malla: cambia el archivo kubeconfig que usa para los recursos de la malla, requiere deshabilitar otra función de ASM y reinicia las puertas de enlace de ASM en el clúster. Consulte Considerations antes de tomar una decisión.
Funcionamiento
A continuación se muestra la arquitectura general del plano de control remoto de ASM.
Consideraciones
Antes de habilitar el plano de control remoto de ASM, tenga en cuenta lo siguiente:
Archivo kubeconfig para recursos de la malla: después de implementar el plano de control remoto de ASM, debe crear los recursos de Kubernetes relacionados con la malla de servicios mediante el archivo kubeconfig de la instancia de ASM. Si usa el archivo kubeconfig del clúster que no pertenece a Alibaba Cloud, dichos recursos podrían sobrescribirse.
Función mutuamente excluyente: el plano de control remoto de ASM entra en conflicto con la función Use the Kubernetes API of clusters on the data plane to access Istio resources. Antes de habilitar el plano de control remoto, asegúrese de que esta función esté deshabilitada.
Dirección de acceso entre clústeres: de forma predeterminada, el acceso entre las cargas de trabajo del plano de control administrado y los servicios del plano de control remoto es unidireccional. Para consultar la regla completa y las opciones disponibles, consulte Cross-cluster access.
Al cambiar al plano de control remoto, se reinician las puertas de enlace de ASM en el clúster. Evalúe el impacto antes de ejecutar esta operación.
Requisitos previos
Se creó una instancia de ASM versión 1.22 o posterior. Para obtener más información, consulte Create an ASM instance.
-
Se agregaron dos clústeres del plano de datos a la instancia de ASM. Para obtener más información, consulte Add clusters to an ASM instance. Los ejemplos de este tema usan los siguientes dos clústeres:
cluster-1: un clúster de Container Service for Kubernetes (ACK) de Alibaba Cloud cuyos sidecar proxies pueden conectarse directamente al plano de control de ASM.
cluster-2: el clúster que no pertenece a Alibaba Cloud usado en este tema. Sus sidecar proxies no pueden conectarse directamente al plano de control de ASM o su conectividad de red es limitada. cluster-2 puede ser un registered cluster externo o un clúster remoto. Para obtener más información sobre cómo agregar un clúster que no pertenece a Alibaba Cloud a una instancia de ASM, consulte Manage registered cluster applications through ASM o Add a Kubernetes cluster by importing kubeconfig.
Paso 1: Habilitar el plano de control remoto
-
Use el archivo kubeconfig de la instancia de ASM y ejecute el siguiente comando para editar el recurso ASMMeshConfig:
kubectl edit ASMMeshconfig -
Agregue la siguiente configuración
.spec.externalIstiodConfigurationsal recurso 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.Antes de aplicar este cambio, revise Considerations.
Paso 2: Desplegar aplicaciones y ejecutar una prueba
Despliegue la aplicación sleep y la aplicación httpbin en cluster-2. Para obtener instrucciones, consulte Deploy the httpbin application.
-
Use el archivo kubeconfig de cluster-2 y ejecute el siguiente comando:
kubectl get podSalida esperada:
NAME READY STATUS RESTARTS AGE httpbin-7df7fxxxxx-xxxxx 2/2 Running 0 3h15m sleep-6b7f9xxxxx-xxxxx 2/2 Running 0 3h15mSe inyectó un sidecar proxy en ambos pods y ambos se encuentran en estado Running.
-
Ejecute el siguiente comando para acceder a httpbin desde la aplicación sleep:
kubectl exec deploy/sleep -it -- curl httpbin:8000/status/418Salida esperada:
-=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""`
Acceso entre clústeres
ASM proporciona descubrimiento global de servicios. De forma predeterminada, el acceso entre los dos planos de control es unidireccional. Las cargas de trabajo administradas por el plano de control administrado de ASM pueden acceder a los servicios administrados por el plano de control remoto. Sin embargo, los servicios administrados por el plano de control remoto no pueden acceder a los servicios del plano de control administrado. Las llamadas desde el plano de control administrado hacia el plano de control remoto usan mTLS de forma predeterminada, y también se admite la puerta de enlace este-oeste de ASM.
Si no realiza ninguna acción, este comportamiento de acceso predeterminado permanecerá vigente. De lo contrario, elija una de las siguientes opciones:
No se requiere acceso mutuo: use la función de retención de tráfico intraclúster. Para obtener más información, consulte Enable ASM local intra-cluster traffic retention feature in multi-cluster scenarios.
Se requiere acceso mutuo: para obtener instrucciones, consulte Achieve mutual access between remote control plane and managed control plane workloads.