Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Cloud Container Engine/ Preguntas frecuentes/ Preguntas frecuentes sobre DNS/ ¿Qué debo hacer si falla la resolución de nombres de dominio?
Actualización más reciente 2023-08-08 GMT+08:00

¿Qué debo hacer si falla la resolución de nombres de dominio?

Concepto de comprobación 1: Si el complemento coredns ha sido instalado

  1. Inicie sesión en la consola de CCE y haga clic en el clúster.
  2. En el panel de navegación, elija Add-ons. En el área Add-ons Installed, compruebe si se ha instalado el complemento coredns.
  3. Si no es así, instale el complemento. Para obtener más información, véase ¿Por qué un contenedor en un clúster de CCE no puede realizar la resolución de DNS?.

Concepto de comprobación 2: Si la instancia coredns alcanza el límite de rendimiento

CoreDNS QPS se correlaciona positivamente con el uso de la CPU. Si el QPS es alto, ajuste las especificaciones de instancia de coredns basadas en el QPS. Si un clúster tiene más de 100 nodos, se recomienda utilizar NodeLocal DNSCache para mejorar el rendimiento de DNS. Para obtener más información, consulte Uso de NodeLocal DNSCache para mejorar el rendimiento de DNS.

  1. Inicie sesión en la consola de CCE y acceda a la consola del clúster.
  2. En el panel de navegación de la izquierda, elija Add-ons. En Add-ons Installed, busca el complemento coredns correspondiente al clúster y asegúrate de que el estado del complemento sea Running.
  3. Haga clic en el nombre del complemento de coredns para ver la lista de complementos.
  4. Haga clic en Monitor del complemento coredns para ver el uso de CPU y memoria.

    Si el rendimiento del complemento alcanza el cuello de botella, ajuste las especificaciones del complemento coredns.
    1. En el área Add-ons Installed, busque la fila que contiene el complemento coredns y haga clic en Edit. Se muestra la página de detalles del complemento.
    2. En el área Specifications, configure el complemento coredns. Puede utilizar el QPS CoreDNS según sea necesario.
    3. También puede seleccionar Custom qps y establecer el número de pods, la cuota de CPU y la cuota de memoria.

    4. Haga clic en OK.

Concepto de comprobación 3: Si la resolución de nombres de dominio externo es lenta o se agota

Si la tasa de errores de resolución de nombres de dominio es inferior a 1/10000, optimice los parámetros haciendo referencia a ¿Cómo puedo optimizar la configuración si la resolución del nombre de dominio externo es lenta o se agota? o agregue una política de reintento en el servicio.

Concepto de comprobación 4: Si ocurre UnknownHostException

Cuando las solicitudes de servicio en el clúster se envían a un servidor DNS externo, se produce un error de resolución de nombres de dominio debido a UnknownHostException ocasionales. UnknownHostException es una excepción común. Cuando se produzca esta excepción, compruebe si hay algún error relacionado con el nombre de dominio o si ha introducido un nombre de dominio correcto.

Para localizar la falla, efectúe los siguientes pasos:

  1. Compruebe el nombre del host cuidadosamente (ortografía y espacios adicionales).
  2. Compruebe la configuración de DNS. Antes de ejecutar la aplicación, ejecute el comando ping hostname para asegurarse de que el servidor de DNS se ha iniciado y se ha ejecutado. Si el nombre de host es nuevo, debe esperar un período de tiempo antes de acceder al servidor DNS.
  3. Compruebe el uso de CPU y memoria del complemento coredns para determinar si se ha alcanzado el cuello de botella de rendimiento. Para obtener más información, véase Concepto de comprobación 2: Si la instancia coredns alcanza el límite de rendimiento.
  4. Compruebe si la limitación de tráfico se realiza en el complemento coredns. Si se activa la limitación de tráfico, el tiempo de procesamiento de algunas solicitudes puede prolongarse. En este caso, es necesario ajustar las especificaciones del complemento coredns.

    Inicie sesión en el nodo donde está instalado el complemento coredns y vea el siguiente contenido:
    cat /sys/fs/cgroup/cpu/kubepods/pod<pod_uid>/<coredns container ID>/cpu.stat
    • <pod uid> indica el UID de pod del complemento coredns, que se puede obtener ejecutando el siguiente comando:
      kubectl get po <pod name> -nkube-system -ojsonpath='{.metadata.uid}{"\n"}'

      En el comando anterior <pod name> indica el nombre del complemento coredns que se ejecuta en el nodo actual.

    • <coredns contenedor ID> debe ser un ID de contenedor completo, que se puede obtener ejecutando el siguiente comando:
      docker ps --no-trunc | grep k8s_coredns | awk '{print $1}'

    Ejemplo:

    cat /sys/fs/cgroup/cpu/kubepods/pod27f58662-3979-448e-8f57-09b62bd24ea6/6aa98c323f43d689ac47190bc84cf4fadd23bd8dd25307f773df25003ef0eef0/cpu.stat

    Preste atención a las siguientes métricas:

    • nr_throttled: número de veces que el tráfico es limitado.
    • throttled_time: duración total de la limitación de tráfico, en nanosegundos.

Si el nombre de host y la configuración DNS son correctas, puede utilizar las siguientes políticas de optimización.

Políticas de optimización:

  1. Cambie el tiempo de caché de coredns.
  2. Configure el dominio stub.
  3. Modifique el valor de ndots.
  • Increasing the cache time of coredns ayuda a resolver el mismo nombre de dominio durante el tiempo N, reduciendo el número de solicitudes DNS en cascada.
  • Configuring the stub domain puede reducir el número de enlaces de solicitud DNS.

Cómo modificar:

  1. Modifique el tiempo de caché de coredns y configure el dominio stub:

    Configuración del dominio Stub para CoreDNS

    Reinicie el complemento coredns después de modificar las configuraciones.

  2. Modificación de ndots:

    ¿Cómo puedo optimizar la configuración si la resolución del nombre de dominio externo es lenta o se agota?

    Ejemplo:

          dnsConfig:
            options:
              - name: timeout
                value: '2'
              - name: ndots
                value: '5'
              - name: single-request-reopen

    Se recomienda cambiar el valor de ndots a 2.