Service Configuration Question #019e3a4f
Quais são os dois modos principais de descoberta de Service dentro de um cluster Kubernetes?
Variáveis de ambiente e DNS
Chamadas de API e LDAP
Labels e Radius
Selectors e DHCP
Official Explanation / Community Explanations
No Kubernetes, a descoberta de serviços é o mecanismo pelo qual pods e serviços se localizam. Os dois modos principais são variáveis de ambiente e DNS.
Como Funciona
Variáveis de Ambiente: Quando um pod é criado, o Kubernetes injeta um conjunto de variáveis de ambiente para cada serviço que existe no mesmo namespace no momento da criação do pod. Essas variáveis incluem o IP do cluster e a porta do serviço, seguindo a convenção de nomenclatura <NOME_DO_SERVICO>_SERVICE_HOST e <NOME_DO_SERVICO>_SERVICE_PORT. Isso permite que o pod se conecte ao serviço usando essas variáveis. No entanto, as variáveis de ambiente são estáticas e refletem apenas os serviços que existiam antes do pod ser iniciado; elas não são atualizadas se novos serviços forem adicionados posteriormente.
DNS: O Kubernetes executa um serviço de DNS (tipicamente CoreDNS) dentro do cluster. Cada serviço recebe automaticamente um nome DNS (ex.: my-service.my-namespace.svc.cluster.local). Os pods podem resolver esse nome para o IP do cluster do serviço. A descoberta baseada em DNS é dinâmica e funciona para todos os serviços, independentemente de quando foram criados. É a abordagem recomendada para a maioria dos casos de uso.
Por que a Resposta Correta está Certa
A resposta correta identifica os dois modos principais: variáveis de ambiente e DNS. Esses são os mecanismos nativos fornecidos pelo Kubernetes para descoberta de serviços. As variáveis de ambiente são simples e não requerem configuração adicional, enquanto o DNS oferece uma solução mais flexível e dinâmica.
Por que as Respostas Incorretas estão Erradas
- Chamadas de API e LDAP: Embora o Kubernetes exponha um servidor de API, chamadas de API não são um modo primário de descoberta de serviços para pods. LDAP (Lightweight Directory Access Protocol) é um serviço de diretório externo e não um mecanismo nativo de descoberta do Kubernetes.
- Labels e Radius: Labels são usadas para organizar e selecionar objetos (ex.: via selectors), mas não são um método direto de descoberta de serviços. RADIUS é um protocolo de rede para autenticação, autorização e contabilidade, não relacionado à descoberta de serviços no Kubernetes.
- Selectors e DHCP: Selectors são usados para identificar quais pods pertencem a um serviço, mas fazem parte da definição do serviço, não de um modo de descoberta. DHCP (Dynamic Host Configuration Protocol) é usado para atribuição de endereços IP em redes tradicionais, não para descoberta de serviços no Kubernetes.