Kubernete는 클러스터 내부에서만 사용 가능한 DNS를 제공한다. Pod간 통신할 때 IP가 아닌 Domain으로 통신을 할 수 있기 때문에 yaml 파일을 작성해서 다른 클러스터 환경에 배포하더라도 파일을 수정할 필요가 없으며 일종의 Service Discovery(물론 Service Discovery의 다양한 기능을 사용하려면 별도의 서비스를 사용해야 함) 용도로도 사용이 가능하다.
Kubernetes에서 사용하는 내부 Domain은 Service와 Pod에 대해서 사용할 수 있고 일정한 패턴을 지닌다.
특정한 서비스에 접근하는 도메인은 다음과 같이 구성된다.
{SERVICE_NAME}.{NAMESPACE_NAME}.svc.cluster.local
특정한 파드에 접근하는 도메인은 다움과 같이 구성된다.(Pod IP를 10.10.10.10으로 가정)
10-10-10-10.{NAMESPACE_NAME}.pod.cluster.local
위의 Pod Domain의 경우 IP가 들어가므로 실제로 사용함에 있어서 이점이 없기 때문에 Pod의 spec에 hostname과 subdomain을 사용하여 아래와 같이 Domain 사용이 가능하다.