Migrer du routage d’application HTTP vers le module complémentaire de routage d’application

Dans cet article, vous découvrez comment migrer votre cluster Azure Kubernetes Service (AKS) de la fonctionnalité de routage d’application HTTP vers le module complémentaire de routage d’application. Le module complémentaire de routage d’application HTTP a été mis hors service et ne fonctionne sur aucune version de cluster Kubernetes actuellement prise en charge. Nous vous recommandons de migrer dès que possible pour maintenir une configuration prise en charge.

Prérequis

  • Azure CLI version 2.54.0 ou ultérieure installée et configurée. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
  • aks-preview Extension Azure CLI de la version 0.5.171 ou ultérieure installée

Remarque

Ces étapes détaillent la migration à partir d’une configuration non prise en charge. Par conséquent, AKS ne peut pas offrir de support pour les problèmes qui se produisent pendant le processus de migration.

Mettre à jour les modules complémentaires, les entrées et l’utilisation IP de votre cluster

  1. Activez le module complémentaire de routage d’application.

    az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
    
  2. Mettez à jour vos entrées, en définissant ingressClassName sur webapprouting.kubernetes.azure.com. Supprimez l’annotation kubernetes.io/ingress.class. Vous devez également mettre à jour l’hôte vers celui dont vous êtes propriétaire, car le module complémentaire de routage d’application n’a pas de zone DNS de cluster managé. Si vous n’avez pas de zone DNS, suivez les instructions pour en créer et configurer une.

    Initialement, votre configuration d’entrée ressemblera à ceci :

    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
    

    Une fois la mise à jour effectuée, la même configuration ressemble à ce qui suit :

    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. Mettez à jour l’IP du contrôleur d’entrée (par exemple, dans les enregistrements DNS) avec la nouvelle adresse IP. Vous pouvez trouver la nouvelle adresse IP à l’aide de kubectl get. Par exemple :

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. Désactivez le module complémentaire de routage d’application HTTP.

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

Supprimer toutes les ressources de routage d’application HTTP

  1. Une fois le module complémentaire de routage d’application HTTP désactivé, certaines ressources Kubernetes associées peuvent rester dans votre cluster. Ces ressources incluent configMaps et secrets qui sont créés dans l’espace de noms kube-system. Pour maintenir un cluster propre, vous pouvez supprimer ces ressources. Recherchez les ressources addon-http-application-routing à l’aide des commandes kubectl get suivantes :

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

    L’exemple de sortie suivant montre les configmaps à supprimer :

    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. Supprimez les ressources restantes à l’aide de la commande kubectl delete. Veillez à spécifier le type de ressource, le nom de la ressource et l’espace de noms. L’exemple suivant supprime l’une des ressources configMaps précédentes :

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Répétez l’étape kubectl delete précédente pour toutes les ressources addon-http-application-routing restant dans votre cluster.

Étapes suivantes

Après avoir migré vers le module complémentaire de routage d’application, découvrez comment monitorer les métriques du contrôleur d’entrée avec Prometheus et Grafana.