kubernetes 내부에서 특정 파드를 호출할 때 service IP를 통해 호출 할 수 있지만 service가 새로 생성되면 해당 IP가 변경된다. 이때 내부 DNS 주소를 사용하면 이런 걱정 없이 통신 할 수 있다.
coredns
kubernets 내부에서 DNS 서버와 같은 역할을 해준다.
자세한 내용은 kubernetes network 별도 포스팅에서 다루기로하자.
Pod내에서 다른 Pod를 호출할 때
<service_name>.<namespace>.svc.cluster.local
다음과 같은 형식으로 호출하면 된다.
하지만 이는 kubernetes 내부에서만 유효하다. (외부에서 호출해도 주소를 찾지 못함)
예시를 통해 알아보자.
dw-project-dev라는 namespace에 /ping으로 요청하면 pong이라는 응답을 하는 파드가 떠 있다.
이 파드의 서비스명은 dw-rest-api이고 8080포트를 사용중이다.
다른 파드 내에서 curl을 통해 dw-rest-api 서비스를 호출해보자.
$ curl dw-rest-api.dw-project-dev.svc.cluster.local:8080/ping
정상적으로 pong이라고 응답이 오는것을 확인할 수 있다.