Networking
medium

Networking Question #019e3a4f

Question Statement
Networking
#kubernetes
#headless-service
#statefulset
Medium

Qual das seguintes cargas de trabalho requer um serviço headless ao ser implantada no namespace?

A

StatefulSet

Correct
B

CronJob

C

Deployment

D

DaemonSet

Official Explanation / Community Explanations

Um serviço headless é necessário para StatefulSets porque os StatefulSets gerenciam aplicações stateful que exigem identidades de rede estáveis. Um serviço headless (com clusterIP: None) permite comunicação direta pod a pod sem balanceamento de carga, permitindo que cada pod tenha um nome DNS único (por exemplo, pod-name.service-name.namespace.svc.cluster.local). Isso é essencial para StatefulSets onde cada pod deve ser individualmente endereçável, como em bancos de dados como Cassandra ou ZooKeeper.

Como funciona:

  • Um serviço headless não aloca um cluster IP; em vez disso, o DNS retorna os IPs dos pods diretamente.
  • StatefulSets usam serviços headless para manter identidades de rede estáveis para cada pod, que persistem durante o reagendamento.
  • Outras cargas de trabalho como Deployments, DaemonSets e CronJobs não exigem identidades de rede estáveis; elas usam serviços ClusterIP regulares para acesso balanceado.

Por que o valor correto está certo:

  • StatefulSet requer um serviço headless para fornecer identidades de rede estáveis e únicas para cada pod. Sem ele, os pods não teriam nomes DNS previsíveis, quebrando aplicações stateful.

Por que os valores incorretos estão errados:

  • CronJob: Gerencia jobs em lote em um cronograma; os pods são efêmeros e não precisam de identidades de rede estáveis. Um serviço regular ou nenhum serviço é suficiente.
  • Deployment: Gerencia réplicas stateless; os pods são intercambiáveis e não exigem identidades únicas. Um serviço ClusterIP fornece balanceamento de carga.
  • DaemonSet: Garante um pod por nó; os pods são tipicamente usados para monitoramento ou logging e não exigem identidades de rede estáveis. Um serviço headless não é necessário.