Migrar do roteamento de aplicativo HTTP para o complemento de roteamento de aplicativo

Neste artigo, você aprenderá a migrar seu cluster do AKS (Serviço de Kubernetes do Azure) do recurso de roteamento de aplicativos HTTP para o complemento de roteamento de aplicativos. O complemento de roteamento de aplicativos HTTP foi desativado e não funciona em nenhuma versão do Kubernetes de cluster atualmente com suporte. Recomendamos migrar o mais rápido possível para manter uma configuração com suporte.

Pré-requisitos

  • CLI do Azure versão 2.54.0 ou posterior instalada e configurada. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
  • A extensão da CLI do Azure aks-preview da versão 0.5.171 ou posterior instalada

Observação

Estas etapas fornecem detalhes sobre a migração de uma configuração sem suporte. Dessa forma, o AKS não pode oferecer suporte para problemas que surgem durante o processo de migração.

Atualizar os complementos, as entradas e o uso de IP do cluster

  1. Habilite o complemento de roteamento de aplicativo.

    az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
    
  2. Atualize as entradas definindo ingressClassName como webapprouting.kubernetes.azure.com. Remova a anotação kubernetes.io/ingress.class. Você também precisa atualizar o host para um que pertença a você, pois o complemento de roteamento de aplicativos não tem uma zona DNS de cluster gerenciado. Caso você não tenha uma zona DNS, siga as instruções para criar e configurar uma.

    Inicialmente, a configuração de entrada será parecida com esta:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: aks-helloworld
      annotations:
        kubernetes.io/ingress.class: addon-http-application-routing  # Remove the ingress class annotation
    spec:
      rules:
      - host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE>
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: aks-helloworld
                port:
                  number: 80
    

    Depois que você atualizá-lo corretamente, a mesma configuração será semelhante à seguinte:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: aks-helloworld
    spec:
      ingressClassName: webapprouting.kubernetes.azure.com # Set the ingress class property to refer to the application routing add-on ingress class
      rules:
      - http:
        host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE> # Replace with your own hostname
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: aks-helloworld
                port:
                  number: 80
    
  3. Atualize o IP do controlador de entrada (como nos registros DNS) com o novo endereço IP. Encontre o novo IP usando kubectl get. Por exemplo:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. Desabilite o complemento de roteamento de aplicativo HTTP.

    az aks disable-addons --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
    

Remover e excluir todos os recursos de roteamento de aplicativo HTTP

  1. Após o complemento de roteamento de aplicativos HTTP ser desativado, alguns recursos relacionados do Kubernetes podem permanecer no cluster. Esses recursos incluem configmaps e segredos que são criados no namespace kube-system. Para manter um cluster limpo, remova esses recursos. Procure recursos addon-http-application-routing usando os seguintes comandos kubectl get:

    kubectl get deployments --namespace kube-system
    kubectl get services --namespace kube-system
    kubectl get configmaps --namespace kube-system
    kubectl get secrets --namespace kube-system
    

    O seguinte exemplo de saída mostra os configmaps que devem ser excluídos:

    NAMESPACE     NAME                                                       DATA   AGE
    kube-system   addon-http-application-routing-nginx-configuration         0      9m7s
    kube-system   addon-http-application-routing-tcp-services                0      9m7s
    kube-system   addon-http-application-routing-udp-services                0      9m7s
    
  2. Exclua os recursos restantes usando o comando kubectl delete. Certifique-se de especificar o tipo de recurso, nome do recurso e o namespace. O exemplo a seguir exclui um dos configmaps anteriores:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Repita a etapa kubectl delete anterior para todos os recursos addon-http-application-routing que restam em seu cluster.

Próximas etapas

Depois de migrar para o complemento de roteamento de aplicativos, saiba como monitorar as métricas do controlador de entrada com o Prometheus e o Grafana.