Migrieren vom HTTP-Anwendungsrouting zum Anwendungsrouting-Add-On

In diesem Artikel erfahren Sie, wie Sie Ihren AKS-Cluster (Azure Kubernetes Service) vom HTTP-Anwendungsroutingfeature zum Anwendungsrouting-Add-On migrieren. Das HTTP-Anwendungsrouting-Add-On wurde eingestellt und funktioniert in keiner Kubernetes-Clusterversion mehr, die derzeit unterstützt wird. Es wird empfohlen, so bald wie möglich eine Migration durchzuführen, um weiterhin eine unterstützte Konfiguration beizubehalten.

Voraussetzungen

  • Version 2.54.0 oder höher der Azure CLI installiert und konfiguriert. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
  • Installation der Azure CLI-Erweiterung aks-preview, Version 0.5.171 oder höher

Hinweis

In diesen Schritten wird die Migration von einer nicht unterstützten Konfiguration beschrieben. Daher kann AKS keine Unterstützung für Probleme anbieten, die während des Migrationsprozesses auftreten.

Aktualisieren der Add-Ons, Eingänge und IP-Nutzung Ihres Clusters

  1. Entfernen Sie das Anwendungsrouting-Add-On.

    az aks approuting enable -g <ResourceGroupName> -n <ClusterName>
    
  2. Ändern Sie Ihre Eingangseinstellung von ingressClassName in webapprouting.kubernetes.azure.com. Entfernen Sie die kubernetes.io/ingress.class-Anmerkung. Außerdem müssen Sie einen Host in Ihrem Besitz festlegen, da das Anwendungsrouting-Add-On über keine verwaltete DNS-Clusterzone verfügt. Wenn Sie über keine DNS-Zone verfügen, befolgen Sie die Anweisungen zum Erstellen und Konfigurieren einer Zone.

    Anfänglich sieht Ihre Eingangskonfiguration in etwa wie folgt aus:

    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
    

    Nach der ordnungsgemäßen Aktualisierung sieht dieselbe Konfiguration wie folgt aus:

    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. Aktualisieren Sie die IP-Adresse des Eingangsdatencontrollers (z. B. in DNS-Einträgen) auf die neue IP-Adresse. Sie können die neue IP-Adresse mit kubectl get ermitteln. Beispiel:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. Deaktivieren Sie das HTTP-Anwendungsrouting-Add-On.

    az aks disable-addons -g <ResourceGroupName> -n <ClusterName> --addons http_application_routing
    

Entfernen und Löschen aller Ressourcen für das HTTP-Anwendungsrouting

  1. Wenn das HTTP-Anwendungsrouting-Add-On deaktiviert ist, verbleiben eventuell einige Kubernetes-Ressourcen im Cluster. Zu diesen Ressourcen zählen configmaps und secrets, die im kube-system-Namespace erstellt werden. Wenn Sie stets einen sauberen Cluster haben möchten, können Sie diese Ressourcen entfernen. Suchen Sie mit den folgenden kubectl get-Befehlen nach Ressourcen des Typs addon-http-application-routing:

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

    Die folgende Beispielausgabe zeigt configmaps, die gelöscht werden sollten:

    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. Löschen Sie die verbleibenden Ressourcen mit de Befehl „kubectl delete“. Stellen Sie sicher, dass Sie den Ressourcentyp, den Ressourcennamen und den Namespace angeben. Das folgende Beispiel löscht eine der vorherigen configMaps:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Wiederholen Sie den vorherigen kubectl delete-Schritt für alle Ressourcen des Typs addon-http-application-routing, die sich noch in Ihrem Cluster befinden.

Nächste Schritte

Informieren Sie sich nach der Migration zum Anwendungsrouting-Add-On, wie Sie Metriken des Eingangsdatencontrollers mit Prometheus und Grafana überwachen.