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 |
