Merry Christmas & Happy 2027! Less downtime. More good times. Celebrating 13 years of sorlavit.com
Skip to content
Sorlavit KimIT Support, Network & Infrastructure Services Let’s talk

ปุ่มแปลไทยจะเปิดบทความผ่าน Google Translate เพื่อแปลอัตโนมัติ โดยคงโค้ดและคำสั่งไว้ตามต้นฉบับ

Kubernetes / Services, DNS & Traffic Routing

Understand headless Service DNS before expecting a virtual IP

A headless Service is designed to expose endpoint discovery rather than an ordinary cluster virtual IP. Inspect its definition and endpoints.

Compiled for Sorlavit Kim · Published · Updated · 1 min read

Environment and inputs: Kubernetes · kubectl with supported client/server versions and delegated RBAC. Examples use namespace app unless noted. Check context, namespace, APIs and provider support first.

Start with this check

Confirm the environment and replace sample objects, namespaces, images, paths and hosts with approved targets. Share only relevant, sanitized output. Follow the workload owner’s process for changes.

kubectl -n app get service database -o jsonpath='{.spec.clusterIP}{" "}{.spec.selector}'
kubectl -n app get endpointslices -l kubernetes.io/service-name=database

Read the result

A clusterIP of None identifies headless intent. Returned discovery records depend on endpoint readiness and relevant Service configuration.

Resolve and verify

Compare the application's discovery contract with StatefulSet identity and actual DNS answers. Fix endpoint or client expectations rather than assigning a random IP.

Before changing production

Do not replace a headless Service with a regular one without reviewing persistent peer-discovery requirements.

Source & further reading

Kubernetes documentation — service

Independently written summary reviewed on 2026-11-01. The example illustrates a possible application; it is not a client case study.

Share this article

Back to all articles