Condividi tramite


Eseguire la migrazione dal routing dell'applicazione HTTP al componente aggiuntivo di routing dell'applicazione

Questo articolo illustra come eseguire la migrazione del cluster del servizio Azure Kubernetes dalla funzionalità di routing delle applicazioni HTTP al componente aggiuntivo di routing dell’applicazione. Il componente aggiuntivo di routing dell'applicazione HTTP è stato ritirato e non funziona in alcuna versione Kubernetes del cluster attualmente supportata. È consigliabile eseguire la migrazione il prima possibile per mantenere una configurazione supportata.

Prerequisiti

  • Interfaccia della riga di comando di Azure versione 2.54.0 o successiva installata e configurata. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
  • aks-preview Estensione dell'interfaccia della riga di comando di Azure versione 0.5.171 o successiva installata

Nota

Questi passaggi illustrano in dettaglio la migrazione da una configurazione non supportata. Di conseguenza, il servizio Azure Kubernetes non può offrire supporto per i problemi che si verificano durante il processo di migrazione.

Aggiornare i componenti aggiuntivi, gli accessi in ingresso e l'utilizzo degli indirizzi IP del cluster

  1. Abilitare il componente aggiuntivo di routing dell'applicazione.

    az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
    
  2. Aggiornare gli accessi in ingresso impostando ingressClassName su webapprouting.kubernetes.azure.com. Rimuovere l'annotazione kubernetes.io/ingress.class. È anche necessario aggiornare l'host a uno di cui si è proprietari, perché il componente aggiuntivo di routing dell'applicazione non ha una zona DNS del cluster gestito. Se non si ha una zona DNS, seguire le istruzioni per crearne e configurare una.

    Inizialmente, la configurazione in ingresso avrà un aspetto simile al seguente:

    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
    

    Dopo aver completato l'aggiornamento correttamente, la stessa configurazione sarà simile alla seguente:

    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. Aggiornare l'IP del controller in ingresso (ad esempio nei record DNS) con il nuovo indirizzo IP. È possibile trovare il nuovo indirizzo IP usando kubectl get. Ad esempio:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. Disabilitare il componente aggiuntivo di routing dell'applicazione HTTP.

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

Rimuovere ed eliminare tutte le risorse di routing delle applicazioni HTTP

  1. Dopo aver disabilitato il componente aggiuntivo di routing dell'applicazione HTTP, alcune risorse Kubernetes correlate potrebbero rimanere nel cluster. Queste risorse includono configmaps e secrets che vengono create nello spazio dei nomi kube-system. Per mantenere un cluster pulito, è possibile rimuovere queste risorse. Cercare le risorse addon-http-application-routing con i comandi kubectl get seguenti:

    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'output di esempio seguente mostra le risorse configmaps che devono essere eliminate:

    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. Eliminare le risorse rimanenti usando il comando kubectl delete. Assicurarsi di specificare il tipo di risorsa, il nome della risorsa e lo spazio dei nomi. Nell'esempio seguente viene eliminata una delle risorse configmaps precedente:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Ripetere il passaggio kubectl delete precedente per tutte le risorse addon-http-application-routing rimaste nel cluster.

Passaggi successivi

Dopo la migrazione al componente aggiuntivo di routing dell'applicazione, è possibile trovare informazioni su come monitorare le metriche del controller in ingresso con Prometheus e Grafana.