쿠버네티스 DNS에 대해 설명해 보도록 하겠다.
쿠버네티스 안에서는 클러스터 안에서 사용하는 DNS를 설정할 수 있다.
그럼 파드 끼리 통신에서도 IP가 아닌 도메인을 사용할 수 있다.
예를 들면 어떤 클러스터에 적용한 템플릿에서 파드 사이 통신을 도메인으로 하도록 설정 한다면 수정 없이 다른 클러스터에 적용할 수 도 있는것이다. 또한 특정 파드나 디플로이먼트를 도메인으로 접근하도록 설정했다면 문제가 생겨서 생겨서 파드나 디플로이먼트를 재생성할 때 자동으로 변경된 파드으 IP를 도메인으로 등록한다. 자연스럽게 새로 실행한 파드로 연결할 수 있다.
IP로 통신하도록 설정했다면 IP 대역이 다를 때 템플릿에서 해당 IP 대역을 사용하도록 수정한 후 다른 클러스터에 적용해야 하므로 번거롭다.
쿠버네티스에서는 coreDNS를 사용한다.
쿠버네티스 내부 도메인은 서비스와 파드를 대상으로 사용하며 일정한 패턴이 있다.
쿠버네티스의 특정 서비스에 접근하는 도메인은 아래의 순서대로 구성한다.
기본적으로 암기하고 있는게 좋다
'서비스이름.네임스페이스.svc.cluster.local'처럼 구성한다.
물론 서비스이름이 아닌 특정파드의 도메인을 설정 할 수 있다.
특정 파드의 iP + namespace + svc.cluster.local로 구성한다. 하지만 IP를 그대로 노출 시길킨다면 도메인을 사용할 이유가 없다. 따라서 아래처럼 파드의 템플릿에 호스트네임과 서브 도메인을 설정해서 사용하는 것이 좋다.