Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Cross-region disaster recovery with multiple ACK clusters in different VPCs (using CEN to connect VPC networks)

Última actualización: Sep 29, 2026

Service Mesh ASM ofrece capacidades de distribución de tráfico y conmutación por error entre regiones para los servicios de aplicaciones. La distribución de tráfico entre regiones enruta el tráfico a varios clústeres según los pesos configurados, lo que permite equilibrar la carga en múltiples regiones. La conmutación por error entre regiones traslada el tráfico de una región con errores hacia otras regiones para lograr la recuperación ante desastres. Este tema toma como ejemplo la aplicación Bookinfo y describe cómo usar la conmutación por error y la distribución de tráfico entre regiones para implementar la recuperación ante desastres y el equilibrio de carga.

Planificación de red

Antes de empezar, planifique los bloques CIDR, los nombres y otros detalles de sus vSwitch, VPC y clústeres. En este tema se utiliza la siguiente planificación:

Nota

Para obtener más información sobre la planificación de direcciones de múltiples clústeres en el plano de datos, consulte Multi-cluster network planning.

  • Planificación de red de vSwitch y VPC

    • Planificación de red VPC

      Objeto

      Nombre de VPC

      Región

      Bloque CIDR IPv4

      Clúster

      vpc-hangzhou

      cn-hangzhou

      20.0.0.0/8

      vpc-shanghai

      cn-shanghai

      21.0.0.0/8

      Service Mesh

      vpc-hangzhou2

      cn-hangzhou

      192.168.0.0/16

    • Planificación de red de vSwitch

      Importante

      Para evitar conflictos de rutas después de conectar las VPC mediante CEN, asegúrese de que los dos vSwitch no utilicen bloques CIDR superpuestos.

      Objeto

      Nombre del vSwitch

      VPC

      Bloque CIDR IPv4

      Clúster

      vpc-hangzhou-switch-1

      vpc-hangzhou

      20.0.0.0/16

      vpc-shanghai-switch-1

      vpc-shanghai

      21.0.0.0/16

      Service Mesh

      vpc-hangzhou-switch-2

      vpc-hangzhou2

      192.168.0.0/24

  • Planificación de red de Pod y Service para los clústeres

    Nombre del clúster

    Región

    VPC

    CIDR de Pod

    CIDR de Service

    ack-hangzhou

    cn-hangzhou

    vpc-hangzhou

    10.0.0.0/16

    172.16.0.0/16

    ack-shanghai

    cn-shanghai

    vpc-shanghai

    10.1.0.0/16

    172.17.0.0/16

Paso 1: Crear clústeres en diferentes regiones

  1. Cree VPC y vSwitch en las regiones China (Hangzhou) y China (Shanghai) de acuerdo con la planificación anterior. Para obtener más información, consulte Create a vSwitch y Create a VPC and a vSwitch.

  2. Cree clústeres en las regiones China (Hangzhou) y China (Shanghai) con las VPC y la planificación de red descritas anteriormente. Para obtener más información, consulte Create an ACK managed cluster.

  3. Cree una instancia de ASM en la región China (Hangzhou) de acuerdo con la planificación anterior. Para obtener más información, consulte Create an ASM instance.

Paso 2: Usar CEN para conectar VPC entre regiones

Utilice CEN para conectar las redes VPC entre los clústeres y entre los clústeres y Service Mesh.

  1. Inicie sesión en la consola de Cloud Enterprise Network y cree una instancia de CEN. Para obtener más información, consulte Create a Cloud Enterprise Network instance.

  2. Cree transit routers.

    1. En la página Cloud Enterprise Network instances, haga clic en la instancia de CEN creada en Step 1. Después, en la pestaña Basic Information, haga clic en Create Transit Router.

    2. En el cuadro de diálogo Create Transit Router, seleccione una Region, introduzca un Name y haga clic en Confirm.

    En este ejemplo se crean dos transit routers:

    • Region: China (Shanghai), Name: shanghai-router.

    • Region: China (Hangzhou), Name: hangzhou-router.

  3. Agregue VPC a los transit routers. Repita los siguientes pasos tanto para el transit router de Shanghai como para el de Hangzhou con el fin de conectar sus respectivas VPC.

    1. En la página Cloud Enterprise Network instances, haga clic en la instancia de CEN creada en Step 1. Luego, en la pestaña Basic Information, haga clic en el ID del transit router recién creado para ir a su página de detalles.

    2. Haga clic en la pestaña Intra-region Connections y luego en Create Network Instance Connection. Establezca Instance Type en Virtual Private Cloud (VPC) y seleccione la instancia de VPC correspondiente a la región en Network Instance.

    3. Mantenga el resto de los ajustes con sus valores predeterminados y haga clic en Create.

  4. Configure el ancho de banda entre regiones.

    1. Haga clic en el transit router creado en Step 2. En el lado derecho de la página, haga clic en Create Network Instance Connection.

    2. En el cuadro de diálogo Connect Network Instance, configure los ajustes y haga clic en Create.

      El siguiente ejemplo muestra la configuración de Hangzhou a Shanghai. Region hace referencia a la región actual y Peer Region a la región de destino. Para obtener más información sobre las opciones de configuración, consulte Inter-region connection. Configure los siguientes ajustes: establezca Instance Type en Inter-region Connection, Region en China (Hangzhou), Connection Name en to-shanghai, Peer Region en China (Shanghai), Bandwidth Allocation Method en Pay-by-Data-Transfer y Bandwidth en 1 Mbps. Expanda Advanced Configuration y seleccione las siguientes casillas de verificación: Automatically Associate with Default Route Table of Transit Router, Automatically Propagate System Routes to Default Route Table of Transit Router y Automatically Publish Routes to Peer Region.

      Después de crearla, puede consultar la nueva instancia en la pestaña Inter-region Connections.

  5. Agregue reglas de security group.

    El siguiente ejemplo utiliza el complemento de red Flannel. Agregue el bloque CIDR de Pod del clúster par al security group de cada clúster.

    Nota

    Si utiliza el complemento de red Terway, use el bloque CIDR del vSwitch del clúster. Inicie sesión en la consola de VPC y busque el bloque CIDR del vSwitch en la página vSwitch, dentro de la columna IPv4 CIDR.

    1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

    2. Obtenga los bloques CIDR de Pod.

      1. En la página Clusters, seleccione la región China (Shanghai), haga clic en el nombre del clúster ack-shanghai y, en la página Cluster Information, vaya a la pestaña Basic Information para obtener el bloque CIDR de Pod del clúster ack-shanghai.

      2. Regrese a la página Clusters, seleccione la región China (Hangzhou), haga clic en el nombre del clúster ack-hangzhou y, en la página Cluster Information, vaya a la pestaña Basic Information para obtener el bloque CIDR de Pod del clúster ack-hangzhou.

    3. Configure los security groups.

      1. En la página Cluster Information de cada clúster, vaya a la pestaña Basic Information y haga clic en el ID del security group junto a Control Plane Security Group.

      2. En la pestaña Security Group Details, dentro de Inbound, haga clic en Add Rule.

      3. Establezca Protocol Type en All, defina Source con el bloque CIDR de Pod del clúster par, mantenga el resto de los ajustes con sus valores predeterminados y luego haga clic en Actions → Save.

    4. Inicie sesión en los nodos de ambos clústeres y use el comando ping para probar la conectividad entre ellos. Para obtener más información, consulte Log on to a node.

Paso 3: Agregar clústeres a la instancia de ASM y crear una puerta de enlace de entrada administrada

  1. Agregue los clústeres de las regiones China (Hangzhou) y China (Shanghai) a la instancia de ASM. Para obtener más información, consulte Add a cluster to an ASM instance.

  2. Cree una puerta de enlace de entrada.

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      annotations:
        asm.alibabacloud.com/managed-by-asm: 'true'
      name: ingressgateway
      namespace: istio-system
    spec:
      gatewayType: ingress
      dnsPolicy: ClusterFirst
      externalTrafficPolicy: Local
      hostNetwork: false
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: 80
      - name: https
        port: 443
        protocol: TCP
        targetPort: 443
      replicaCount: 1
      resources:
        limits:
          cpu: '2'
          memory: 2G
        requests:
          cpu: 200m
          memory: 256Mi
      rollingMaxSurge: 100%
      rollingMaxUnavailable: 25%
      runAsRoot: true
      serviceType: LoadBalancer

Paso 4: Desplegar la aplicación de demostración Bookinfo

Importante

Los siguientes pasos requieren cambiar varias veces los contextos de kubeconfig. Se recomienda configurar los archivos kubeconfig de ambos clústeres en el mismo archivo y usar kubectl config use-context para alternar entre contextos. También puede utilizar kubecm o kubectx para gestionar los archivos kubeconfig de varios clústeres.

  1. Despliegue la aplicación Bookinfo en los clústeres ack-hangzhou y ack-shanghai.

    kubectl apply -f bookinfo.yaml
  2. Conéctese a la instancia de ASM mediante kubectl y cree las reglas de enrutamiento.

    1. Cree el archivo asm.yaml con el siguiente contenido.

      Expandir para ver el contenido YAML

      apiVersion: networking.istio.io/v1alpha3
      kind: Gateway
      metadata:
        name: bookinfo-gateway
      spec:
        selector:
          istio: ingressgateway # use istio default controller
        servers:
        - port:
            number: 80
            name: http
            protocol: HTTP
          hosts:
          - "*"
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: VirtualService
      metadata:
        name: bookinfo
      spec:
        hosts:
        - "*"
        gateways:
        - bookinfo-gateway
        http:
        - match:
          - uri:
              exact: /productpage
          - uri:
              prefix: /static
          - uri:
              exact: /login
          - uri:
              exact: /logout
          - uri:
              prefix: /api/v1/products
          route:
          - destination:
              host: productpage
              port:
                number: 9080
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: productpage
      spec:
        host: productpage
        subsets:
        - name: v1
          labels:
            version: v1
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: reviews
      spec:
        host: reviews
        subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
        - name: v3
          labels:
            version: v3
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: ratings
      spec:
        host: ratings
        subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
        - name: v2-mysql
          labels:
            version: v2-mysql
        - name: v2-mysql-vm
          labels:
            version: v2-mysql-vm
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: details
      spec:
        host: details
        subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
      ---
      	  
    2. Cree las reglas de enrutamiento.

      kubectl apply -f asm.yaml
  3. Compruebe que la aplicación Bookinfo se haya desplegado correctamente.

    1. Dirección de Obtain the ingress gateway.

    2. En la barra de direcciones de su navegador, introduzca http://{dirección IP de la puerta de enlace de entrada}/productpage y actualice la página varias veces para observar el enrutamiento round-robin predeterminado.

      Cada vez que actualiza la página, accede a una de las versiones v1, v2 o v3 del servicio reviews. Notará que el tráfico hacia las tres versiones del servicio reviews se distribuye en una proporción aproximada de 1:1:1.

      La página de reviews-v1 solo muestra reseñas de texto sin calificaciones de estrellas; la de reviews-v2 muestra calificaciones con estrellas negras, y la de reviews-v3 presenta calificaciones con estrellas rojas.

Paso 5: Usar la conmutación por error y la distribución de tráfico entre regiones

Configurar la conmutación por error entre regiones

  1. Deshabilite el servicio reviews en el clúster ack-hangzhou.

    1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

    2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Workloads > Deployments.

    3. En la página Deployments, establezca Namespace en default y haga clic en Scale en la columna Actions, a la derecha de reviews-v1.

    4. En el cuadro de diálogo Scale, establezca Desired Number of Pods en 0 y haga clic en OK.

  2. Configure DestinationRule.

    Configure DestinationRule para que, si el servicio reviews no responde en 1 segundo, se expulse durante 1 minuto.

    1. En la página de detalles de la instancia de ASM, elija Traffic Management Center > DestinationRule en el panel de navegación izquierdo.

    2. En la página DestinationRule, haga clic en YAML en la columna Actions, junto a reviews.

    3. En el panel Edit, agregue el siguiente contenido y haga clic en OK.

      spec:
        ......
        trafficPolicy:
          connectionPool:
            http:
              maxRequestsPerConnection: 1
          outlierDetection:
            baseEjectionTime: 1m
            consecutive5xxErrors: 1
            interval: 1s
      • maxRequestsPerConnection: número máximo de solicitudes por conexión.

      • baseEjectionTime: duración mínima de la expulsión.

      • consecutive5xxErrors: número de errores consecutivos.

      • interval: intervalo entre las comprobaciones de expulsión.

  3. Habilite la conmutación por error entre regiones.

    1. En la página de detalles de la instancia de ASM, elija ASM Instance > Base Information en el panel de navegación izquierdo.

    2. Versión de instancia de ASM anterior a 1.22.6.66

      1. En la página Base Information, haga clic en Geolocation-based Load Balancing, a la derecha de Setting.

      2. En el cuadro de diálogo Geolocation-based Failover, configure que cuando policy source sea cn-shanghai se realice la conmutación por error a cn-hangzhou, y cuando policy source sea cn-hangzhou, se aplique fail over to cn-shanghai. Luego, haga clic en Submit.

      Versión de instancia de ASM 1.22.6.66 o posterior

      1. En la página Base Information, haga clic en Geolocation-based Load Balancing, a la derecha de Setting.

      2. Haga clic en Specify priority rules for regions dentro de Cross-region Rules. Establezca Failed Region en cn-shanghai y The region to which the traffic is preferentially routed en cn-hangzhou.

      3. Haga clic en Add. Después, establezca Failed Region en cn-hangzhou y Preferred Failover Region en cn-shanghai. Haga clic en Save.

  4. Ejecute el siguiente comando para enviar 10 solicitudes a la aplicación Bookinfo y contar cuántas veces se enrutan a la versión v2 del servicio reviews.

    for ((i=1;i<=10;i++));do curl http://<ingress gateway address on port 80 in ack-hangzhou cluster>/productpage 2>&1|grep full.stars;done|wc -l

    Salida esperada:

    20

    Verá que se devuelven 20 líneas a partir de 10 solicitudes (cada solicitud enrutada al servicio reviews v2 devuelve dos líneas que contienen full stars). Esto indica que las 10 solicitudes se dirigieron al servicio reviews v2 en el clúster ack-shanghai, por lo que la conmutación por error entre regiones funcionó correctamente.

Configurar la distribución de tráfico entre regiones

Importante

La distribución de tráfico entre regiones solo es compatible con instancias de ASM de la versión 1.22.6.66 o posterior.

  1. Inicie sesión en la consola de ASM. En el panel de navegación izquierdo, elija Service Mesh > Mesh Management.

  2. En la página Mesh Management, haga clic en el nombre de la instancia de ASM. En el panel de navegación izquierdo, elija Instance Information > Base Information.

  3. En la página Base Information, haga clic en Geolocation-based Load Balancing, a la derecha de Configure a Geolocation-based Load Balancing.

  4. Haga clic en Configure a traffic distribution rule. Establezca Source en cn-hangzhou, Destination en cn-shanghai y Traffic Percentage en 10 %. Haga clic en Save.

    Nota

    De forma predeterminada, el equilibrio de carga basado en geolocalización usa el modo de conmutación por error. Primero debe hacer clic en Disable en la esquina superior derecha de la página antes de poder cambiar al modo de distribución de tráfico y habilitarlo.

  5. Ejecute el siguiente comando para enviar 10 solicitudes a la aplicación Bookinfo y comprobar que la distribución de tráfico entre regiones funciona correctamente.

    for ((i=1;i<=10;i++));do curl http://<ingress gateway address on port 80 in ack-hangzhou cluster>/productpage 2>&1|grep full.stars;done

    Salida esperada:

    <!-- full stars: -->
    <!-- full stars: -->

    Verá dos líneas que contienen full stars de un total de 10 solicitudes. Esto indica que 9 solicitudes se enroutaron al servicio reviews v1 en el clúster ack-hangzhou y 1 solicitud al servicio reviews v2 en el clúster ack-shanghai. El tráfico se distribuyó correctamente entre los clústeres según los pesos configurados.

Preguntas frecuentes

¿Por qué falla la adición de un clúster de Kubernetes a ASM aunque haya conectado las VPC del clúster mediante Cloud Enterprise Network (CEN)?

Si sus clústeres están en regiones distintas y no ha adquirido un plan de transferencia de datos entre regiones ni ha configurado correctamente el tráfico entre ellas, el plano de control de ASM no podrá conectarse a los clústeres del plano de datos, lo que provoca que falle la adición del clúster.

Para resolver este problema, vuelva a configurar el tráfico entre regiones en Cloud Enterprise Network (CEN) con el fin de conectar las VPC de los clústeres. Para obtener más información, consulte Step 2: Use CEN to connect VPCs across regions.