Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Perguntas frequentes/ Perguntas frequentes sobre DNS/ O que fazer se a resolução de nome de domínio falhar?
Atualizado em 2025-05-23 GMT+08:00

O que fazer se a resolução de nome de domínio falhar?

Item de verificação 1: se o complemento coredns foi instalado

  1. Efetue logon no console do CCE e clique no cluster.
  2. No painel de navegação, escolha Add-ons. Na área Add-ons Installed, verifique se o complemento coredns foi instalado.
  3. Caso contrário, instale o complemento. Para obter detalhes, consulte Por que um contêiner em um cluster do CCE falha ao executar a resolução de DNS?.

Item de verificação 2: se a instância coredns atinge o limite de desempenho

O QPS de CoreDNS está positivamente correlacionado com o uso da CPU. Se o QPS for alto, ajuste as especificações da instância de coredns com base no QPS. Se um cluster tiver mais de 100 nós, é aconselhável usar o DNSCache do NodeLocal para melhorar o desempenho do DNS. Para obter detalhes, consulte Uso de DNSCache do NodeLocal para melhorar o desempenho do DNS.

  1. Efetue logon no console do CCE e clique no cluster.
  2. No painel de navegação à esquerda, escolha Add-ons. Em Add-ons Installed, encontre o complemento coredns correspondente ao cluster e assegure-se de que o status do complemento esteja em Running.
  3. Clique no nome do complemento coredns para ver a lista de complementos.
  4. Clique em Monitor do complemento coredns para exibir o uso da CPU e da memória.

    Se o desempenho do complemento atingir o gargalo, ajuste as especificações do complemento coredns.
    1. Na área Add-ons Installed, localize a linha que contém o complemento coredns e clique em Edit. A página de detalhes do complemento é exibida.
    2. Na área Specifications, configure as especificações do complemento coredns. Você pode usar o QPS de CoreDNS com base nos requisitos de serviço.
    3. Você também pode selecionar Custom qps e definir o número de pods, a cota de CPU e a cota de memória.

    4. Clique em OK.

Item de verificação 3: se a resolução de nome de domínio externo é lenta ou expira o tempo limite

Se a taxa de falha de resolução de nome de domínio for inferior a 1/10000, otimize os parâmetros consultando Como otimizar a configuração se a definição de nome de domínio externo é lenta ou expirar o tempo limite? ou adicione uma política de repetição no serviço.

Item de verificação 4: se UnknownHostException ocorre

Quando solicitações de serviço no cluster são enviadas para um servidor DNS externo, ocorre um erro de resolução de nome de domínio devido a UnknownHostException ocasional. UnknownHostException é uma exceção comum. Quando essa exceção ocorrer, verifique se há algum erro relacionado ao nome de domínio ou se você inseriu um nome de domínio correto.

Para localizar a falha, execute as seguintes etapas:

  1. Verifique o nome do host com cuidado (ortografia e espaços extras).
  2. Verifique as configurações do DNS. Antes de executar a aplicação, execute o comando ping hostname para garantir que o servidor DNS esteja iniciado e em execução. Se o nome do host for novo, você precisa esperar por um período de tempo antes que o servidor DNS seja acessado.
  3. Verifique o uso da CPU e da memória do complemento coredns para determinar se o gargalo de desempenho foi atingido. Para mais detalhes, consulte Item de verificação 2: se a instância coredns atinge o limite de desempenho.
  4. Verifique se a limitação de tráfego é executada no complemento coredns. Se a limitação de tráfego é acionada, o tempo de processamento de alguns pedidos pode ser prolongado. Nesse caso, você precisa ajustar as especificações adicionais do coredns.

    Faça logon no nó onde o complemento coredns está instalado e visualize o seguinte conteúdo:
    cat /sys/fs/cgroup/cpu/kubepods/pod {pod uid} / {coredns container ID} /cpu.stat
    • {pod uid} indica o UID do pod do complemento coredns, que pode ser obtido executando o seguinte comando:
      kubectl get po {pod name} -nkube-system -ojsonpath='{.metadata.uid}{"\n"}'

      No comando anterior, {pod name} indica o nome do complemento coredns em execução no nó atual.

    • {coredns container id} deve ser um ID do contêiner completo, que pode ser obtido executando o seguinte comando:
      docker ps --no-trunc | grep k8s_coredns | awk '{print $1}'

    Exemplo:

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

    Preste atenção às seguintes métricas:

    • nr_throttled: número de vezes que o tráfego é limitado.
    • throttled_time: duração total da limitação de tráfego, em nanossegundos.

Se o nome de host e as configurações de DNS estiverem corretos, você poderá usar as seguintes políticas de otimização.

Políticas de otimização:

  1. Alterar o tempo de cache do coredns.
  2. Configure o domínio de stub.
  3. Modifique o valor dos ndots.
  • Aumentar o tempo de cache de coredns ajuda a resolver o mesmo nome de domínio para o tempo N, reduzindo o número de solicitações de DNS em cascata.
  • Configurar o domínio de stub pode reduzir o número de links de solicitação de DNS.

Como modificar:

  1. Modificar o tempo de cache do coredns e configurando o domínio de stub:

    Configuração do domínio de stub para coredns

    Reinicie o complemento coredns depois de modificar as configurações.

  2. Modificar ndots:

    Como otimizar a configuração se a definição de nome de domínio externo é lenta ou expirar o tempo limite?

    Exemplo:

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

    É aconselhável alterar o valor dos ndots para 2.