Service Configuration
medium

Service Configuration Question #019e3a4f

Question Statement
Service Configuration
#kubernetes
#headless-service
#clusterip
Medium

Como criar um serviço headless?

A

Especificando .spec.ClusterIP: headless

B

Especificando .spec.clusterIP: None

Correct
C

Especificando .spec.ClusterIP: 0.0.0.0

D

Especificando .spec.ClusterIP: localhost

Official Explanation / Community Explanations

Um serviço headless no Kubernetes é criado definindo .spec.clusterIP como None. Isso instrui o Kubernetes a não alocar um ClusterIP para o serviço, tornando-o headless. Serviços headless são usados para aplicações stateful como bancos de dados onde a comunicação direta pod a pod é necessária, ou para mecanismos personalizados de descoberta de serviço.

Como Funciona

Quando um serviço é headless, o Kubernetes não atribui um IP virtual (ClusterIP) a ele. Em vez disso, a resolução DNS retorna os endereços IP dos pods que estão por trás do serviço diretamente. Isso permite que os clientes se conectem a pods individuais em vez de endpoints com balanceamento de carga.

Por que .spec.clusterIP: None está Correto

Definir clusterIP: None diz explicitamente ao Kubernetes para criar um serviço headless. Esta é a forma padrão e documentada de definir um serviço headless no Kubernetes.

Por que Outros Valores estão Incorretos

  • .spec.ClusterIP: headless: O valor headless não é uma configuração válida para clusterIP. O único valor especial válido é None (sensível a maiúsculas/minúsculas).
  • .spec.ClusterIP: 0.0.0.0: Este não é um valor válido para clusterIP. Não é reconhecido pelo Kubernetes e provavelmente causaria um erro ou seria ignorado.
  • .spec.ClusterIP: localhost: Este também não é um valor válido. localhost não é um ClusterIP válido e não criaria um serviço headless.

Em resumo, a maneira correta de criar um serviço headless é definir clusterIP: None na especificação do serviço.