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.