그림 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 |
댓글