[팁] 쿠버네티스 StatefulSet에서 Headless 서비스를 이용한 Pod discovery
조대협 (http://bcho.tistory.com)
statefulset에서 데이타베이스와 같이 master,slave 구조가 있는 서비스들의 경우에는 service를 통해서 로드밸런싱을 하지 않고, service 를 통해서 로드 밸런싱을 하는 것을 잘 사용하지 않고 개별 pod의 주소를 알고 접속해야 한다. 그래서 개별 Pod의 dns 이름이나 주소를 알아야 한다.
Pod들은 DNS이름을 가질 수 는 있으나, {pod name}.{service name}.{name space}.svc.cluster.local 식으로 이름을 가지기 때문에, pod 를 DNS를 이용해서 접근하려면 service name이 있어야 한다. 그러나 statefulset에 의한 서비스들은 앞에서 언급하였듯이 쿠버네티스 service를 이용해서 로드밸런싱을 하는 것이 아니기 때문에, 로드밸런서의 역할은 필요가 없고, 논리적으로, pod들을 묶어줄 수 있는 service만 있으면 되기 때문에 headless 서비스를 활용한다. Headless 서비스를 이용하면, service 가 로드 밸런서의 역할도 하지 않고, 단일 IP도 가지지 않지만, 아래 그림처럼 nslookup을 이용해서, headless 서비스에 의해서 묶여진 Pod들의 이름도 알 수 있고
{pod name}.{service name}.{name space}.svc.cluster.local 이름으로, 각 pod 에 대한 접근 주소 역시 얻을 수 있다.
'클라우드 컴퓨팅 & NoSQL > 도커 & 쿠버네티스' 카테고리의 다른 글
서버리스 오픈소스 - knative #2 비동기 처리를 위한 Eventing (0) | 2019.04.24 |
---|---|
서버리스 오픈소스 - knative #1 소개 & Serving (0) | 2019.04.23 |
도커 컨테이너 보안 취약점 스캔 도구 Anchore (0) | 2019.02.17 |
[팁] minikube에서 Loadbalancer type 서비스 테스트 하기 (0) | 2019.02.17 |
[팁] 우분투에서 minikube를 VM 없이 실행하기 (0) | 2019.02.17 |