O ALB Ingress permite usar a anotação alb.ingress.kubernetes.io/actions.<service-name> para configurar grupos de servidores de backend. É possível associar esses grupos pelo nome do serviço ou pelo ID do grupo de servidores, o que viabiliza a associação híbrida de Pods em um cluster K8s e instâncias ECS fora do cluster. Ao combinar produtos como ALB, Cloud Enterprise Network (CEN) e roteadores de trânsito, o ALB encaminha requisições para servidores em VPCs de outras regiões (associação entre regiões) ou para servidores em data centers on-premises (associação on-premises). Este tópico descreve como usar o ALB Ingress para implementar associações híbridas, entre regiões e on-premises.
Sumário
Observações de uso
O nome do serviço na anotação
alb.ingress.kubernetes.io/actions.<service-name>deve corresponder ao nome do serviço dobackendno camporule.Ao configurar um grupo de servidores de backend no campo
rule, defina o nome da porta de serviço embackendcomouse-annotation.Use a anotação
alb.ingress.kubernetes.io/actions.<service name>para associar vários grupos de servidores a uma instância ALB.Uma instância ALB básica suporta no máximo cinco grupos de servidores.
Se você associar um grupo de servidores usando tanto
ServerGroupIDquantoServiceName+ServicePort, o sistema prioriza oServerGroupIDpara identificar o grupo de servidores de backend.
Cenário 1: Encaminhar requisições para múltiplos serviços
Pré-requisitos
Crie uma VPC chamada VPC1 em uma região. Crie dois vSwitches, VSW1 e VSW2, em zonas diferentes na VPC1. Para mais informações, consulte Criar e gerenciar uma VPC e Criar e gerenciar vSwitches.
Crie um cluster ACK ou ACK Serverless na VPC1. Para mais informações, consulte Criar um cluster gerenciado ACK e Criar um cluster ACK Serverless.
Instale o ALB Ingress Controller no cluster ACK ou ACK Serverless. Para mais informações, consulte Gerenciar o componente ALB Ingress Controller.
Crie uma instância ALB em um cluster ACK ou ACK Serverless usando um ALBConfig e implante os serviços de backend
tea-svcecoffee-svc. Para mais informações, consulte Criar e usar um ALB Ingress para expor serviços.
Cenário
Conforme ilustrado na figura a seguir, a ação de encaminhamento para múltiplos grupos de servidores do ALB Ingress permite criar ou associar vários grupos de servidores de backend. Configure ServiceName+ServicePort para encaminhar requisições a múltiplos Services no cluster.
Procedimento
-
Configure o ALB Ingress.
Implante o conteúdo a seguir no arquivo
tea-ingress.yaml. Essa configuração define como as requisições são encaminhadas para múltiplos Services no 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 Acesse o serviço pela linha de comando. Para mais informações, consulte Acessar o serviço.
Cenário 2: Encaminhar para pods do cluster e ECS externo
Pré-requisitos
Crie uma VPC chamada VPC1 em uma região. Para mais informações, consulte Criar e gerenciar uma VPC.
Crie um cluster ACK ou ACK Serverless na VPC1. Para mais informações, consulte Criar um cluster gerenciado ACK e Criar um cluster ACK Serverless.
Crie pelo menos uma instância ECS na VPC1, a mesma VPC onde a instância ALB está implantada. Implante um serviço web na instância ECS. Para mais informações, consulte Criar uma instância personalizada e Implantar uma pilha LNMP.
Crie um grupo de servidores. Para mais informações, consulte Criar e gerenciar grupos de servidores.
Adicione a instância ECS externa ao grupo de servidores. Para mais informações, consulte Criar e gerenciar grupos de servidores.
Use a anotação
alb.ingress.kubernetes.io/actions.<service-name>para configurar uma ação de encaminhamento e associar o grupo de servidores criado.
Cenário
Este cenário mostra como encaminhar requisições tanto para pods no cluster quanto para instâncias ECS externas na mesma VPC. Crie um grupo de servidores no console ALB ou via API, adicione a instância ECS externa a ele e referencie seu ServerGroupID na anotação do Ingress. Essa configuração cria um backend híbrido, conforme mostrado na figura a seguir.
Procedimento
-
Configure o ALB Ingress.
Implante o conteúdo a seguir no arquivo
tea-ingress.yaml. Essa configuração define um serviço que encaminha requisições tanto para Pods no cluster quanto para instâncias ECS fora do 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 Acesse o serviço pela linha de comando. Para mais informações, consulte Acessar o serviço.
Cenário 3: Encaminhar para pods do cluster e ECS entre regiões
Pré-requisitos
-
Crie duas VPCs em regiões diferentes, com vSwitches em zonas distintas em cada VPC. Por exemplo, crie a VPC1 na região China (Chengdu) e a VPC2 na região China (Hangzhou).
Na VPC1, o vSwitch VSW1 está na Zona A e o vSwitch VSW2 está na Zona B.
Na VPC2, o vSwitch VSW3 está na Zona H e o vSwitch VSW4 está na Zona I.
Para mais informações, consulte Criar e gerenciar uma VPC e Criar e gerenciar vSwitches.
Crie um cluster ACK ou ACK Serverless na VPC1 e crie uma instância ALB usando um AlbConfig no cluster. Para mais informações, consulte Criar um cluster gerenciado ACK e Criar e usar um ALB Ingress para expor serviços.
Crie pelo menos uma instância ECS na VPC2 e implante um serviço web nessa instância. Para mais informações, consulte Criar uma instância personalizada e Implantar uma pilha LNMP.
Crie uma instância CEN e adquira um plano de largura de banda para ela. Para mais informações, consulte Criar uma instância CEN e Adquirir um plano de largura de banda.
Crie uma instância de roteador de trânsito nas regiões China (Chengdu) e China (Hangzhou). Para mais informações, consulte Criar uma instância de roteador de trânsito.
Cenário
Este cenário demonstra como usar o CEN para estabelecer uma conexão entre regiões de VPCs. Isso permite adicionar uma instância ECS de uma região diferente a um grupo de servidores. Ao referenciar o ServerGroupID no Ingress, é possível rotear tráfego tanto para pods no cluster quanto para a instância ECS entre regiões, conforme mostrado nas figuras a seguir.
Por exemplo, se um cluster ACK ou ACK Serverless e uma instância ALB estiverem implantados na VPC1 na região China (Chengdu), use uma combinação de ALB e CEN para encaminhar requisições a uma instância ECS na VPC2, na região China (Hangzhou).
Procedimento
-
Configure o CEN e crie uma conexão VPC entre regiões.
Para mais informações, consulte Associar servidores entre regiões a uma instância ALB.
-
Adicione a instância ECS entre regiões ao grupo de servidores ALB.
Para mais informações, consulte Adicionar ou remover servidores de backend.
-
Use a anotação
alb.ingress.kubernetes.io/actions.<service-name>para configurar uma ação de encaminhamento e associar um grupo de servidores existente. Quando um serviço for requisitado, essa ação encaminhará requisições para Pods no cluster e para servidores ECS em uma VPC entre regiões fora do cluster.Implante o conteúdo a seguir no arquivo
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
Cenário 4: Encaminhar para pods do cluster e servidores on-premises
Pré-requisitos
Crie uma instância CEN e um roteador de trânsito para essa instância. Para mais informações, consulte Criar uma instância CEN e Criar uma instância de roteador de trânsito.
Crie um Express Connect e um VBR. Para mais informações, consulte Solicitar um circuito Express Connect e Criar e gerenciar VBRs.
Observações de uso
Para limitações sobre a associação de servidores on-premises a uma instância ALB, consulte Limitações.
Cenário
Este cenário mostra como usar CEN, Express Connect e VBR para conectar seu data center on-premises à Alibaba Cloud. Isso permite adicionar servidores on-premises a um grupo de servidores. Ao referenciar o ServerGroupID no Ingress, é possível rotear tráfego tanto para pods no cluster quanto para seus servidores on-premises, conforme mostrado nas figuras a seguir.
Por exemplo, se um cluster ACK ou ACK Serverless e uma instância ALB estiverem implantados na VPC1 na região China (Chengdu), use uma combinação de ALB, CEN, VBR e Express Connect para encaminhar requisições a servidores on-premises na mesma região.
Procedimento
-
Configure o CEN para conectar a VPC onde a instância ALB reside e o VBR ao roteador de trânsito. Isso conecta seu data center on-premises à Alibaba Cloud por meio do VBR. Para mais informações, consulte Associar servidores on-premises na mesma região a uma instância ALB.
-
Use a anotação
alb.ingress.kubernetes.io/actions.<service-name>para configurar uma ação de encaminhamento e associar um grupo de servidores existente especificado. Isso encaminha requisições para Pods no cluster e para servidores de Internet Data Center (IDC) on-premises fora do cluster.Implante o conteúdo a seguir no arquivo
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