Udostępnij za pośrednictwem


Migrowanie z routingu aplikacji HTTP do dodatku routingu aplikacji

Z tego artykułu dowiesz się, jak przeprowadzić migrację klastra usługi Azure Kubernetes Service (AKS) z funkcji routingu aplikacji HTTP do dodatku routingu aplikacji. Dodatek routingu aplikacji HTTP został wycofany i nie działa w żadnej wersji klastra Kubernetes obecnie obsługiwanej. Zalecamy jak najszybsze przeprowadzenie migracji w celu zachowania obsługiwanej konfiguracji.

Wymagania wstępne

  • Interfejs wiersza polecenia platformy Azure w wersji 2.54.0 lub nowszej został zainstalowany i skonfigurowany. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
  • aks-preview Zainstalowane rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 0.5.171 lub nowszej

Uwaga

Te kroki szczegółowo opisują migrację z nieobsługiwanej konfiguracji. W związku z tym usługa AKS nie może oferować obsługi problemów występujących podczas procesu migracji.

Aktualizowanie dodatków, ruchu przychodzącego i użycia adresów IP klastra

  1. Włącz dodatek routingu aplikacji.

    az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
    
  2. Zaktualizuj ruch przychodzący, ustawiając wartość ingressClassName webapprouting.kubernetes.azure.com. Usuń adnotację kubernetes.io/ingress.class . Należy również zaktualizować hosta do własnego, ponieważ dodatek routingu aplikacji nie ma strefy DNS klastra zarządzanego. Jeśli nie masz strefy DNS, postępuj zgodnie z instrukcjami, aby je utworzyć i skonfigurować .

    Początkowo konfiguracja ruchu przychodzącego będzie wyglądać mniej więcej tak:

    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
    

    Po poprawnej aktualizacji ta sama konfiguracja wygląda następująco:

    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. Zaktualizuj adres IP kontrolera ruchu przychodzącego (na przykład w rekordach DNS) przy użyciu nowego adresu IP. Nowy adres IP można znaleźć przy użyciu polecenia kubectl get. Na przykład:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. Wyłącz dodatek routingu aplikacji HTTP.

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

Usuwanie i usuwanie wszystkich zasobów routingu aplikacji HTTP

  1. Po wyłączeniu dodatku routingu aplikacji HTTP niektóre powiązane zasoby Kubernetes mogą pozostać w klastrze. Te zasoby obejmują configmaps i wpisy tajne utworzone w przestrzeni nazw kube-system . Aby zachować czysty klaster, możesz usunąć te zasoby. Wyszukaj zasoby addon-http-application-routing przy użyciu następujących kubectl get poleceń:

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

    W poniższych przykładowych danych wyjściowych przedstawiono mapy konfiguracji, które powinny zostać usunięte:

    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. Usuń pozostałe zasoby przy użyciu kubectl delete polecenia . Upewnij się, że określono typ zasobu, nazwę zasobu i przestrzeń nazw. Poniższy przykład usuwa jedną z poprzednich map konfiguracji:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Powtórz poprzedni kubectl delete krok dla wszystkich zasobów routingu addon-http-application-routingu pozostałych w klastrze.

Następne kroki

Po przeprowadzeniu migracji do dodatku routingu aplikacji dowiedz się, jak monitorować metryki kontrolera ruchu przychodzącego za pomocą rozwiązania Prometheus i narzędzia Grafana.