Les passerelles multi-cluster ALB étendent ALB Ingress à plusieurs clusters gérés par Distributed Cloud Container Platform for Kubernetes (ACK One). Une seule instance Application Load Balancer (ALB) sert de point d'entrée unifié et distribue le trafic vers les services backend de tous les clusters associés. Dans la plupart des cas, l'utilisation des passerelles multi-cluster ALB est identique à celle du mode mono-cluster d'ALB Ingress, à quelques différences près.
Pourquoi utiliser des passerelles multi-cluster
L'exécution d'une seule instance ALB sur plusieurs clusters offre les avantages suivants par rapport à un déploiement ALB Ingress mono-cluster :
Isolation des pannes : Le trafic est réparti entre plusieurs clusters, ce qui limite l'impact d'une panne d'un cluster à celui-ci.
Gestion unifiée du trafic : Gérez les règles de routage, les écouteurs et l'équilibrage de charge depuis un emplacement unique plutôt que de maintenir des configurations Ingress distinctes pour chaque cluster.
Ingress cohérent : Appliquez les mêmes fonctionnalités ALB — mise à l'échelle automatique, exploitation entièrement gérée et gestion sans opérations ni maintenance — à tous les clusters de votre instance Fleet.
Fonctionnement
L'architecture sépare les responsabilités du plan de contrôle et du plan de données :
Plan de contrôle — Contrôleur ALB Ingress : Surveille le serveur API pour détecter les modifications apportées aux ressources Ingress et met à jour la configuration de l'instance ALB en fonction des règles de routage. Le contrôleur gère l'instance ALB mais ne distribue pas le trafic.
Plan de données — Instance ALB : Reçoit et distribue le trafic entrant vers les services backend de tous les clusters associés, selon les règles configurées par le contrôleur.
Les composants suivants collaborent pour définir et router le trafic :
AlbConfig : CustomResourceDefinition (CRD) créée par le contrôleur ALB Ingress qui définit la configuration de l'instance ALB. Chaque AlbConfig correspond à exactement une instance ALB. En mode multi-cluster, l'annotation
alb.ingress.kubernetes.io/remote-clusterssur l'AlbConfig spécifie les clusters desservis par l'instance ALB.IngressClass : Identifie le contrôleur Ingress qui traite une ressource Ingress donnée, permettant à plusieurs contrôleurs de coexister dans le même cluster.
Ingress : Définit les règles de routage du trafic externe et les règles de contrôle d'accès. Le contrôleur ALB Ingress surveille les modifications Ingress et met à jour l'instance ALB en conséquence.
Service : Fournit une adresse IP virtuelle et un port stables pour un groupe de pods. L'instance ALB route le trafic vers les services sans avoir besoin de connaître les modifications individuelles des pods.
Limites
Le mode multi-cluster prend en charge la plupart des fonctionnalités d'ALB Ingress, à une exception près : le fractionnement du trafic par pondération et le déploiement canari ne peuvent pas être utilisés simultanément en mode multi-cluster.
| Fonctionnalité | Mode mono-cluster | Mode multi-cluster |
|---|---|---|
| Fractionnement du trafic par pondération + déploiement canari simultanés | Pris en charge | Non pris en charge |
Pour la liste complète des annotations prises en charge, consultez Annotations prises en charge par les Ingress ALB.
Configurer un AlbConfig
Créez un AlbConfig avec l'annotation alb.ingress.kubernetes.io/remote-clusters pour associer des clusters à l'instance ALB.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: ackone-gateway-demo
annotations:
# Specify the cluster IDs associated with this ALB multi-cluster gateway.
alb.ingress.kubernetes.io/remote-clusters: ${cluster1},${cluster2}
spec:
config:
name: one-alb-demo
addressType: Internet
addressAllocatedMode: Fixed
zoneMappings:
- vSwitchId: ${vsw-id1}
- vSwitchId: ${vsw-id2}
listeners:
- port: 8001
protocol: HTTP
Remplacez les espaces réservés suivants par des valeurs réelles :
| Espace réservé | Description |
|---|---|
${cluster1},${cluster2} |
ID des clusters associés à votre instance Fleet |
${vsw-id1}, ${vsw-id2} |
ID des vSwitch dans les zones où l'instance ALB est déployée |
Le tableau suivant décrit les paramètres clés :
| Paramètre | Obligatoire | Description |
|---|---|---|
metadata.name |
Oui | Nom de l'AlbConfig. |
metadata.annotations: alb.ingress.kubernetes.io/remote-clusters |
Oui | Liste séparée par des virgules des ID de cluster à ajouter à la passerelle multi-cluster ALB. Les clusters doivent déjà être associés à l'instance Fleet. |
spec.config.name |
Non | Nom de l'instance ALB. |
spec.config.addressType |
Non | Type de réseau de l'instance ALB. Valeurs valides : Internet (par défaut) — l'instance ALB est accessible via Internet et nécessite une adresse IP élastique (EIP) associée ; Intranet — l'instance ALB est accessible uniquement au sein du VPC. Lors de l'utilisation de Internet, vous êtes facturé pour les frais d'instance et les frais de bande passante ou de transfert de données pour les EIP associées. Pour plus de détails sur les tarifs, consultez Paiement à l'utilisation. |
spec.config.zoneMappings |
Oui | ID des vSwitch pour les zones où l'instance ALB est déployée. Les vSwitch doivent se trouver dans des zones prises en charge par ALB et dans le même VPC que les clusters. Si la région prend en charge deux zones ou plus, spécifiez des vSwitch dans au moins deux zones pour assurer une haute disponibilité. Pour connaître les régions et zones prises en charge, consultez Régions et zones. Pour obtenir des instructions sur la création d'un vSwitch, consultez Créer et gérer un vSwitch. |
spec.listeners |
Non | Port et protocole de l'écouteur. L'exemple ci-dessus configure un écouteur HTTP sur le port 8001. Un écouteur définit la manière dont l'instance ALB reçoit le trafic. Incluez un écouteur dans l'AlbConfig ; sinon, créez-en un manuellement avant d'utiliser les Ingress ALB. |
Pour la liste complète des champs AlbConfig, consultez Dictionnaire GlobalConfiguration d'ALB Ingress. Pour des exemples de configuration, consultez Configurer des instances ALB et des écouteurs.
Étapes suivantes
Configurez les règles de routage Ingress pour votre passerelle multi-cluster : Configurer les Ingress
En savoir plus sur la gestion des services dans ACK : Gestion des Services