Compartir a través de


Migrar desde el enrutamiento de aplicación HTTP al complemento de enrutamiento de aplicación

En este artículo, aprenderá a migrar el clúster de Azure Kubernetes Service (AKS) desde la característica de enrutamiento de aplicaciones HTTP hasta el complemento de enrutamiento de aplicaciones. El complemento de enrutamiento de aplicaciones HTTP se ha retirado y no funciona en ninguna versión de clúster de Kubernetes actualmente compatible. Se recomienda migrar lo antes posible para mantener una configuración compatible.

Requisitos previos

  • CLI de Azure versión 2.54.0 o posterior instalada y configurada. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
  • aks-preview Extensión de la CLI de Azure de la versión 0.5.171 o posterior instalada

Nota:

Estos pasos detallan la migración desde una configuración no admitida. Por lo tanto, AKS no puede ofrecer compatibilidad con problemas que surgen durante el proceso de migración.

Actualización de los complementos, las entradas y el uso de IP del clúster

  1. Habilite el complemento de enrutamiento de la aplicación.

    az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
    
  2. Actualice las entradas, estableciendo ingressClassName en webapprouting.kubernetes.azure.com. Agregue la anotación kubernetes.io/ingress.class. También deberá actualizar el host a uno que posea, ya que el complemento de enrutamiento de aplicaciones no tiene una zona DNS de clúster administrada. Si no tiene una zona DNS, siga las instrucciones para crear y configurar una.

    Inicialmente, la configuración de entrada tendrá un aspecto similar al siguiente:

    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
    

    Después de que lo ha actualizado correctamente, la misma configuración tendrá el siguiente aspecto:

    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. Actualice la dirección IP del controlador de entrada (por ejemplo, en los registros DNS) con la nueva dirección IP. Puede encontrar la nueva dirección IP mediante kubectl get. Por ejemplo:

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  4. Deshabilitación del complemento de enrutamiento de aplicación HTTP.

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

Eliminación de todos los recursos de enrutamiento de aplicaciones HTTP

  1. Cuando se deshabilita el complemento de enrutamiento de aplicaciones HTTP, algunos recursos de Kubernetes relacionados pueden permanecer en el clúster. Estos recursos incluyen a los archivos configMaps y a los secretos que se crean en el espacio de nombres kube-system. Para mantener un clúster limpio, puede quitar estos recursos. Busque los recursos addon-http-application-routing con los siguientes comandos 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
    

    La salida del ejemplo siguiente muestra los archivos configmaps que deben eliminarse:

    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. Elimine los recursos restantes mediante el comando kubectl delete. Asegúrese de especificar el tipo de recurso, el nombre del recurso y el espacio de nombres. En el ejemplo siguiente se elimina uno de los archivos configmaps anteriores:

    kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
    
  3. Repita el paso anterior kubectl deletepara todos los recursos addon-http-application-routing que aún se encuentran en el clúster.

Pasos siguientes

Después de migrar al complemento de enrutamiento de aplicaciones, aprenda a supervisar las métricas del controlador de entrada con Prometheus y Grafana.