🌐 Envoy Gateway 네트워크 구성 선택 가이드
현재 상황(On-Premise, 외부 LB 유무, IP 필요 여부)에 따라 최적의 방식을 선택하세요.
[Option 1] 고가용성 최우선 (추천 ⭐)
"노드가 죽어도 서비스는 살아야 하고, 구성이 제일 간단해야 한다."
- 구성:
NodePort+externalTrafficPolicy: Cluster+Deployment - 외부 LB: 하드웨어 LB (L4)가 앞단에 존재.
- 동작: 어느 노드로 들어오든 K8s가 내부에서 파드가 있는 곳으로 배달해 줍니다.
- 장점:
- 파드를 노드 개수만큼 띄울 필요가 없음 (리소스 절약).
-
설정이 가장 쉽고 장애 대응이 유연함.
-
단점: Envoy가 클라이언트의 진짜 IP를 모름 (Node IP로 보임).
- (해결책: 외부 LB에서 Proxy Protocol 활성화)
[Option 2] 클라이언트 IP 보존 필수 (Performance & Logging)
"사용자 IP 로그를 꼭 남겨야 하거나, 네트워크 홉(Hop)을 줄여 속도를 높여야 한다."
- 구성:
NodePort+externalTrafficPolicy: Local+DaemonSet(필수) - 외부 LB: 하드웨어 LB (L4)가 앞단에 존재.
- 동작: 트래픽을 받은 노드가 직접 처리합니다. (남의 노드로 토스 안 함)
- 장점:
- 클라이언트 IP가 그대로 보존됨.
-
불필요한 내부 네트워크 타기(SNAT)가 없어 성능이 미세하게 더 좋음.
-
단점:
- 리소스 낭비: 트래픽이 적어도 모든 노드에 Envoy 파드를 띄워야 함.
- 업데이트 시 롤링 배포 관리가 조금 더 까다로움.
[Option 3] 외부 장비 없음 (S/W LB)
"비싼 L4 스위치가 없다. 맨땅에 헤딩해야 한다."
- 구성:
LoadBalancer(MetalLB) +externalTrafficPolicy: Cluster - 외부 LB: 없음 (MetalLB가 그 역할을 함).
- 동작: 특정 노드가 VIP를 들고 있다가, 죽으면 다른 노드가 이어받습니다.
- 장점: 추가 장비 비용 0원.
- 단점: L2 모드 사용 시 Failover에 수 초~수십 초 딜레이가 발생할 수 있음.
📊 한눈에 보는 비교표
| 구분 | Option 1 (현재 진행 중) | Option 2 (IP 중요) | Option 3 (장비 없음) |
|---|---|---|---|
| 방식 | NodePort (Cluster) | NodePort (Local) | MetalLB |
| 필수 리소스 | Deployment (기본) | DaemonSet | Deployment |
| 외부 LB 장비 | 필수 | 필수 | 불필요 |
| 클라이언트 IP | ❌ (별도 설정 필요) | ✅ 보존됨 | ❌ |
| 리소스 효율 | 좋음 (필요한 만큼만 뜸) | 나쁨 (모든 노드에 뜸) | 좋음 |
| 노드 다운 시 | 무중단 (다른 노드가 처리) | 무중단 (LB가 헬스체크로 뺌) | 잠깐 끊김 후 복구 |
| 추천 상황 | 일반적인 기업 환경 | 접속 로그/보안 감사 필수 | 테스트/소규모 |