Networking Question #019e3a4f
Qual é a principal função do DNS do Kubernetes dentro de um cluster?
Atua como um servidor DNS para máquinas virtuais que estão sendo executadas fora do cluster.
Fornece um DNS como Serviço, permitindo que os usuários criem zonas e registros para domínios que possuem.
Permite que Pods em execução em pilha dupla convertam chamadas IPv6 em chamadas IPv4.
Fornece nomes DNS consistentes para Pods e Serviços para que as cargas de trabalho possam se comunicar entre si.
Official Explanation / Community Explanations
A principal função do DNS do Kubernetes é fornecer nomes DNS consistentes para Pods e Serviços, permitindo descoberta de serviço confiável e comunicação dentro do cluster. O DNS do Kubernetes (tipicamente implementado por CoreDNS ou kube-dns) atribui automaticamente registros DNS a Serviços e Pods. Por exemplo, um Serviço chamado my-service no namespace my-ns é resolvível como my-service.my-ns.svc.cluster.local. Pods também recebem nomes DNS baseados em seu hostname e subdomínio. Isso elimina a necessidade de endereços IP fixos e permite que as cargas de trabalho se encontrem dinamicamente.
Como funciona:
- O add-on DNS é executado como um conjunto de Pods no cluster, geralmente no namespace
kube-system. - Ele observa a API do Kubernetes em busca de novos Serviços e Endpoints e atualiza seus registros DNS de acordo.
- Os Pods são configurados para usar o servidor DNS do cluster através do campo
dnsPolicyem sua especificação de Pod (o padrão éClusterFirst), que modifica o/etc/resolv.confdo Pod para apontar para o IP do DNS do cluster. - O servidor DNS resolve nomes de Serviços para ClusterIPs (ou endpoints de Serviços headless) e nomes de Pods para IPs de Pods.
Por que a resposta correta está certa:
A afirmação "Fornece nomes DNS consistentes para Pods e Serviços para que as cargas de trabalho possam se comunicar entre si" descreve com precisão a função principal do DNS do Kubernetes. Ele garante que Pods e Serviços tenham nomes DNS estáveis e previsíveis que permanecem consistentes mesmo se os endereços IP subjacentes mudarem.
Por que as opções incorretas estão erradas:
- "Atua como um servidor DNS para máquinas virtuais que estão sendo executadas fora do cluster" está incorreto porque o DNS do Kubernetes é interno ao cluster e não atende VMs externas. A resolução DNS externa é tratada por outros mecanismos como ExternalDNS ou configuração manual de DNS.
- "Fornece um DNS como Serviço, permitindo que os usuários criem zonas e registros para domínios que possuem" está incorreto porque o DNS do Kubernetes não expõe uma interface de gerenciamento DNS voltada ao usuário para criar zonas personalizadas. Ele gerencia automaticamente registros DNS apenas para recursos do cluster.
- "Permite que Pods em execução em pilha dupla convertam chamadas IPv6 em chamadas IPv4" está incorreto porque o DNS do Kubernetes não realiza conversão de protocolo. O suporte a pilha dupla permite que Pods usem endereços IPv4 e IPv6, mas a resolução DNS permanece separada; o servidor DNS pode retornar registros A (IPv4) e AAAA (IPv6) conforme apropriado.