쿠버네티스(7) : Service

NOHHYEONGJUN·2024년 9월 7일

쿠버네티스

목록 보기
8/23

Service

파드들을 통해 실행되고 있는 애플리케이션을 네트워크에 노출시키는 가상의 컴포넌트

  1. 파드들은 언제든 다른 노드로 옮겨지거나 삭제될 수 있고
  2. 새로 생성될 때 마다 새로운 내부 IP를 받게 되므로
  3. 내/외부 통신을 유지하기 어려움

→ 파드가 외부와 통신할 수 있도록 클러스터 내부에서 고정적인 IP를 갖는 서비스(Service)를 이용

 

Service 종류

  1. ClusterIP
  2. NodePort
  3. LoadBalancer
  4. Ingress

출처 : dangtong


 

 


1. ClusterIP

kube-proxy 기반으로 동작 (IPTables 또는 IPVS 모드 선택 가능)
• IPTables 모드에서 라우팅은 랜덤 선택
• IPVS 모드에서는 아래와 같은 라우팅 알고리즘 선택 가능
• 다른 서비스의 컴포넌트로 포함


 

 


2. NodePort

노드의 특정 포트를 할당 및 개방 하여 서비스(ClusterIP) 와 연동
• 노드의 포트 할당 범위가 (30000 ~ 32767 : --service-node-port-range) 로 제한
Product에 적합하지 않은 이유
• 특정 노드로 접속하더라도 ClusterIP 로 연동 되기 때문에 로드밸런싱 됨


 

 


3. LoadBalancer

ClustereIP + 외부 로드벨런서
• ClusterIP 가 외부 통신이 불가능 하기 때문에 앞 단에 LoadBalancer 와 결합하여 외부 트래픽 유입이 가능한 서비스
외부 로드밸런서는 Layer4 로드밸런서 (GCP의 경우 TCP 로드밸런스 할당)


 

 


4. Ingress

NodePort + 외부 로드벨런서
반드시 Ingress 콘트롤러가 있어야함 (Nginx 등)
• Ingress Controller 리스트 : https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllers/
외부 로드밸런서는 Layer7 로드밸런서


profile
Cloud/DevOps & Network Virtualization에 관심 있는 Engineer입니다. 🐳⚓️👨‍✈️

0개의 댓글