Entrada gerida NGINX com o add-on de roteamento de aplicações

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:

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:

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 --version para 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 ConfigMap no app-routing-system namespace 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_module O Ingress não está configurado.
    lua_package O Ingress não está configurado.
    _by_lua O Ingress não está configurado.
    location O Ingress não está configurado.
    root O Ingress não está configurado.
    proxy_pass O Ingress não está configurado.
    serviceaccount O 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.

  1. Crie o namespace do aplicativo chamado aks-store para executar os pods de exemplo usando o kubectl create namespace comando.

    kubectl create namespace aks-store
    
  2. Implante 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.

  1. 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: Prefix
    
  2. Crie o recurso de entrada usando o kubectl apply comando.

    kubectl apply -f ingress.yaml -n aks-store
    

    O 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.