Partilhar via


O que é o Application Gateway Ingress Controller?

O Application Gateway Ingress Controller (AGIC) é uma aplicação Kubernetes que permite que clusters Azure Kubernetes Service (AKS) utilizem o balanceador de carga nativo Azure Application Gateway L7 para expor cargas de trabalho à internet. O AGIC monitoriza o cluster Kubernetes onde está alojado e atualiza continuamente um Application Gateway para que alguns serviços selecionados fiquem expostos à internet.

O Controlador Ingress é executado num pod próprio no seu cluster AKS. O AGIC monitoriza um subconjunto dos recursos do Kubernetes para alterações. O estado do cluster AKS é traduzido para uma configuração específica do Application Gateway e aplicado a Azure Resource Manager (ARM).

Neste artigo, aprende sobre os benefícios do AGIC, as opções de implementação (add-on Helm e AKS) e as configurações de rede de contentores suportadas.

Gorjeta

Considere o Application Gateway for Containers para sua solução de ingresso do Kubernetes. Para obter mais informações, consulte Guia de início rápido: implantar o Application Gateway for Containers ALB Controller.

Benefícios do Application Gateway Ingress Controller

O AGIC ajuda a eliminar a necessidade de outro balanceador de carga ou endereço IP público à frente do cluster AKS. Evita múltiplos saltos no teu datapath antes que os pedidos cheguem ao cluster AKS. O Application Gateway comunica com os pods usando diretamente o seu endereço IP privado e não requer serviços NodePort ou KubeProxy. Esse recurso também traz um melhor desempenho para suas implantações.

O Ingress Controller é suportado exclusivamente pelos SKUs Standard_v2 e WAF_v2, que também permitem benefícios de autoescalabilidade. O Application Gateway pode reagir em resposta a um aumento ou diminuição na carga de tráfego e dimensionar de acordo, sem consumir recursos do cluster AKS.

Utilizar o Application Gateway para além do AGIC também ajuda a proteger o seu cluster AKS ao fornecer a política TLS e a funcionalidade do Web Application Firewall (WAF).

Diagrama que mostra o tráfego a fluir da internet através do Application Gateway para um cluster AKS com AGIC.

O AGIC é configurado através do recurso Kubernetes Ingress, juntamente com Service e Deployments/Pods. Ao utilizar o balanceador de carga nativo Azure Application Gateway L7, o AGIC fornece as seguintes funcionalidades:

  • Encaminhamento do URL
  • Afinidade com base no cookie
  • Terminação TLS
  • TLS ponto a ponto
  • Suporte para sites públicos, privados e híbridos
  • Firewall de aplicação Web integrada

Advertência

Por padrão, o AGIC assume a propriedade total do Gateway de Aplicações a que está ligado. O AGIC sobrescreve toda a configuração existente do Application Gateway que não esteja definida nos recursos Kubernetes Ingress. Quaisquer ouvintes, pools de backend, regras ou outras configurações previamente configuradas no Gateway de Aplicação são removidos ou substituídos quando o AGIC está ativado. Antes de ativar o AGIC num Application Gateway existente, faça backup da configuração do seu Application Gateway exportando o modelo do portal Azure. Para mais informações, consulte Backup da implementação do Application Gateway.

Se precisar que o AGIC coexista com configurações existentes de Gateway de Aplicação, consulte Configurar uma implementação partilhada de Gateway de Aplicações (apenas Helm).

Diferença entre a implantação do Helm e o add-on do AKS

Podes implementar AGIC para o teu cluster AKS usando Helm ou AKS como complemento. O principal benefício de implantar o AGIC como um complemento do AKS é que ele é mais simples do que implantar através do Helm. Para uma nova configuração, pode implementar um novo Application Gateway e um novo cluster AKS com AGIC ativado como complemento numa só linha no Azure CLI. O complemento também é um serviço totalmente gerenciado, que oferece benefícios adicionais, como atualizações automáticas e maior suporte. Ambas as formas de implantação do AGIC (complemento Helm e AKS) são totalmente suportadas pela Microsoft. Além disso, o complemento permite uma melhor integração com o AKS como um complemento de primeira classe.

Embora implemente o add-on AGIC como um pod no seu cluster AKS, existem algumas diferenças entre a versão de implementação do Helm e a versão adicional do AGIC. A lista seguinte destaca as diferenças:

  • Não podes modificar os valores de implementação do Helm no add-on AKS:
    • verbosityLevel é definido como 5 por padrão
    • usePrivateIp está definido como falso por defeito; sobrescreva esta definição usando a anotação `use-private-ip`
    • shared não é suportado no complemento
    • reconcilePeriodSeconds não é suportado no complemento
    • armAuth.type não é suportado no complemento
  • O AGIC implementado através do Helm suporta ProhibitedTargets, o que significa que o AGIC pode configurar o Application Gateway especificamente para clusters AKS sem afetar outros backends existentes. Atualmente, o complemento AGIC não suporta esse recurso.
  • Como o add-on AGIC é um serviço gerido, recebe automaticamente atualizações para a versão mais recente do add-on AGIC. Por outro lado, quando implementa o AGIC através do Helm, tem de o atualizar manualmente.

Nota

Pode implementar apenas um complemento AGIC por cluster AKS, e cada complemento AGIC pode atualmente direcionar apenas um Gateway de Aplicação. Para implementações que requerem mais do que um AGIC por cluster ou múltiplos AGICs direcionados a um único Gateway de Aplicação, use AGIC implementado através do Helm.

Tanto o Helm como o add-on AGIC não suportam o serviço ExternalName.

Rede de contentores e AGIC

O Application Gateway Ingress Controller suporta as seguintes ofertas de rede AKS:

  • Kubenet
  • CNI
  • Sobreposição CNI

O Azure CNI e o Azure CNI Overlay são as duas opções recomendadas para o Application Gateway Ingress Controller. Ao escolher um modelo de rede, considere os casos de uso de cada plugin CNI e o tipo de modelo de rede que utiliza:

Plugin CNI Modelo de rede Destaques do caso de uso
Azure CNI Overlay Sobreposição - Melhor para conservação de propriedade intelectual em redes virtuais
- Contagem máxima de nós suportada pelo API Server + 250 pods por nó
- Configuração mais simples
-Sem acesso direto ao IP externo do pod
Subrede de Pods CNI do Azure Apartamento - Acesso direto ao pod externo
- Modos para utilização eficiente de IP em redes virtuais ou suporte em grande escala de cluster
Sub-rede de Nó Azure CNI Apartamento - Acesso direto ao pod externo
- Configuração mais simples
- Escala limitada
- Uso ineficiente de IPs de rede virtual

Quando provisiona o Application Gateway for Containers num cluster que tem CNI Overlay ou CNI ativado, o Application Gateway for Containers deteta automaticamente a configuração de rede pretendida. Não precisa de alterar a configuração do Gateway ou da API Ingress para especificar CNI Overlay ou CNI.

Ao usar o Azure CNI Overlay, considere as seguintes limitações:

  • AGIC Controller: Você deve estar executando a versão v1.9.1 ou superior para aproveitar a sobreposição CNI.
  • Tamanho da sub-rede: A sub-rede do Application Gateway deve ser um prefixo /24 no máximo; apenas uma implantação é suportada por sub-rede.
  • Delegação de sub-rede: A sub-rede do Application Gateway deve ter delegação de sub-rede para Microsoft.Network/applicationGateways.
  • Peering de rede virtual regional: Não é possível implementar o Application Gateway numa rede virtual numa região e os nós do cluster AKS numa rede virtual na mesma região.
  • Peering de rede virtual global: Não pode implementar o Application Gateway numa rede virtual numa região e os nós do cluster AKS numa rede virtual noutra região.
  • O Azure CNI Overlay com Application Gateway Ingress Controller não é suportado no Azure Government cloud nem no Microsoft Azure operado pela 21Vianet (Azure na China).

Nota

O Application Gateway Ingress Controller deteta automaticamente a atualização do cluster AKS de Kubenet ou CNI para CNI Overlay. Agende a atualização durante uma janela de manutenção, pois pode ocorrer perturbação do trânsito. O controlador pode demorar alguns minutos após a atualização do cluster a detetar e configurar o suporte para CNI Overlay.

Advertência

Certifique-se de que a sub-rede do Application Gateway é uma sub-rede /24 ou menor antes de atualizar. A atualização de CNI para CNI Overlay com uma sub-rede maior (por exemplo, /23) leva a uma interrupção e requer que recrie a sub-rede do Application Gateway com um tamanho de sub-rede suportado.

Próximos passos