Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ AKS Automatic ✔️ AKS Standard
A resolução do DNS (Sistema de Nomes de Domínio) é um componente crítico no Serviço Kubernetes do Azure (AKS), permitindo que pods e serviços se comuniquem usando nomes legíveis por humanos em vez de endereços IP. AKS fornece serviços DNS integrados para garantir uma resolução de nomes sem falhas tanto para recursos de cluster internos como para pontos de extremidade externos. Compreender como o DNS funciona no AKS ajuda os operadores e desenvolvedores de cluster a garantir conectividade confiável, otimizar o desempenho e solucionar problemas de rede de forma eficaz.
O AKS Automatic é a predefinição recomendada, pronta para produção, para a maioria das cargas de trabalho do AKS. Clusters automáticos do AKS vêm pré-configurados com LocalDNS para melhorar o desempenho do DNS, reduzir a pressão dos conntracks e aumentar a resiliência sem necessidade de configuração adicional.
Observação
A partir do Kubernetes 1.37, o AKS Standard aplica o Preferred modo LocalDNS por defeito a pools de nós elegíveis que não têm um perfil LocalDNS explicitamente configurado. No modo Preferred, o AKS ativa o LocalDNS apenas se o pool de nós e o cluster passarem pelas verificações de compatibilidade necessárias. Se as verificações falharem, o LocalDNS permanece desativado. Perfis explicitamente configurados têm precedência sobre este padrão, pelo que um pool de nós explicitamente definido para Disabled permanece desativado.
Para evitar que o LocalDNS seja ativado, defina explicitamente o modo LocalDNS como Desabilitado. Para obter instruções, consulte Desativar o LocalDNS num conjunto de nós.
Para mais informações sobre o AKS Automatic, veja O que é o AKS Automatic?
CoreDNS no Serviço Kubernetes do Azure
CoreDNS é o serviço DNS padrão no AKS. Fornece resolução interna de nomes e descoberta de serviços para cargas de trabalho em execução no cluster. Opera como um conjunto de pods no kube-system namespace e está fortemente integrado com a rede Kubernetes.
Quando um pod no AKS emite uma consulta DNS, como resolver o nome de outro serviço, o pedido vai para os pods CoreDNS. Esses pods processam a consulta e retornam o endereço IP apropriado ou encaminham a solicitação para um servidor DNS upstream para domínios externos.
Essa arquitetura garante um equilíbrio entre flexibilidade e segurança operacional em um ambiente gerenciado. Para obter detalhes sobre como personalizar o CoreDNS no AKS, consulte o guia de personalização do CoreDNS.
Quando o LocalDNS está ativo, o caminho de resolução depende do pod dnsPolicy (Default ou ClusterFirst) e da configuração do bloco do servidor LocalDNS. Por exemplo, quando um pod usa dnsPolicy: Default, as consultas DNS externas seguem o seguinte caminho:
Workload -> LocalDNS -> upstream DNS server
O LocalDNS corre como uma systemd unidade no nó, por isso recebe a consulta antes do CoreDNS.
cluster.local as consultas são encaminhadas para o CoreDNS, e as consultas externas são encaminhadas quer para o CoreDNS, quer diretamente para o servidor DNS da rede virtual (VNet). Para o comportamento exato de encaminhamento de cada política DNS e a configuração predefinida, veja Blocos de Servidor para LocalDNS.
Servidores DNS VNet personalizados devem aceitar tanto consultas DNS UDP como TCP dos nós AKS. Com PreferUDP, o LocalDNS tenta novamente através de TCP quando uma resposta UDP vem truncada.
Para obter informações sobre o projeto CoreDNS, consulte a página do projeto upstream CoreDNS.
LocalDNS in Azure Kubernetes Service
Observação
Este artigo oferece uma visão geral do que é o LocalDNS e dos seus benefícios no AKS.
Para o AKS Automatic, o LocalDNS está pré-configurado.
Para o AKS Standard, consulte o guia prático do LocalDNS para orientações sobre como ativar e configurar o LocalDNS.
Visão geral
O LocalDNS é um recurso avançado do Serviço Kubernetes do Azure (AKS) que implanta um proxy DNS (Sistema de Nomes de Domínio) em cada nó para fornecer uma resolução DNS altamente resiliente e de baixa latência. Ao tratar as consultas DNS localmente, este proxy reduz o tráfego para os pods adicionais CoreDNS, melhorando a fiabilidade e o desempenho global do DNS no cluster. LocalDNS é especialmente benéfico em grandes clusters ou ambientes com altos volumes de consulta DNS, onde a resolução DNS centralizada pode se tornar um gargalo.
Quando o LocalDNS está ativado, o AKS implanta um cache DNS local como serviço systemd em cada nó. Os pods no nó enviam suas consultas DNS para esse cache local, permitindo uma resolução mais rápida reduzindo os saltos de rede. Esta abordagem também minimiza o uso de conntrack tabelas, reduzindo o risco de exaustão das tabelas. Além disso, se o DNS upstream ficar indisponível, o LocalDNS poderá continuar a fornecer respostas armazenadas em cache por um período configurável, ajudando a manter a conectividade do pod e a confiabilidade do serviço.
LocalDNS e AKS Automático
O AKS Automatic pré-configura automaticamente o LocalDNS como parte das suas predefinições prontas para produção. Não precisas de executar um comando de ativação separado nos clusters automáticos do AKS.
Use este artigo para compreender como o LocalDNS funciona e por que melhora o comportamento do DNS para cargas de trabalho do AKS. Se precisar de passos de ativação e configuração para o AKS Standard, use o guia prático do LocalDNS.
Capacidades chave
-
Latência de resolução de DNS reduzida: Cada nó do AKS executa o serviço LocalDNS
systemd. As cargas de trabalho em execução no nó enviam consultas DNS para este serviço, que as resolve localmente, reduzindo os saltos de rede e acelerando as pesquisas de DNS. -
Comportamento DNS personalizável: Utilizar
kubeDNSOverridesevnetDNSOverridespara controlar o comportamento DNS no cluster. -
Evite corridas conntrack e esgotamento das tabelas conntrack: Os pods enviam consultas DNS para o serviço LocalDNS no mesmo nó sem criar novas
conntrackentradas de tabela. Ignorar o rastreamento de conexão ajuda a reduzir as corridas de conntrack e evita que as entradas DNS UDP (User Datagram Protocol) preenchamconntracktabelas. Esta otimização evita conexões interrompidas e rejeitadas causadas pelo esgotamento da tabela e condições de corrida. -
Ligação atualizada para TCP: A ligação da
localdnscache para o serviço CoreDNS do cluster utiliza o Protocolo de Controlo de Transmissão (TCP). O TCP permite o rebalanceamento da conexão e remove as entradas daconntracktabela quando o servidor fecha a conexão (em contraste com as conexões UDP, que têm um tempo limite padrão de 30 segundos). Os aplicativos não precisam de alterações, porque olocaldnsserviço ainda escuta o tráfego UDP. -
Armazenamento em cache: Pode configurar o plugin de cache LocalDNS com as definições de
serveStalee de Time to Live (TTL). Defina os parâmetrosserveStale,serveStaleDurationInSecondsecacheDurationInSecondspara garantir a resiliência do DNS, mesmo durante uma falha no DNS ascendente. -
Controlo do protocolo: Defina o protocolo de consulta DNS preferido, como
PreferUDPouForceTCP, para cada domínio.PreferUDPnão é uma instrução para usar exclusivamente o UDP. O resolvedor pode tentar novamente ou recorrer a TCP como alternativa, pelo que os servidores DNS personalizados a montante e os controlos de rede têm de suportar a porta 53 tanto em UDP como em TCP.
Outros benefícios e considerações
| Benefícios | Considerações |
|---|---|
| Melhor escalabilidade: reduz a carga em pods CoreDNS centralizados | Sobrecarga mínima de recursos: usa uma pequena quantidade de CPU e memória em cada nó |
| Integração fluida: Não requer alterações nas ligações de aplicações existentes | Alterações de configuração: as atualizações exigem atualizações de imagem de nó, o que pode causar interrupções temporárias |
| Bloquear domínios de pesquisa inválidos: impede consultas DNS inválidas no nível do nó | Planeamento da disponibilidade: As equipas que utilizam o AKS Standard devem avaliar se o desempenho e a resiliência do DNS justificam a ativação do LocalDNS |
Comportamento do AKS Automatic e do AKS Standard
| Modo de cluster | Comportamento LocalDNS |
|---|---|
| AKS Automático | Pré-configurado |
| AKS Standard, Kubernetes 1.31 a 1.36 | Configurado explicitamente para cada pool de nós |
| AKS Standard, Kubernetes 1.37 e posteriores | Define por predefinição os conjuntos de nós elegíveis como Preferred quando não existe um perfil LocalDNS explícito. O LocalDNS só é ativado quando as verificações de compatibilidade são aprovadas. Perfis explícitos, incluindo Disabled, são preservados. |
Ao usar o LocalDNS, você obtém uma resolução de DNS mais rápida e confiável para suas cargas de trabalho, reduz o risco de interrupções relacionadas ao DNS e ganha mais controle sobre o tráfego DNS em seu ambiente AKS.
Conteúdo relacionado
- Para saber mais sobre o AKS Automatic, veja O que é o Azure Kubernetes Service (AKS) Automatic?
- Para aprender a criar um cluster AKS Automatic, consulte Quickstart: Criar um cluster AKS Automatic.
- Para saber como ativar o LocalDNS e definir suas configurações no cluster AKS, consulte o guia de instruções do LocalDNS.
- Para saber mais sobre os conceitos de rede principal, consulte Conceitos de rede para aplicações no AKS.