CNI (Container Network Interface) 는 쿠버네티스에서 Pod들이 네트워크로 통신할 수 있도록 해주는 핵심 구성요소이다. 쿠버네티스나 다른 컨테이너 런타임이 Pod가 생성될 때 네트워크를 연결할 수 있도록 도와주는 표준이다.
🏳️🌈 [궁금한점]
🔗[목차]
| CNI | 특징 | 장점 | 단점 | 적합한 환경 |
|---|---|---|---|---|
| Flannel | 가장 단순한 CNI, VXLAN 기반 | - 설치/운영이 매우 간단 - 소규모에 적합 | - 네트워크 정책 미지원 - 고급 기능 부족 | 테스트, 소규모 클러스터 |
| Calico | BGP 기반 L3 네트워킹 + 정책 지원 | - 고성능 - 세밀한 네트워크 정책 - 클라우드/온프레미스 모두 적합 | - 설정이 다소 복잡 | 대규모, 보안 요구 높은 환경 |
| Cilium | eBPF 기반 고성능, L3~L7 제어 가능 | - HTTP 수준 정책 - 성능 우수 - 관찰성 뛰어남 | - 최신 커널 필요 - 설치/운영 복잡 | 고성능, 관찰성/보안 요구 환경 |
| Weave | 자동 피어링 지원, 간단한 구성 | - 쉬운 설치 - 자동 네트워크 연결 | - 성능 낮음 - 대규모 환경에는 부적절 | 데브/테스트, 소규모 클러스터 |
| Canal | Flannel + Calico 조합 | - 정책 지원 - 적당한 성능과 간편함 | - 고급 기능 부족 - 일부 복잡도 존재 | 중간 규모, 정책도 필요한 환경 |
| Bridge | 로컬 테스트용, 브리지 기반 네트워크 | - 단순 구성 - Minikube 등에서 유용 | - 확장 불가 - 기능 미약 | 로컬 개발, 테스트 용도 |
| 항목 | 설명 |
|---|---|
| CNI | Container Network Interface – Pod 간 네트워크 연결 |
| CSI | Container Storage Interface – PVC/PV 연결 등 스토리지 관련 인터페이스 |
| CRI | Container Runtime Interface – containerd, CRI-O 등 런타임 연동 |
CNI 자체는 오버레이 네트워크인지 아닌지를 정의하지 않는다. CNI는 Pod 간 네트워크 연결을 가능하게 하는 플러그인 인터페이스 사양일 뿐이고, 오버레이 네트워크인지 아닌지는 각 CNI 드라이버의 구현 방식에 따라 다르다.오버레이 네트워크는 CNI가 아닌, CNI 드라이버의 선택에 따라 사용 여부가 결정된다. Flannel, Weave, Canal은 오버레이 기반이다. Calico(eBGP), Cilium(eBPF) 등은 오버레이 없이도 동작하며, 성능 상 유리하다.
오버레이 네트워크란 실제 네트워크 위에 가상의 네트워크를 덧씌운 구조를 말한다. VXLAN, IP-in-IP 등을 사용해 Pod 네트워크와 물리 네트워크를 분리한다. 네트워크 충돌 방지, 유연성의 장점을 가지나 성능 오버헤드 발생이 단점이다.
| CNI | 오버레이 사용 여부 | 방식 | 비고 |
|---|---|---|---|
| Flannel | 사용 | VXLAN, host-gw 등 | 기본 VXLAN |
| Calico | (기본은 오버레이 아님) | L3 라우팅 | IP-in-IP나 VXLAN도 가능 |
| Cilium | (eBPF 기반) | 직접 라우팅 | 오버레이 아님 |
| Weave | 사용 | 자체 오버레이 프로토콜 | 자동 피어링 |
| Canal | 사용 | Flannel 방식 따름 | VXLAN 기반 |
| Bridge | 로컬 연결 | 브리지 네트워크 | 단일 호스트에서만 사용 |
| 순위 | CNI | 성능 수준 | 비고 |
|---|---|---|---|
| 1 | Cilium | 매우 높음 | eBPF 기반, 고성능 |
| 2 | Calico (non-overlay) | 높음 | BGP 기반 라우팅 시 성능 좋음 |
| 3 | Flannel (host-gw) | 중간 | 단순한 라우팅 방식 |
| 4 | Weave | 낮음 | 오버레이 + 피어링 overhead |
| 5 | Canal | 낮음 | Flannel + Calico 조합이라 오버헤드 있음 |
| 항목 | 설명 |
|---|---|
| 기술 기반 | eBPF (Extended Berkeley Packet Filter) – 커널 공간에서 동작 |
| 데이터 경로 | 사용자 공간을 거치지 않고 커널 내에서 처리 (context switch 최소화) |
| L3~L7 지원 | IP 뿐 아니라 HTTP, gRPC 등 애플리케이션 레벨까지 정책 가능 |
| 오버레이 없음 | 오버레이 네트워크가 없어 네트워크 지연 최소화 |
| XDP, Maglev 등 고급 기능 지원 | 매우 빠른 패킷 처리 및 로드 밸런싱 기능 제공 |