ALB Ingress prend en charge l'annotation alb.ingress.kubernetes.io/actions.<service-name> pour configurer les groupes de serveurs backend. Vous pouvez associer ces groupes par nom de service ou par ID de groupe de serveurs, ce qui permet une association hybride des Pods au sein d'un cluster Kubernetes et des instances ECS externes au cluster. En combinant des produits tels qu'ALB, Cloud Enterprise Network (CEN) et les routeurs de transit, vous pouvez acheminer les requêtes vers des serveurs situés dans des VPC d'autres régions (association interrégionale) ou vers des serveurs de centres de données sur site (association sur site). Cette rubrique décrit comment utiliser ALB Ingress pour mettre en œuvre des associations hybrides, interrégionales et vers des centres de données sur site.
Table des matières
Notes d'utilisation
Le nom de service spécifié dans l'annotation
alb.ingress.kubernetes.io/actions.<service-name>doit correspondre au nom de service du champbackenddans la règlerule.Lors de la configuration d'un groupe de serveurs backend, le nom du port de service sous
backenddans le champruledoit être défini suruse-annotation.Utilisez l'annotation
alb.ingress.kubernetes.io/actions.<service name>pour associer plusieurs groupes de serveurs à une instance ALB.Une instance ALB de base prend en charge un maximum de cinq groupes de serveurs.
Si vous associez un groupe de serveurs en utilisant à la fois
ServerGroupIDetServiceName+ServicePort, le système privilégieServerGroupIDpour faire correspondre le groupe de serveurs backend.
Scénario 1 : Transférer les requêtes vers plusieurs services
Prérequis
Créez un VPC nommé VPC1 dans une région. Créez deux vSwitches, VSW1 et VSW2, dans différentes zones de disponibilité au sein de VPC1. Pour plus d'informations, consultez les rubriques Créer et gérer un VPC et Créer et gérer des vSwitches.
Créez un cluster ACK ou ACK Serverless dans VPC1. Pour plus d'informations, consultez les rubriques Créer un cluster ACK managé et Créer un cluster ACK Serverless.
Installez le contrôleur ALB Ingress dans le cluster ACK ou ACK Serverless. Pour plus d'informations, consultez la rubrique Gérer le composant ALB Ingress Controller.
Créez une instance ALB dans un cluster ACK ou ACK Serverless à l'aide d'un ALBConfig, puis déployez les services backend
tea-svcetcoffee-svc. Pour plus d'informations, consultez la rubrique Créer et utiliser un ALB Ingress pour exposer des services.
Scénario
Comme illustré dans la figure suivante, l'action de transfert multi-groupes de serveurs d'ALB Ingress vous permet de créer ou d'associer plusieurs groupes de serveurs backend en configurant ServiceName+ServicePort pour transférer les requêtes vers plusieurs Services au sein du cluster.
Procédure
-
Configurez ALB Ingress.
Déployez le contenu suivant dans le fichier
tea-ingress.yaml. Cela définit la manière dont les requêtes sont transférées vers plusieurs Services au sein du cluster.# This Ingress forwards requests to different backend server groups based on the hostname and path, with traffic distributed according to weights. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 80, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotation Accédez au service depuis la ligne de commande. Pour plus d'informations, consultez la rubrique Accéder au service.
Scénario 2 : Transférer vers les pods du cluster et les ECS externes
Prérequis
Créez un VPC nommé VPC1 dans une région. Pour plus d'informations, consultez la rubrique Créer et gérer un VPC.
Créez un cluster ACK ou ACK Serverless dans VPC1. Pour plus d'informations, consultez les rubriques Créer un cluster ACK managé et Créer un cluster ACK Serverless.
Créez au moins une instance ECS dans VPC1 (le même VPC que celui où l'instance ALB est déployée) et déployez-y un service web. Pour plus d'informations, consultez les rubriques Créer une instance personnalisée et Déployer une pile LNMP.
Créez un groupe de serveurs. Pour plus d'informations, consultez la rubrique Créer et gérer des groupes de serveurs.
Ajoutez l'instance ECS externe au groupe de serveurs. Pour plus d'informations, consultez la rubrique Créer et gérer des groupes de serveurs.
Utilisez l'annotation
alb.ingress.kubernetes.io/actions.<service-name>pour configurer une action de transfert et associer le groupe de serveurs créé.
Scénario
Ce scénario montre comment transférer les requêtes à la fois vers les pods au sein d'un cluster et vers des instances ECS externes dans le même VPC. Créez un groupe de serveurs dans la console ALB ou via l'API, ajoutez-y l'instance ECS externe, puis référencez son ServerGroupID dans l'annotation Ingress. Cela crée un backend hybride, comme illustré dans la figure suivante.
Procédure
-
Configurez ALB Ingress.
Déployez le contenu suivant dans le fichier
tea-ingress.yaml. Cela définit un service qui transfère les requêtes à la fois vers les Pods au sein du cluster et vers les instances ECS à l'extérieur du cluster.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 30, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }, { "ServerGroupID": "sgp-71aexb9y93ypo*****", "Weight": 30 }, { "ServerGroupID": "sgp-slygpbvm2cydo*****", "Weight": 20 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotation Accédez au service depuis la ligne de commande. Pour plus d'informations, consultez la rubrique Accéder au service.
Scénario 3 : Transférer vers les pods du cluster et les ECS interrégionaux
Prérequis
-
Créez deux VPC dans différentes régions, avec des vSwitches créés dans différentes zones de disponibilité au sein de chaque VPC. Par exemple, créez VPC1 dans la région Chine (Chengdu) et VPC2 dans la région Chine (Hangzhou).
Dans VPC1, le vSwitch VSW1 se trouve dans la zone A et le vSwitch VSW2 dans la zone B.
Dans VPC2, le vSwitch VSW3 se trouve dans la zone H et le vSwitch VSW4 dans la zone I.
Pour plus d'informations, consultez les rubriques Créer et gérer un VPC et Créer et gérer des vSwitches.
Créez un cluster ACK ou ACK Serverless dans VPC1, puis créez une instance ALB à l'aide d'un AlbConfig dans le cluster. Pour plus d'informations, consultez les rubriques Créer un cluster ACK managé et Créer et utiliser un ALB Ingress pour exposer des services.
Créez au moins une instance ECS dans VPC2 et déployez-y un service web. Pour plus d'informations, consultez les rubriques Créer une instance personnalisée et Déployer une pile LNMP.
Créez une instance CEN et achetez un plan de bande passante associé. Pour plus d'informations, consultez les rubriques Créer une instance CEN et Acheter un plan de bande passante.
Créez une instance de routeur de transit dans les régions Chine (Chengdu) et Chine (Hangzhou). Pour plus d'informations, consultez la rubrique Créer une instance de routeur de transit.
Scénario
Ce scénario illustre comment utiliser CEN pour établir une connexion interrégionale entre des VPC. Cela vous permet d'ajouter une instance ECS d'une autre région à un groupe de serveurs. En référençant son ServerGroupID dans l'Ingress, vous pouvez acheminer le trafic à la fois vers les pods du cluster et vers l'instance ECS interrégionale, comme illustré dans les figures suivantes.
Par exemple, un cluster ACK ou ACK Serverless et une instance ALB sont déployés dans VPC1 dans la région Chine (Chengdu). Vous pouvez utiliser une combinaison d'ALB et de CEN pour transférer les requêtes vers une instance ECS dans VPC2 dans la région Chine (Hangzhou).
Procédure
-
Configurez CEN et créez une connexion VPC interrégionale.
Pour plus d'informations, consultez la rubrique Attacher des serveurs interrégionaux à une instance ALB.
-
Ajoutez l'instance ECS interrégionale au groupe de serveurs ALB.
Pour plus d'informations, consultez la rubrique Ajouter ou supprimer des serveurs backend.
-
Utilisez l'annotation
alb.ingress.kubernetes.io/actions.<service-name>pour configurer une action de transfert et associer un groupe de serveurs existant. Lorsqu'un service est sollicité, cette action transfère les requêtes vers les Pods au sein du cluster et vers les serveurs ECS dans un VPC interrégional à l'extérieur du cluster.Déployez le contenu suivant dans le fichier
tea-ingress.yaml.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 30, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }, { "ServerGroupID": "sgp-71aexb9y93ypo*****", "Weight": 30 }, { "ServerGroupID": "sgp-slygpbvm2cydo*****", "Weight": 20 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotation
Scénario 4 : Transférer vers les pods du cluster et les serveurs sur site
Prérequis
Créez une instance CEN et un routeur de transit associé. Pour plus d'informations, consultez les rubriques Créer une instance CEN et Créer une instance de routeur de transit.
Créez une connexion Express Connect et un VBR. Pour plus d'informations, consultez les rubriques Demander un circuit Express Connect et Créer et gérer des VBR.
Notes d'utilisation
Pour connaître les limitations relatives à l'association de serveurs sur site à une instance ALB, consultez la section Limitations.
Scénario
Ce scénario montre comment utiliser CEN, Express Connect et un VBR pour connecter votre centre de données sur site à Alibaba Cloud. Cela vous permet d'ajouter des serveurs sur site à un groupe de serveurs. En référençant le ServerGroupID dans l'Ingress, vous pouvez acheminer le trafic à la fois vers les pods du cluster et vers vos serveurs sur site, comme illustré dans les figures suivantes.
Par exemple, un cluster ACK ou ACK Serverless et une instance ALB sont déployés dans VPC1 dans la région Chine (Chengdu). Vous pouvez utiliser une combinaison d'ALB, CEN, d'un VBR et d'Express Connect pour transférer les requêtes vers des serveurs sur site dans la même région.
Procédure
-
Configurez CEN pour connecter le VPC hébergeant l'instance ALB et le VBR au routeur de transit. Cela connecte votre centre de données sur site à Alibaba Cloud via le VBR. Pour plus d'informations, consultez la rubrique Attacher des serveurs sur site dans la même région à une instance ALB.
-
Utilisez l'annotation
alb.ingress.kubernetes.io/actions.<service-name>pour configurer une action de transfert et associer un groupe de serveurs existant spécifié. Cela transfère les requêtes vers les Pods au sein du cluster et vers les serveurs de centre de données Internet (IDC) sur site à l'extérieur du cluster.Déployez le contenu suivant dans le fichier
tea-ingress.yaml.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tea-ingress annotations: alb.ingress.kubernetes.io/actions.forward: | [{ "type": "ForwardGroup", "ForwardConfig": { "ServerGroups" : [{ "ServiceName": "tea-svc", "Weight": 30, "ServicePort": 80 }, { "ServiceName": "coffee-svc", "Weight": 20, "ServicePort": 80 }, { "ServerGroupID": "sgp-ihydxb9y93ypo*****", "Weight": 30 }, { "ServerGroupID": "sgp-pd0ipbvm2cydo*****", "Weight": 20 }] } }] spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /path pathType: Prefix backend: service: name: forward port: name: use-annotation