~/questoes/devops
No Kubernetes, aplicações precisam se comunicar mesmo quando pods são criados e destruídos constantemente. A descoberta de serviço resolve esse problema automaticamente através do DNS interno do cluster, que traduz nomes de serviços em endereços IP válidos sem necessidade de configuração manual.
O Kubernetes mantém um servidor DNS interno que resolve automaticamente nomes de serviços para endereços IP. Quando você cria um Serviço, ele recebe um nome e um IP virtual (cluster IP). Os pods consultam esse DNS para encontrar outros serviços pelo nome, sem precisar saber quais pods específicos estão rodando em cada momento.
Configuração manual individual seria impraticável em um ambiente com centenas de pods. Um dos principais benefícios do Kubernetes é justamente automatizar essas tarefas repetitivas e eliminar configurações manuais quando o estado muda constantemente.
Exatamente. O DNS interno do cluster (coredns) fornece a solução elegante para descoberta de serviço. Um pod consegue acessar outro usando apenas o nome do Serviço, como 'meu-banco-dados' em vez de precisar saber o IP exato ou qual pod específico responde no momento.
Pods são efêmeros por design no Kubernetes - eles podem ser criados, destruídos e recriados a qualquer momento. Dar um IP fixo a cada pod seria ineficiente e contradiria a natureza dinâmica da plataforma. Os Serviços que agrupam pods é que recebem IPs estáveis.
Broadcast constante de endereços consumiria muitos recursos de rede e não seria escalável em clusters grandes. O DNS é muito mais eficiente: cada pod consulta o servidor DNS apenas quando precisa encontrar outro serviço, não há comunicação constante.