Freigeben über


Migrieren vom HTTP-Anwendungsrouting zum Anwendungsrouting-Add-On

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

Prerequisites

  • Azure CLI Version 2.54.0 oder höher installiert und konfiguriert. Führen Sie az --version aus, um die Version zu ermitteln. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren.
  • aks-preview Azure CLI-Erweiterung der Version 0.5.171 oder höher installiert

Note

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

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

  1. Aktivieren Sie das Anwendungsrouting-Add-On.

    az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
    
  2. Aktualisieren Sie Ihre Ingresses, und setzen Sie ingressClassName auf webapprouting.kubernetes.azure.com. Entfernen Sie die kubernetes.io/ingress.class Anmerkung. Außerdem müssen Sie den Host auf einen host aktualisieren, den Sie besitzen, da das Anwendungsrouting-Add-On keine verwaltete Cluster-DNS-Zone besitzt. Wenn Sie nicht über eine DNS-Zone verfügen, befolgen Sie die Anweisungen zum Erstellen und Konfigurieren einer Zone.

    Zunächst sieht Ihre Eingangskonfiguration ungefähr 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
    

    Nachdem Sie ordnungsgemäß aktualisiert haben, sieht die gleiche 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:
      - host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE> # Replace with your own hostname
        http: 
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: aks-helloworld
                port:
                  number: 80
    
  3. Aktualisieren Sie die IP-Adresse des Ingress-Controllers (z. B. in DNS-Einträgen) mit der neuen IP-Adresse. Sie können die neue IP mit kubectl get finden. 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 --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
    

Entfernen und Löschen aller HTTP-Anwendungsroutingressourcen

  1. Nachdem das HTTP-Anwendungsrouting-Add-On deaktiviert wurde, verbleiben möglicherweise einige zugehörige Kubernetes-Ressourcen in Ihrem Cluster. Zu diesen Ressourcen gehören Configmaps und geheime Schlüssel , die im Kube-System-Namespace erstellt werden. Um einen sauberen Cluster zu verwalten, können Sie diese Ressourcen entfernen. Suchen Sie mithilfe der folgenden Befehle nach 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
    

    Die folgende Beispielausgabe zeigt Configmaps , die gelöscht werden sollen:

    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 verbleibende Ressourcen mithilfe des kubectl delete Befehls. Stellen Sie sicher, dass Sie den Ressourcentyp, den Ressourcennamen und den Namespace angeben. Im folgenden Beispiel wird eine der vorherigen Configmaps gelöscht:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Wiederholen Sie den vorherigen kubectl delete Schritt für alle addon-http-application-routing-Ressourcen , die im Cluster verbleiben.

Nächste Schritte

Nach der Migration zum Anwendungsrouting-Add-On erfahren Sie, wie Sie Die Ingress-Controllermetriken mit Prometheus und Grafana überwachen.