티스토리 뷰
728x90
1. MetalLB 개요
MetalLB는 베어메탈 환경 또는 가상화된 온프레미스 환경에서 Kubernetes의 LoadBalancer 타입 서비스를 사용할 수 있도록 지원하는 네트워크 로드밸런서입니다. 클라우드 환경(AWS, GCP, Azure)에서는 LoadBalancer 타입 서비스가 자동으로 외부 IP를 할당받지만, 베어메탈 환경에서는 이를 지원하지 않으므로 MetalLB를 통해 외부 접근이 가능한 IP를 수동으로 할당할 수 있습니다.
2. MetalLB 운영 모드
MetalLB는 두 가지 주요 모드를 제공합니다.
- Layer 2 모드
- ARP(IPv4) 또는 NDP(IPv6) 프로토콜을 사용하여 하나의 노드가 외부 IP를 광고합니다.
- 설정이 간단하며, 소규모 클러스터에 적합합니다.
- 외부 네트워크 장비(라우터/스위치)와의 추가 통합 없이 사용 가능합니다.
- BGP 모드
- Border Gateway Protocol(BGP)을 사용하여 외부 라우터 또는 스위치에 LoadBalancer IP 경로를 광고합니다.
- 대규모 클러스터 및 고가용성 환경에 적합합니다.
- 외부 네트워크 장비가 BGP를 지원해야 하며, 초기 설정이 Layer 2보다 복잡합니다.
3. MetalLB 외 다른 대안
방법 | 특징 | 장단점 |
MetalLB | 가장 보편적, Layer2 & BGP 모두 지원 | 설치가 쉬우나 Layer2는 스케일에 한계가 있음 |
Kube-VIP | VIP 기반의 LoadBalancer 구현 및 Control Plane HA 지원 | 간단하지만 복잡한 BGP 네트워킹에는 부적합 |
BGP 직접 구성 | MetalLB 없이 BGP 스피커(FRR, Bird 등) 직접 운용 | 고급 네트워크 지식 필요, 높은 자유도 |
외부 Load Balancer 장비 사용 | 물리 장비를 통한 고성능 로드밸런싱 | 비용이 매우 높음 |
NodePort + Ingress Controller | LoadBalancer를 쓰지 않고 외부 접근 지원 | 단순하지만 대규모 트래픽에 불리 |
4. MetalLB와 물리 장비 연동 방식
4.1 Layer 2 모드 + 물리 장비
- MetalLB가 IP를 ARP 또는 NDP로 광고하고, 네트워크 장비는 이를 일반적인 스위칭/라우팅 동작으로 처리합니다.
- 별도의 네트워크 프로토콜(BGP 등) 설정이 필요 없습니다.
- 장비는 특별한 설정 없이 IP 통신만 정상적으로 수행하면 됩니다.
장점
- 설정이 매우 간단합니다.
- 외부 장비가 특별히 BGP를 지원할 필요가 없습니다.
단점
- 노드 장애 시 IP failover가 느릴 수 있으며(수 초 ~ 수십 초), 대규모 클러스터에서는 Layer 2 트래픽이 부담될 수 있습니다.
4.2 BGP 모드 + 물리 장비
- MetalLB가 BGP 프로토콜을 통해 외부 장비와 피어링(peer)을 설정합니다.
- 서비스 생성 시 MetalLB가 BGP 경로를 광고하여, 외부 장비가 LoadBalancer IP에 대한 정확한 경로를 알게 합니다.
구성 예시
(외부 사용자)
↓
(물리 라우터/스위치 with BGP)
↓
(MetalLB BGP Speaker)
↓
(Kubernetes Node → Pod)
장점
- IP 이동 및 failover가 매우 빠릅니다(수 초 이내).
- 클러스터 확장 및 고가용성에 유리합니다.
- 외부 네트워크 장비를 통한 트래픽 최적화 및 고급 정책 설정이 가능합니다.
단점
- BGP 설정이 필요하며, 네트워크 장비가 이를 지원해야 합니다.
- 초기 구축 난이도가 상대적으로 높습니다.
5. 실사용 고려사항
항목 | Layer 2 모드 | BGP 모드 |
초기 설정 난이도 | 낮음 | 높음 |
외부 네트워크 장비 요구사항 | 없음 | BGP 지원 필요 |
클러스터 규모 적합성 | 소규모 | 중/대규모 |
장애 대응(failover) 속도 | 느림 | 빠름 |
IP 할당 방식 | ARP/NDP Advertisement | BGP 경로 Advertisement |
6. 결론 및 추천
- 소규모 클러스터(5~10 노드 미만) : MetalLB Layer 2 모드로 충분하며, 별도 장비 통합 없이 운영이 가능합니다.
- 중대규모 클러스터(10 노드 이상 또는 HA 필요) : MetalLB BGP 모드를 채택하고, 물리 장비(라우터/스위치)와 BGP 피어링을 구성하는 것이 바람직합니다.
- 엔터프라이즈 환경 : MetalLB BGP 모드 + 외부 로드밸런서 장비 조합을 통해 안정성과 확장성을 확보하는 구성이 권장됩니다.
728x90
'쿠버네티스' 카테고리의 다른 글
📦 OpenFaaS란? (0) | 2025.04.14 |
---|---|
쿠버네티스 설치후 StorageClass 설치 방법 (0) | 2025.04.12 |
쿠버네티스 클라우드 네이티브 오토스케일링 방법 (0) | 2025.04.06 |
ConfigMap을 활용한 유용한 응용 팁 (0) | 2025.04.06 |
Kubernetes ConfigMap을 이용해서 데이터를 마운트 (0) | 2025.04.06 |