HTTP 애플리케이션 라우팅에서 애플리케이션 라우팅 추가 항목으로 마이그레이션

이 문서에서는 AKS(Azure Kubernetes Service) 클러스터를 HTTP 애플리케이션 라우팅 기능에서 애플리케이션 라우팅 추가 기능으로 마이그레이션하는 방법을 알아봅니다. HTTP 애플리케이션 라우팅 추가 기능은 사용 중지되었으며 현재 지원 중인 클러스터 Kubernetes 버전에서는 작동하지 않습니다. 지원되는 구성을 유지 관리하려면 가능한 한 빨리 마이그레이션하는 것이 좋습니다.

필수 조건

  • Azure CLI 버전 2.54.0 이상이 설치 및 구성되어 있어야 합니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
  • aks-preview 버전 0.5.171 이상의 Azure CLI 확장이 설치되어 있어야 합니다.

참고 항목

지원되지 않는 구성에서 마이그레이션하는 방법은 이러한 단계에 자세히 설명되어 있습니다. 따라서 AKS는 마이그레이션 프로세스 중에 발생하는 문제에 대한 지원을 제공할 수 없습니다.

클러스터의 추가 기능, 수신 및 IP 사용량 업데이트

  1. 애플리케이션 라우팅 추가 기능을 사용하도록 설정합니다.

    az aks approuting enable -g <ResourceGroupName> -n <ClusterName>
    
  2. 수신을 업데이트하여 ingressClassName에서 webapprouting.kubernetes.azure.com으로 설정합니다. kubernetes.io/ingress.class 주석을 추가합니다. 또한 애플리케이션 라우팅 추가 기능에 관리형 클러스터 DNS 영역이 없으므로 호스트를 소유한 호스트로 업데이트해야 합니다. DNS 영역이 없는 경우 지침에 따라 DNS 영역을 만들고구성합니다.

    처음에는 수신 구성이 다음과 같이 표시됩니다.

    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
    

    제대로 업데이트한 후에는 동일한 구성이 다음과 같이 표시됩니다.

    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. 수신 컨트롤러의 IP(예: DNS 레코드에 있는 IP)를 새 IP 주소로 업데이트합니다. kubectl get를 사용하여 새 IP를 찾을 수 있습니다. 예시:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. HTTP 애플리케이션 라우팅 추가 기능을 사용하지 않도록 설정합니다.

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

모든 HTTP 애플리케이션 라우팅 리소스 제거 및 삭제

  1. HTTP 애플리케이션 라우팅 추가 기능을 사용하지 않도록 설정한 후에 관련된 일부 Kubernetes 리소스가 클러스터에 남아 있을 수 있습니다. 이러한 리소스에는 kube-system 네임스페이스에서 만들어지는 configMapssecrets가 포함됩니다. 정리 클러스터를 유지하려면 이러한 리소스를 제거할 수 있습니다. 다음 kubectl get 명령을 사용하여 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
    

    다음 예제 출력은 삭제되어야 하는 configmaps를 보여줍니다.

    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. kubectl delete 명령을 사용하여 나머지 리소스를 삭제합니다. 리소스 종류, 리소스 이름 및 네임스페이스를 지정해야 합니다. 다음 예제에서는 이전 configmaps 중 하나를 삭제합니다.

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. 클러스터에 남아 있던 모든 addon-http-application-routing 리소스에 대해 이전 kubectl delete 단계를 반복합니다.

다음 단계

애플리케이션 라우팅 추가 기능으로 마이그레이션한 후에 Prometheus 및 Grafana를 사용하여 수신 컨트롤러 메트릭을 모니터링하는 방법을 알아봅니다.