Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Sep 14, 2026

Si vos charges de travail s’exécutent dans un centre de données sur site ou dans un cluster Kubernetes hébergé par un fournisseur de cloud public tiers, vous pouvez utiliser les passerelles multi-clusters d’ACK One pour bâtir un système de reprise d’activité hybride ou intercloud avec basculement automatique et transparent. Cette rubrique explique comment mettre en place rapidement un système de reprise d’activité hybride actif-actif au sein d’une même ville à l’aide d’ACK One.

Architecture

Trois composants centraux : une instance Fleet (avec GitOps en option), un cluster ACK dans le cloud et un cluster enregistré connecté à votre environnement sur site.

image

Connexion entre les composants :

  1. Toutes les ressources Alibaba Cloud partagent un seul VPC. Un cluster ACK s’exécute dans la zone de disponibilité (AZ) 1 ; un cluster enregistré se trouve dans l’AZ 2.

  2. Votre cluster sur site (ou le cluster de la plateforme tierce) se connecte au cluster enregistré via une liaison dédiée entre le centre de données et le VPC.

  3. Les deux clusters sont associés à l’instance Fleet. ACK One GitOps distribue l’application vers les deux clusters.

  4. Sur l’instance Fleet, un AlbConfig crée une passerelle multi-clusters ALB. Un Ingress au niveau du Fleet définit les règles de routage pour le trafic nord-sud et la reprise d’activité inter-zones.

Prérequis

Avant de commencer :

  • Une instance Fleet, un cluster ACK et un cluster enregistré situés dans le même VPC mais dans des zones de disponibilité différentes

  • Des blocs CIDR de nœuds et de pods non chevauchants entre le cluster ACK et le cluster Kubernetes sur site (Conception réseau pour la gestion Fleet)

  • Une liaison dédiée reliant votre centre de données sur site au VPC

  • Le type de réseau de conteneurs du cluster sur site (underlay ou overlay) est déterminé — cela influence le type de Service requis

Type de réseau Type de Service requis Cas d’utilisation
Underlay ClusterIP Les adresses IP des pods sont directement routables depuis le réseau sur site
Overlay NodePort Les adresses IP des pods ne sont pas routables ; le trafic doit entrer via les ports de nœud

Concevez le réseau et créez les clusters

  1. Créez une instance Fleet, un cluster ACK et un cluster enregistré dans le même VPC, mais dans des zones de disponibilité différentes.

  2. Vérifiez que les blocs CIDR des nœuds et des pods ne se chevauchent pas entre le cluster ACK et le cluster Kubernetes sur site.

Connectez-vous à Alibaba Cloud

  1. Connectez le cluster Kubernetes sur site au cluster enregistré (Créer un cluster enregistré).

    Pour migrer les charges de travail vers Alibaba Cloud avec des ressources élastiques : Créer un cluster hybride et ajouter des instances ECS au cluster et Planifier des pods sur des instances de conteneur élastiques déployées en tant que nœuds virtuels . Pour améliorer la disponibilité face aux pics de trafic : Créer des ECIs across zones .
  2. Connectez le réseau sur site au VPC. Consultez Connectivité réseau et Présentation des réseaux hybrides.

  3. Associez le cluster enregistré et le cluster ACK à l’instance Fleet (Gérer les clusters associés).

Distribuez l’application sur plusieurs clusters

Ces exemples ApplicationSet utilisent l’application web-demo. La rubrique Créer une application multi-clusters couvre les options avancées.

Réseau underlay

Tous les clusters utilisent des Services ClusterIP. Appliquez l’ApplicationSet suivant :

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

Réseau overlay

Le cluster sur site utilise des Services NodePort ; le cluster ACK utilise des Services ClusterIP. Étiquetez chaque cluster avant d’appliquer l’ApplicationSet.

  1. Dans Argo CD, accédez à Settings > Clusters et ajoutez ces étiquettes :

    • Cluster sur site : cluster: idc

    • Cluster ACK : cluster: ack

  2. Appliquez l’ApplicationSet suivant :

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

Configurez la passerelle multi-clusters ALB

Après avoir déployé l’application sur les deux clusters :

  1. Sur l’instance Fleet, créez un AlbConfig pour provisionner la passerelle multi-clusters ALB et ajoutez-y les deux clusters.

  2. Créez des règles de routage et des Ingress sur l’instance Fleet pour assurer la redondance active entre les zones.

Mettre en place un système de reprise d’activité inter-zones décrit la procédure de configuration complète.

Étapes suivantes