Migrera från HTTP-programroutning till tillägget för programroutning

I den här artikeln får du lära dig hur du migrerar ditt AKS-kluster (Azure Kubernetes Service) från HTTP-programroutningsfunktionen till tillägget för programroutning. TILLÄGGET HTTP-programroutning har dragits tillbaka och fungerar inte på någon kubernetes-klusterversion som för närvarande stöds. Vi rekommenderar att du migrerar så snart som möjligt för att upprätthålla en konfiguration som stöds.

Förutsättningar

  • Azure CLI version 2.54.0 eller senare installerad och konfigurerad. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
  • aks-preview Azure CLI-tillägget för version 0.5.171 eller senare installerat

Kommentar

De här stegen beskriver migrering från en konfiguration som inte stöds. AKS kan därför inte erbjuda stöd för problem som uppstår under migreringsprocessen.

Uppdatera klustrets tillägg, ingresser och IP-användning

  1. Aktivera tillägget för programroutning.

    az aks approuting enable -g <ResourceGroupName> -n <ClusterName>
    
  2. Uppdatera dina ingresser och ange ingressClassName till webapprouting.kubernetes.azure.com. Ta bort anteckningen kubernetes.io/ingress.class . Du måste också uppdatera värden till en som du äger, eftersom programdirigeringstillägget inte har någon DNS-zon för hanterade kluster. Om du inte har någon DNS-zon följer du anvisningarna för att skapa och konfigurera en.

    Ursprungligen ser ingresskonfigurationen ut ungefär så här:

    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
    

    När du har uppdaterats korrekt ser samma konfiguration ut så här:

    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. Uppdatera ingresskontrollantens IP-adress (till exempel i DNS-poster) med den nya IP-adressen. Du hittar den nya IP-adressen med hjälp kubectl getav . Till exempel:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. Inaktivera TILLÄGGET HTTP-programroutning.

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

Ta bort och ta bort alla HTTP-programroutningsresurser

  1. När TILLÄGGET HTTP-programroutning har inaktiverats kan vissa relaterade Kubernetes-resurser finnas kvar i klustret. Dessa resurser omfattar konfigurationskartor och hemligheter som skapas i kube-system-namnområdet . Om du vill underhålla ett rent kluster kan du ta bort dessa resurser. Leta efter resurser för addon-http-application-routing med hjälp av följande kubectl get kommandon:

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

    Följande exempelutdata visar konfigurationskartor som ska tas bort:

    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. Ta bort återstående resurser med kommandot kubectl delete . Ange resurstyp, resursnamn och namnområde. I följande exempel tas en av de tidigare konfigurationsmapparna bort:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Upprepa föregående kubectl delete steg för alla resurser för addon-http-application-routing som finns kvar i klustret.

Nästa steg

När du har migrerat till tillägget för programroutning får du lära dig hur du övervakar ingresskontrollantmått med Prometheus och Grafana.