Print
카테고리: [ Cloud Computing & MSA ]
조회수: 1958

Service Type에 대해 설명한다.

ClusterIP

ClusterIP 타입의 서비스는 클러스터 내부에서 해당 ClusterIP를 통해 Pod to Pod 통신을 가능하게 한다. ClusterIP는 서비스(디플로이먼트/레플리카셋) 단위로 생성되므로, ClusterIP 주소로 서비스를 호출하면 백단의 Pod 중 하나에 프록시된다. 

NodePort

NodePort 타입의 서비스는 클러스터에 속한 Node의 IP:NodePort를 Pod의 Service Port와 매핑시킨다. 

LoadBalancer

LoadBalancer 타입의 서비스는 외부의 LB를 생성하여, 외부 LB에서 NodePort로 들어오는 트래픽을 프록시 한다. 

ExternalName

Headless

Headless 서비스는 ClusterIP를 None으로 설정하면 생성할 수 있다. Headless 서비스를 생성하면 ClusterIP가 존재하지 않고, 각 Pod의 네트워크 인터페이스로 라우팅 할 수 있다. 다시 말해서, 트래픽이 프록시 되지 않고 Pod가 가진 각각의 Private IP로 전송 가능하다. 


Port/Container Port/Node Port 구분은 다음과 같다.


Service Proxy란?

Kubernetes 클러스터의 모든 노드는 kube-proxy를 실행시킨다. kube-proxy는 ExternalName 타입의 서비스 이외의 다른 서비스들(ClusterIP, NodePort, LoadBalancer)에 Virtual IP 주소를 매핑하는 역할을 한다.

Strategy은?

User space proxy mode

iptables proxy mode