본문 바로가기
IT/Kubernetes

[Kubernetes] Headless Service

by 물통꿀꿀이 2019. 6. 7.

그림 1. Service


일반적으로 Service는 Client에 의해 요청이 들어올 경우 Service가 관리하고 있는 여러 Pod들 중 임의로 하나를 선택해서 연결을 한다.

그런데 만일 Client가 Service가 제공하는 모든 Pod와 연결이 필요하다면 어떻게 해야 할 것인가?


어찌보면 당연하게도 모든 Pod의 주소를 알면된다.

이를 위해 k8s에서는 Client가 DNS lookup을 통해 Pod의 IP를 찾는 것을 허용한다.


그런데 매니페스트 파일을 구성할 때 속성에 따라 DNS lookup 에서 나오는 결과가 다르다.

spec:

  clusterIP: None 


위와 같이 Service의 ClusterIP를 None으로 설정하면 DNS는 Service의 ClusterIP 대신에 모든 Pod의 IP 목록을 반환해준다.


그림 2. DNS lookup


그림 2의 결과로 각 Pod의 IP 목록을 알 수 있다. (해당 결과를 얻기 위해서는 Pod에서 DNS lookup을 수행해야 한다.)

이를 바탕으로 Client는 Pod에 직접 접근 할 수 있다.

'IT > Kubernetes' 카테고리의 다른 글

[Kubernetes] StatefulSet  (0) 2019.06.07
Docker, Pod 인자 전달 비교  (0) 2019.05.27
[Kubernetes] ConfigMap  (0) 2019.05.27
[Kubernetes] Internals - Pause Container  (0) 2019.05.16
[Kubernetes] Internals - Init Pod  (0) 2019.05.16

댓글