DevOps BootCamp/쿠버네티스

쿠버네티스 service 타입의 비교

cloudmaster 2023. 5. 18. 10:42
  • Q. 서비스의 타입은 ClusterIP, NodePort, LoadBalancer, ExternalName 네 가지가 있습니다. 이들은 어떻게 다른가요?

Service 의 type 종류

  • ClusterIP : 클러스터 내부에서만 접근할 수 있는 IP를 할당
  • NodePort : 노드의 특정 포트를 사용하여 접근하는 방식, 포트당 하나의 서비스만 사용 가능
  • LoadBalancer : 노드포트 앞단에 특정 LoadBalancer를 사용하여 접근하는 방식
  • ExternalName : DNS이름에 대한 서비스를 매핑함

 

ClusterIP타입

클러스터 내부에서만 접근할 수 있으며, 외부에서는 접근할 수 없으로 port forwarding 또는 proxy를 통해 접근

 또한 서비스 타입을 별도 type을 설정하지 않으면 ClusterIP가 default로 설정

 

 

 

NodePort타입
  • 노드포트는 모든 워커 노드들의 특정 포트(port)를 이용하여 접근을 하도록 설정하는 타입
  • 노트포트를 사용하면 포트당 하나의 서비스를 사용하며, 30000-32767범위내 포트를 사용
  • 노트포트의 단점은 노드가 사라졌을때 자동으로 다른노드를 통해 접근이 불가능
  • 따라서 자동으로 다른노드에 접근을 하려면 별도의 Loadbalancer가 필요함

 

 

LoadBalancer 타입
  • 서비스를 외부에 노출 할 수 있음
  • NodePort타입 앞단에 Loadbalancer가 붙어서 살아있는 노드를 체크하여 트래픽을 전달 할 수 있는 장점이 있음
  • 클라우드 공급업체(AWS, GCP 등)에서 지원하는 기능

 

External 타입
  • 외부에서 접근하기 위한 종류 아니며, 외부의 특정 FQDN에 대한 CNAME 매핑을 제공

 

FQDN(Full Qualified Domain Name) 

 예) www.tistory.com 

 

[출처] https://kubernetes.io/docs/concepts/services-networking/service/

 

Service

Expose an application running in your cluster behind a single outward-facing endpoint, even when the workload is split across multiple backends.

kubernetes.io

[출처] https://kim-dragon.tistory.com/52

 

[kubernetes]서비스 타입 비교(ClusterIP/NodePort/LoadBalancer)

Intro 오늘은 쿠버네티스의 Pod로 접근하기위해 네트워크에 노출시키는 Service에 대해 설명하고자 합니다. 서비스를 네트워크에 어떤 방식으로 노출 시킬 것인가에 따라서 타입이 달라집니다. Servi

kim-dragon.tistory.com