Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cuidado
A Rede SIG do Kubernetes e o Comitê de Resposta à Segurança anunciaram a próxima desativação do projeto NGINX de entrada, com a manutenção terminando em março de 2026. Não é necessária nenhuma ação imediata hoje para clusters AKS que utilizam o complemento de roteamento de aplicativos com NGINX.. A Microsoft fornecerá suporte oficial para patches de segurança críticos para recursos de entrada NGINX de complemento de roteamento de aplicativos até Novembro de 2026.
O AKS está se alinhando ao Kubernetes upstream ao mover-se para a Gateway API como o padrão de longo prazo para o gerenciamento de entrada e tráfego L7. Recomendamos que você comece a planejar seu caminho de migração com base na configuração atual:
- Usuários do complemento de roteamento de aplicativos: As cargas de trabalho de produção continuarão com suporte total até novembro de 2026. Migre para a Implementação da API do Gateway de roteamento de aplicativos para uma experiência de gerenciamento de tráfego de entrada baseada na API do Gateway.
-
Os usuários do NGINX do OSS têm várias opções:
- Migre para o complemento de roteamento de aplicativos com o NGINX para usufruir do suporte oficial até novembro de 2026 enquanto planeja sua migração de longo prazo para a API do Gateway.
- Migre para a Implementação da API do Gateway de roteamento de aplicativos para uma experiência de gerenciamento de tráfego de entrada baseada na API do Gateway.
- Migre para o Gateway de Aplicações para Contêineres, que dá suporte à API de Ingress e à API de Gateway.
- Usuários de malha de serviço: se você planeja adotar uma malha de serviço, considere o add-on de malha de serviço baseado no Istio. Use o Istio Ingress hoje e planeje migrar para a API Gateway do Istio, que agora está em disponibilidade geral.
Uma forma de rotear o protocolo HTTP e o tráfego HTTPS (seguro) para os aplicativos em execução em um cluster do AKS (Serviço de Kubernetes do Azure) é usar o objeto Ingress do Kubernetes. Quando você habilita o complemento de roteamento de aplicativos com o NGINX, ele cria, configura e gerencia um controlador de entrada no cluster do AKS.
Este artigo mostra como habilitar o controlador de entrada NGINX gerenciado e configurar um objeto de entrada para rotear o tráfego para um aplicativo no cluster do AKS.
Complemento de roteamento de aplicativo com recursos do NGINX
O complemento de roteamento de aplicativos com o NGINX fornece o seguinte:
- Configuração fácil de controladores de entrada NGINX gerenciados com base no controlador de entrada NGINX do Kubernetes.
- Integração com o DNS do Azure para gerenciamento de zona pública e privada.
- Terminação SSL com certificados armazenados no Azure Key Vault.
Para outras configurações, confira:
- Configuração de DNS e SSL.
- Configuração do complemento de roteamento de aplicativo.
- Configure o controlador de entrada NGINX interno para Azure zona DNS privada.
Important
A partir de 30 de setembro de 2027, o AKS (Serviço de Kubernetes do Azure) não dá mais suporte ao complemento da OSM (Open Service Mesh). O projeto upstream open service mesh foi desativado.
Se o cluster usa o complemento do OSM, migre para o complemento Istio antes da data de término do suporte. Este aviso de desativação se aplica apenas ao complemento do OSM gerenciado e não aborda instalações de malha de serviço de software livre ou autogerenciada. Para ver as etapas de migração, consulte as orientações de migração do complemento OSM para o complemento Istio. Para se manter informado sobre anúncios e atualizações do AKS, siga as notas de versão do AKS.
Pré-requisitos
- Uma assinatura do Azure. Caso não tenha uma assinatura do Azure, é possível criar uma conta gratuita.
- CLI do Azure versão 2.54.0 ou posterior instalada e configurada. Execute
az --versionpara encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Limitações
O complemento de roteamento de aplicativos dá suporte a até cinco zonas DNS do Azure.
O complemento de roteamento de aplicativos só pode ser habilitado em clusters do AKS com identidade gerenciada.
Todas as zonas globais do DNS do Azure integradas ao complemento precisam estar no mesmo grupo de recursos.
Todas as zonas privadas do DNS do Azure integradas ao complemento precisam estar no mesmo grupo de recursos.
Não há suporte para a edição do
ConfigMapingress-nginx no namespaceapp-routing-system.Se um valor de anotação de snippet corresponder a qualquer um dos seguintes valores bloqueados, a entrada não será configurada:
Valor bloqueado Effect load_moduleA entrada não está configurada. lua_packageA entrada não está configurada. _by_luaA entrada não está configurada. locationA entrada não está configurada. rootA entrada não está configurada. proxy_passA entrada não está configurada. serviceaccountA entrada não está configurada. {A entrada não está configurada. }A entrada não está configurada. 'A entrada não está configurada. O complemento não dá suporte oficialmente à injeção de sidecars não gerenciados por Microsoft (por exemplo, telemetria personalizada, registro em log ou agentes de segurança) nos pods de proxy ingress-nginx que ele gerencia. Se você optar por injetar seu próprio sidecar em um pod de proxy gerenciado, a Microsoft fornecerá apenas suporte em regime de melhor esforço para quaisquer problemas encontrados.
Habilitar o complemento de roteamento de aplicativos usando CLI do Azure
Habilitação em um novo cluster
Para habilitar o roteamento de aplicativos em um novo cluster, use o comando az aks create, especificando o sinalizador --enable-app-routing.
az aks create \
--resource-group <resource-group-name> \
--name <cluster-name> \
--location <location> \
--enable-app-routing \
--generate-ssh-keys
Habilitação em um cluster existente
Para habilitar o roteamento de aplicativos em um cluster existente, use o comando az aks approuting enable.
az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>
Conectar-se ao cluster do AKS
Para se conectar ao cluster do Kubernetes no computador local, use o kubectl, o cliente de linha de comando do Kubernetes. Se você quiser instalá-lo localmente, use o comando az aks install-cli. Se você usa o Azure Cloud Shell, o kubectl já estará instalado.
Configure o kubectl para se conectar ao cluster do Kubernetes usando o comando az aks get-credentials.
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Implantar um aplicativo
Os objetos de entrada do Kubernetes definem regras de roteamento para um controlador de entrada. Use a classe de entrada gerenciada do complemento de roteamento de aplicativos e anotações com suporte para configurar como seu controlador lida com o tráfego.
Crie o namespace de aplicativo chamado
aks-storepara executar os pods de exemplo usando o comandokubectl create namespace.kubectl create namespace aks-storeImplante o aplicativo de repositório do AKS usando o seguinte arquivo de manifesto YAML:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Esse manifesto cria rabbitmq, order-servicee product-serviceimplantações e store-front serviços correspondentes. O store-front Serviço expõe a porta 80, para a qual a entrada é roteada na próxima seção.
Criar o objeto De entrada
Quando você habilita o complemento de roteamento de aplicativos, ele cria uma classe de entrada chamada webapprouting.kubernetes.azure.com. Especifique essa classe em um objeto de entrada para usar o controlador de entrada NGINX gerenciado do complemento.
Copie o manifesto YAML a seguir em um novo arquivo chamado ingress.yaml e salve o arquivo no computador local.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: PrefixCrie o recurso de entrada usando o
kubectl applycomando.kubectl apply -f ingress.yaml -n aks-storeO seguinte exemplo de saída mostra o recurso criado:
ingress.networking.k8s.io/store-front created
Verificar o recurso de entrada gerenciado
Verifique se a entrada gerenciada foi criada usando o comando kubectl get ingress.
kubectl get ingress -n aks-store
O seguinte exemplo de saída mostra a entrada gerenciada criada:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Você pode verificar se o repositório aks funciona apontando seu navegador para o endereço IP público do controlador de entrada. O comando a seguir recupera o endereço IP externo atribuído pelo balanceador de carga ao Serviço do controlador de nginx entrada NGINX gerenciado no app-routing-system namespace:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Remova a visão geral do complemento de roteamento de aplicativos
Para remover o namespace associado, use o comando kubectl delete namespace.
kubectl delete namespace aks-store
Para remover o complemento de roteamento de aplicativos do cluster, use o comando az aks approuting disable.
az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>
Observação
Para evitar possíveis interrupções de tráfego no cluster quando você desabilitar o complemento de roteamento de aplicativos, alguns recursos do Kubernetes, incluindo configMaps, segredos e a implantação que executa o controlador, permanecem no cluster. Esses recursos estão no namespace app-routing-system. Você poderá remover esses recursos se eles não forem mais necessários excluindo o namespace com kubectl delete ns app-routing-system.
Conteúdo relacionado
- Habilite a implementação da API do Gateway para roteamento de aplicativos para gerenciar o tráfego de entrada com a API do Gateway do Kubernetes.
- Configurar configurações de entrada personalizadas mostra como criar uma configuração avançada de entrada. Configure um domínio personalizado usando DNS do Azure para gerenciar zonas DNS e configurar uma entrada segura.
- Para se integrar com um balanceador de carga interno do Azure e configurar uma zona DNS privada do Azure para habilitar a resolução de DNS para os pontos de extremidade privados e resolver domínios específicos, confira Configurar o controlador de entrada do NGINX interno para a zona privada do DNS do Azure.
- Saiba mais sobre como monitorar as métricas do controlador ingress-nginx incluídas no complemento de roteamento de aplicativos com o Prometheus no Grafana (versão prévia) como parte da análise do desempenho e do uso do aplicativo.