Cluster vs Service 개념

Cluster는 물리적 Node들의 집합으로 그 안에 여러 논리적 서비스가 구성될수 있다.

 

  • Cluster: 여러 Node와 그 위의 Pod, 제어부(API 서버/스케줄러 등)를 합친 개념
  • Node: 실제 컨테이너가 실행되는 물리 서버 또는 VM
  • Pod: 최소 실행 단위(컨테이너 그룹), Node 위에 스케줄링됨
  • Service:
    • “ClusterIP, NodePort, LoadBalancer” 중 하나를 선택하여 Pod 집합에 가상 IP/포트 제공
    • 레이블 셀렉터로 뒤쪽 Pod들을 묶어 로드밸런싱 수행
  • 실제 흐름:
    • 클러스터 내부 → Pod간 통신 → Service로 묶어 부하 분산
    • 클러스터 외부 → (Ingress/LB) → Service → Pod
[Cluster]
 ├─ Node-A
 │    ├─ Pod-frontend-1  (레이블: app=frontend, 내부 포트 8080)
 │    └─ Pod-backend-1   (레이블: app=backend, 내부 포트 9090)
 └─ Node-B
      └─ Pod-frontend-2  (레이블: app=frontend, 내부 포트 8080)

 

 

LB(L4) vs Ingress controller(L7) vs Service(L4) 개념

Service가 L4레벨 LB/리버스 프록시 역할을 해주지만 그 앞단에서 L7레벨로 LB/리버스프록시 역할을 해주는게 Ingress controller(이역시 Pod안에 설치된다) 이게 있으면 Rest api별로 어느 service에서 수행할지 지정가능하다.

예를 들어 /api/user 요청은 user-service로, /api/order 요청은 order-service로 보내도록 설정

 

Ingress controller앞단에 LB가 보통 다시 붙는데 다음 역할을 수행한다

  • 가용성(HA) 확보
  • 고정된(또는 제한 가능한) 퍼블릭 엔드포인트 - 이건 특히 Ingress controller가 하기 힘든 부분
  • TLS 종료(SSL Termination)
  • DDoS 보호 및 WAF 연동
[클라이언트]
    ↓  (HTTPS)
[외부 LoadBalancer  (L4)]
    ↓  (HTTP/HTTPS or TCP)
[Ingress Controller Pod (L7)]
    ↓  (HTTP/HTTPS)
[Kubernetes Service (ClusterIP, L4)]
    ↓  (TCP/UDP)
[Pod (컨테이너)]
반응형

'System Architect' 카테고리의 다른 글

OIDC(Open ID Connect)  (0) 2025.06.18
outbox 패턴  (0) 2025.06.16
업스트림(upstream)/다운스트림(downstream)  (0) 2025.05.30
딥링크  (0) 2025.05.23
OAuth2.0  (0) 2025.05.23

+ Recent posts