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.
No AKS Standard, o LocalDNS é opcional e pode ativá-lo e configurá-lo separadamente.
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.
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 (como
PreferUDPouForceTCP) para cada domínio. Essa flexibilidade permite otimizar o tráfego DNS para domínios específicos ou atender aos requisitos de rede.
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 |
| Padrão AKS | Optional |
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.