Todos os produtos
Search
Central de documentação

Server Load Balancer:Implement hybrid disaster recovery with an ALB multi-cluster gateway

Última atualização: Sep 14, 2026

Se suas cargas de trabalho forem executadas em um data center on-premises ou em um cluster Kubernetes de nuvem pública de terceiros, use os gateways multicluster do ACK One para construir um sistema de recuperação de desastres híbrido ou entre nuvens com failover suave e automático. Este tópico explica como criar rapidamente um sistema de recuperação de desastres híbrida ativo-ativo na mesma cidade com o ACK One.

Arquitetura

A solução conta com três componentes principais: uma instância Fleet (com GitOps opcional), um cluster ACK na nuvem e um cluster registrado conectado ao seu ambiente on-premises.

image

Conexão entre os componentes:

  1. Todos os recursos da Alibaba Cloud compartilham uma única VPC. Um cluster ACK executa na zona de disponibilidade (AZ) 1; um cluster registrado reside na AZ 2.

  2. O cluster on-premises (ou cluster de plataforma de terceiros) conecta-se ao cluster registrado por meio de uma linha dedicada entre o data center e a VPC.

  3. Ambos os clusters associam-se à instância Fleet. O ACK One GitOps distribui a aplicação para os dois ambientes.

  4. Na instância Fleet, um AlbConfig cria um gateway multicluster ALB. Um Ingress no nível da Fleet define as regras de roteamento para tráfego norte-sul e recuperação de desastres entre zonas.

Pré-requisitos

Antes de começar:

  • Uma instância Fleet, um cluster ACK e um cluster registrado na mesma VPC, mas em zonas de disponibilidade diferentes

  • Blocos CIDR de nós e pods não sobrepostos entre o cluster ACK e o cluster Kubernetes on-premises (Network design for Fleet management)

  • Uma linha dedicada conectando o data center on-premises à VPC

  • Tipo de rede de contêiner do cluster on-premises (underlay ou overlay) definido, pois isso influencia o tipo de Service necessário

Tipo de rede

Tipo de Service necessário

Cenário de uso

Underlay

ClusterIP

Os IPs dos pods são diretamente roteáveis a partir da rede on-premises

Overlay

NodePort

Os IPs dos pods não são roteáveis; o tráfego deve entrar pelas portas do nó

Projete a rede e crie os clusters

  1. Crie uma instância Fleet, um cluster ACK e um cluster registrado na mesma VPC, porém em zonas de disponibilidade distintas.

  2. Verifique se os blocos CIDR de nós e pods não se sobrepõem entre o cluster ACK e o cluster Kubernetes on-premises.

Conecte-se à Alibaba Cloud

  1. Conecte o cluster Kubernetes on-premises ao cluster registrado (Create a registered cluster).

    Para migrar cargas de trabalho para a Alibaba Cloud com recursos elásticos: Build a hybrid cloud cluster and add ECS instances to the cluster e Schedule pods to elastic container instances that are deployed as virtual nodes . Para aumentar a disponibilidade contra picos de tráfego: Create ECIs across zones .
  2. Conecte a rede on-premises à VPC. Consulte Network connectivity e Overview of hybrid networks.

  3. Associe o cluster registrado e o cluster ACK à instância Fleet (Manage associated clusters).

Distribua a aplicação para múltiplos clusters

Os exemplos de ApplicationSet a seguir usam a aplicação web-demo. O tópico Create a multi-cluster application aborda opções avançadas.

Rede underlay

Todos os clusters usam Services do tipo ClusterIP. Aplique o seguinte ApplicationSet:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: appset-web-demo-undelay
  namespace: argocd
spec:
  template:
    metadata:
      name: '{{.metadata.annotations.cluster_id}}-web-demo'
      namespace: argocd
    spec:
      destination:
        name: '{{.name}}'
        namespace: gateway-demo
      project: default
      source:
        repoURL: https://github.com/AliyunContainerService/gitops-demo.git
        path: manifests/helm/web-demo
        targetRevision: main
        helm:
          valueFiles:
            - values.yaml
          parameters:
            - name: envCluster
              value: '{{.metadata.annotations.cluster_name}}'
      syncPolicy:
        automated: {}
        syncOptions:
          - CreateNamespace=true
  generators:
    - clusters:
        selector:
          matchExpressions:
            - values:
                - cluster
              key: argocd.argoproj.io/secret-type
              operator: In
            - values:
                - in-cluster
              key: name
              operator: NotIn
  goTemplateOptions:
    - missingkey=error
  syncPolicy:
    preserveResourcesOnDeletion: false
  goTemplate: true

Rede overlay

O cluster on-premises usa Services do tipo NodePort; o cluster ACK usa Services do tipo ClusterIP. Adicione rótulos a cada cluster antes de aplicar o ApplicationSet.

  1. No Argo CD, acesse Settings > Clusters e adicione estes rótulos:

    • Cluster on-premises: cluster: idc

    • Cluster ACK: cluster: ack

  2. Aplique o seguinte ApplicationSet:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: appset-web-demo-overlay
  namespace: argocd
spec:
  template:
    metadata:
      name: '{{.metadata.annotations.cluster_id}}-web-demo-overlay'
      namespace: argocd
    spec:
      destination:
        name: '{{.name}}'
        namespace: gateway-demo
      project: default
      source:
        repoURL: https://github.com/AliyunContainerService/gitops-demo.git
        path: manifests/helm/web-demo
        targetRevision: main
        helm:
          valueFiles:
            - values.yaml
          parameters:
            - name: isNodePort
              value: "{{.values.isNodePort}}"
            - name: envCluster
              value: '{{.metadata.annotations.cluster_name}}'
      syncPolicy:
        automated: {}
        syncOptions:
          - CreateNamespace=true
  generators:
    - clusters:
        selector:
          matchLabels:
            cluster: 'idc'
        # A key-value map for arbitrary parameters
        values:
          isNodePort: "true"
    - clusters:
        selector:
          matchLabels:
            cluster: 'ack'
        values:
          isNodePort: "false"
  goTemplateOptions:
    - missingkey=error
  syncPolicy:
    preserveResourcesOnDeletion: false
  goTemplate: true

Configure o gateway multicluster ALB

Após implantar a aplicação em ambos os clusters:

  1. Na instância Fleet, crie um AlbConfig para provisionar o gateway multicluster ALB e adicione ambos os clusters a ele.

  2. Defina regras de roteamento e Ingresses na instância Fleet para garantir redundância ativa entre zonas.

O guia Build a zone-disaster recovery system detalha todo o processo de configuração.

Próximos passos