Um ingress gateway expõe um ponto de entrada unificado na camada 7 e roteia requisições HTTP da mesma porta TCP para diferentes Kubernetes Services com base no conteúdo da requisição. Associe um gateway Istio a vários ingress gateways em uma instância do Service Mesh (ASM) para que compartilhem uma única configuração de gateway e reduzam o retrabalho.
Pré-requisitos
Instância do ASM versão 1.13.4.46 ou posterior criada. Para obter instruções, consulte Crie uma instância do ASM.
Pelo menos dois ingress gateways implantados. Para obter instruções, consulte Crie um ingress gateway.
Aplicação implantada no cluster adicionado à instância do ASM. Para mais informações, consulte Deploy an application to an ASM-associated cluster.
Informações básicas
O campo spec.selector de um recurso Gateway seleciona os ingress gateways associados ao gateway Istio. A seleção ocorre quando os rótulos dos ingress gateways correspondem ao seletor. Para compartilhar um único gateway Istio entre vários ingress gateways, use o campo podLabels e aplique o mesmo rótulo a cada um deles. Em seguida, especifique esse rótulo no campo spec.selector do Gateway.
Neste exemplo, há dois registros A configurados para o nome de domínio example.com. Eles apontam para duas instâncias do Classic Load Balancer (CLB), e cada instância CLB associa-se a um ingress gateway na instância do ASM. Como ambos os ingress gateways exigem o mesmo gateway Istio, associe o gateway Istio aos ingress gateways para manter a consistência das configurações.
Um Gateway configura apenas as portas em que um proxy escuta. Configure também um VirtualService para definir as regras de roteamento de tráfego.
Para mais informações sobre os campos de um ingress gateway e de um Gateway, consulte CRD fields for an ASM gateway e Gateway.
Procedimento
Os passos a seguir usam o rótulo key1: value1 tanto para os ingress gateways quanto para o Gateway.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na página Ingress Gateway, localize um dos ingress gateways de destino e clique em View YAML na coluna Actions.
-
Na caixa de diálogo Edit, configure o campo
podLabelse clique em OK.... spec: podLabels: key1: value1 ...Repita esse processo para todos os outros ingress gateways de destino: visualize o YAML de cada ingress gateway e configure o mesmo rótulo
podLabels. -
Associe um gateway Istio aos ingress gateways.
Na página de detalhes da instância do ASM, escolha no painel de navegação à esquerda.
Na página Gateway, localize o Gateway de destino e clique em View YAML na coluna Operator.
-
Na caixa de diálogo Edit, configure o campo
selectore clique em OK.apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: bookinfo-gateway namespace: default spec: selector: key1: value1 servers: - hosts: - '*' port: name: http number: 80 protocol: HTTP
Próximos passos
Para definir como os ingress gateways roteiam requisições para Kubernetes Services, configure um VirtualService. Para mais informações sobre os campos de um VirtualService, consulte VirtualService. Para obter instruções, consulte Gerencie virtual services.