Search

AWS VPC CNI, Calico CNI, Cilium CNI 비교

Kubernetes에서 네트워크 기능을 담당하는 CNI(Container Network Interface) 플러그인은 클러스터 내의 파드들이 서로 통신하고 외부 네트워크와 상호작용할 수 있도록 하는 핵심 구성 요소이다. 각 CNI 플러그인은 고유한 기능과 성능, 설정 복잡성을 가지고 있으며 특정 요구 사항에 맞는 것을 선택하는 것이 중요하다.

CNI 플러그인 비교

플러그인
특징
장점
단점
적합한 환경
VPC
AWS VPC에 직접 통합, Pod에 VPC IP 할당
AWS 리소스와 네이티브 통신, 고성능, 보안 그룹 적용 가능
IP 자원 제한, 노드당 Pod 수 제한, AWS 종속적
AWS 환경, 단순하고 빠른 네트워크가 필요한 경우, 보안 그룹 활용
Calico
강력한 네트워크 정책, BGP 지원
세밀한 네트워크 정책 설정 가능, 대규묘 환경에서도 안정적
설정 방법이 복잡함
고급 네트워킹 기능이 필요한 환경, 대규모 클러스터
Cilium
eBPF 기반 고성능, 서비스 메시 기능
eBPF를 이용한 높은 성능, 세밀한 네트워크 정책
eBPF에 대한 이해 필요
고성능, 고급 기능이 필요한 환경

VPC CNI

AWS EKS 환경에서 사용되는 기본 CNI 플러그인으로, Kubernetes Pod에 직접 VPC 네트워크 인터페이스(ENI)를 할당해서, Pod가 VPC 내부 IP를 가지게 하는 방식 사용

장점

VPC 네이티브 통합
Pod가 VPC의 일원이므로 다른 AWS 리소스(RDS, ELB 등)와 네이티브하게 통신
고성능
AWS 인프라 최적화 → 높은 처리량, 낮은 지연
보안그룹 적용
Pod에 Security Group을 설정 가능
간단한 관리
AWS 네트워크 정책, 모니터링 도구 그대로 사용
노드 간 통신이 쉬움
VPC 네트워크라서 별도 오버레이(X) 없이 EC2처럼 라우팅됨

단점

IP 부족 문제
ENI당 할당 가능한 IP 수가 정해져 있음 → 노드당 Pod 수 제한
대규모 클러스터에선 IP 관리 복잡
AWS 종속성
AWS 환경에서만 사용 가능
ENI/Pod 연관성
ENI 추가나 삭제에 따른 네트워크 관리 부담
탄력성 이슈
ENI 리소스 부족하면 새 Pod 생성 실패 가능성

Calico

네트워크 정책을 강력하게 지원하는 CNI 플러그인으로 BGP(Border Gateway Protocol)를 활용해 고성능 네트워킹을 제공한다. Overlay 네트워크와 IP-in-IP 모드, BGP 모드를 지원한다.

장점

네트워크 정책 및 보안 그룹 설정 매우 유연함
성능이 우수하고 대규모 클러스터에 적합

단점

설정이 다소 복잡할 수 있음
네트워크 정책이 필요 없는 경우 과도한 선택일 수 있음

Cilium

BPF(eBPF)를 기반으로 하는 CNI 플러그인으로 매우 세밀한 네트워크 정책 및 보안 제어가 가능하다. L3/L4 레이어뿐 아니라 L7 레이어에서의 트래픽 필터링도 가능하다.

장점

고성능 및 저지연 네트워크 지원
매우 세밀한 네트워크 보안 및 정책 가능
eBPF 기반으로 추가적인 성능 최적화 가능

단점

상대적으로 높은 학습 곡선
일부 커널 버전에서의 호환성 이슈