Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Atenção
A Rede SIG Kubernetes e o Comité de Resposta à Segurança anunciaram a próxima retirada do projeto Ingress NGINX, com a manutenção a terminar em março de 2026. Hoje em dia, não é necessária uma ação imediata para clusters AKS que utilizam o complemento de encaminhamento de aplicações com NGINX. A Microsoft fornecerá suporte oficial para patches de segurança críticos para recursos adicionais NGINX Ingress de encaminhamento de aplicações até novembro de 2026.
O AKS está a alinhar-se com o Kubernetes upstream ao adotar a API Gateway como padrão de longo prazo para a gestão de tráfego de entrada e L7. Recomendamos que comece a planear o seu percurso de migração com base na sua configuração atual:
- Utilizadores de complementos de roteamento de aplicações: As cargas de trabalho de produção continuam totalmente suportadas até novembro de 2026. Migre para a implementação da API Gateway de roteamento de aplicações para uma experiência de gestão de tráfego de entrada baseada na API Gateway.
-
Os utilizadores do OSS NGINX têm várias opções:
- Migre para o complemento de encaminhamento de aplicações com NGINX para beneficiar de suporte oficial até novembro de 2026 enquanto planeia a sua migração a longo prazo da API Gateway.
- Migre para a implementação da API Gateway de roteamento de aplicações para uma experiência de gestão de tráfego de entrada baseada na API Gateway.
- Migrar para o Application Gateway for Containers, que suporta tanto a API Ingress como a API do Gateway.
- Utilizadores de malha de serviço: Se planeia adotar uma malha de serviço, considere o complemento de malha de serviço baseado em Istio. Use o Istio Ingress hoje e planeie migrar para a API do Istio Gateway, que agora é GA.
Uma forma de encaminhar o Protocolo de Transferência de Hipertexto (HTTP) e o tráfego seguro (HTTPS) para aplicações a correr num cluster Azure Kubernetes Service (AKS) é usar o objeto Kubernetes Ingress. Quando ativas o complemento de encaminhamento de aplicações com o NGINX, ele cria, configura e gere um controlador Ingress no teu cluster AKS.
Este artigo mostra-lhe como ativar o controlador Ingress NGINX gerido e configurar um objeto Ingress para encaminhar tráfego para uma aplicação no seu cluster AKS.
Complemento de roteamento de aplicações com funcionalidades NGINX
O complemento de encaminhamento de aplicações com NGINX oferece o seguinte:
- Configuração fácil dos controladores NGINX Ingress geridos baseados no controlador Kubernetes NGINX Ingress.
- Integração com o DNS do Azure para gestão de zonas públicas e privadas.
- Terminação SSL com certificados armazenados no Cofre da Chave do Azure.
Para outras configurações, veja:
- DNS e configuração SSL.
- Configuração do complemento de encaminhamento de aplicações.
- Configure o controlador de entrada interno NGINX para a zona DNS privada do Azure.
Importante
A partir de 30 de setembro de 2027, o Azure Kubernetes Service (AKS) deixou de suportar o add-on Open Service Mesh (OSM). O projeto upstream Open Service Mesh foi retirado.
Se o seu cluster usar o add-on OSM, migre para o add-on Istio antes da data de fim de suporte. Este aviso de descontinuação aplica-se apenas ao suplemento OSM gerido e não se aplica a instalações de malha de serviços de código aberto ou autogeridas. Para os passos de migração, consulte Orientação de migração do add-on OSM para o add-on Istio. Para se manter informado sobre os anúncios e atualizações da AKS, siga as notas de atualização da AKS.
Prerequisites
- Uma assinatura do Azure. Se não tiver uma subscrição do Azure, pode criar uma conta gratuita.
- CLI do Azure versão 2.54.0 ou posterior instalada e configurada. Executar
az --versionpara localizar a versão. Se precisar de instalar ou atualizar, consulte Install CLI do Azure.
Limitations
O complemento de encaminhamento de aplicações suporta até cinco zonas DNS Azure.
O complemento de encaminhamento de aplicações só pode ser ativado em clusters AKS com identidade gerida.
Todas as zonas DNS globais Azure integradas com o add-on têm de estar no mesmo grupo de recursos.
Todas as zonas DNS privadas do Azure integradas com o add-on têm de estar no mesmo grupo de recursos.
Editar o ingress-nginx
ConfigMapnoapp-routing-systemnamespace não é suportado.Se um valor de anotação de snippet corresponder a qualquer um dos seguintes valores bloqueados, o Ingress não está configurado:
Valor bloqueado Effect load_moduleO Ingress não está configurado. lua_packageO Ingress não está configurado. _by_luaO Ingress não está configurado. locationO Ingress não está configurado. rootO Ingress não está configurado. proxy_passO Ingress não está configurado. serviceaccountO Ingress não está configurado. {O Ingress não está configurado. }O Ingress não está configurado. 'O Ingress não está configurado. O complemento não suporta oficialmente a injeção de sidecars não geridos pela Microsoft (por exemplo, telemetria personalizada, registo ou agentes de segurança) nos pods proxy ingress-nginx que gere. Se optar por injetar o seu próprio sidecar num proxy pod gerido, a Microsoft oferece apenas suporte de melhor esforço para quaisquer problemas que encontre.
Ative o add-on de encaminhamento de aplicações usando o CLI do Azure
Ativar num novo cluster
Para permitir o encaminhamento de aplicações num novo cluster, use o az aks create comando que especifica a --enable-app-routing bandeira.
az aks create \
--resource-group <resource-group-name> \
--name <cluster-name> \
--location <location> \
--enable-app-routing \
--generate-ssh-keys
Ativar num cluster existente
Para permitir o encaminhamento de aplicações num cluster existente, use o az aks approuting enable comando.
az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>
Conecte-se ao cluster AKS
Para se conectar ao cluster do Kubernetes a partir do computador local, use kubectlo cliente de linha de comando do Kubernetes. Você pode instalá-lo localmente usando o az aks install-cli comando. Se utilizar o Azure Cloud Shell, o kubectl já está instalado.
Configure kubectl para se conectar ao cluster do Kubernetes usando o az aks get-credentials comando.
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Implementar uma aplicação
Os objetos Kubernetes Ingress definem regras de roteamento para um controlador Ingress. Use a classe Ingress gerida do complemento de encaminhamento de aplicações e as anotações suportadas para configurar como o controlador gere o tráfego.
Crie o namespace do aplicativo chamado
aks-storepara executar os pods de exemplo usando okubectl create namespacecomando.kubectl create namespace aks-storeImplante o aplicativo de armazenamento 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
Este manifesto cria rabbitmq, order-service, product-service, e store-front Implantações e serviços correspondentes. O store-front serviço expõe o porto 80, para onde o Ingress é encaminhado na secção seguinte.
Criar o objeto Ingress
Quando ativas o complemento de encaminhamento de aplicações, ele cria uma classe Ingress chamada webapprouting.kubernetes.azure.com. Especifique esta classe num objeto Ingress para usar o controlador Ingress NGINX gerido do add-on.
Copie o seguinte manifesto YAML em um novo arquivo chamado ingress.yaml e salve o arquivo em seu 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 exemplo de saída a seguir mostra o recurso criado:
ingress.networking.k8s.io/store-front created
Verifique o recurso Ingress gerido
Você pode verificar se o Ingress gerenciado foi criado usando o kubectl get ingress comando.
kubectl get ingress -n aks-store
A saída de exemplo a seguir mostra o Ingress gerenciado que foi criado:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Pode verificar se a loja AKS funciona apontando o seu navegador para o endereço IP público do controlador Ingress. O comando seguinte recupera o endereço IP externo atribuído pelo balanceador de carga ao Serviço do nginx controlador de entrada NGINX gerido no app-routing-system namespace:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Remover o complemento de encaminhamento de aplicações
Para remover o namespace associado, use o kubectl delete namespace comando.
kubectl delete namespace aks-store
Para remover o add-on de encaminhamento de aplicações do seu cluster, use o az aks approuting disable comando.
az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>
Nota
Para evitar uma possível interrupção do tráfego para o cluster quando desativar o complemento de encaminhamento de aplicações, alguns recursos Kubernetes, incluindo configMaps, segredos e a implementação que executa o controlador, permanecem no cluster. Estes recursos encontram-se no espaço de nomes app-routing-system . Pode remover estes recursos se já não forem necessários, eliminando o namespace com kubectl delete ns app-routing-system.
Conteúdo relacionado
- Ative a implementação da API Gateway para roteamento de aplicações para gerir o tráfego de entrada com a API do Kubernetes Gateway.
- Configurar configurações personalizadas de entrada mostra como criar uma configuração avançada de Ingress. Configure um domínio personalizado usando DNS do Azure para gerir zonas DNS e configure uma entrada segura.
- Para integrar com um balanceador de carga interno Azure e configurar uma zona DNS Azure privada para permitir a resolução DNS dos endpoints privados para resolver domínios específicos, veja Configurar controlador de entrada NGINX interno para a zona DNS privada Azure.
- Saiba como monitorizar as métricas do controlador ingress-nginx incluídas no complemento de roteamento de aplicações com o Prometheus no Grafana (pré-visualização), como parte da análise do desempenho e utilização da sua aplicação.