쿠버네티스는 DNS의 표준 기능 중 하나인 캐노니컬 네임(Canonical NAME, CNAME)을 사용하여 익스터널네임 서비스를 구현했다. 웹 애플리케이션 파드가 도메인 네임 numbers-api를 조회하면 쿠버네티스 DNS 서버가 이 CNAME(raw.githubusercontent.com)을 반환한다. 이에 따라 클러스터 내 DNS 서버가 이 로컬 도메인 네임의 해소를 담당하며, 깃허브 서버로 API 요청이 전달된다.
실습 서비스 역시 클러스터 전체를 커버하는 쿠버네티스 가상 네트워크의 일부다. 그런 만큼 모든 파드가 서비스를 사용할 수 있다. 이 장의 첫 번째 실습 예제에 쓴 sleep 파드의 이미지에는 도메인 네임을 조회하는 nslookup 명령이 들어 있다. 이 명령으로 API 서비스의 도메인 네임을 조회하라.
# nslookup 명령으로 서비스의 도메인 네임을 조회한다 kubectl exec deploy/sleep-1 -- sh -c 'nslookup numbers-api | tail -n 5'
이 실습 예제를 실행하면 마치 오류와도 같은 메시지가 출력될 것이다. nslookup 명령은 많은 양의 정보를 반환하는데, 그 출력 순서가 일정하지 않기 때문이다. 하지만 우리에게 필요한 내용이 이 안에 들어 있다. 필자는 이 명령을 여러 번 실행하여 그림 3-14와 같이 책에 싣기 적당한 출력을 얻었다.