-
calico vs ciliumKubernetes 2025. 3. 25. 01:25728x90
Calico와 Cilium은 둘 다 고급 Kubernetes 네트워크 플러그인이며, 보안 정책과 고성능 네트워킹을 제공하지만 철학과 기술 스택이 완전히 다릅니다.
Calico는 전통적인 Linux 커널 기능(iptables, routing, BGP 등)을 기반으로 하고,
Cilium은 eBPF (Extended Berkeley Packet Filter) 를 핵심으로 삼아 더 현대적인 접근 방식을 제공합니다.Calico vs Cilium 비교
항목 Calico Cilium 기반 기술 Linux 커널의 iptables, routing, BGP eBPF (커널 수준 가상 머신) eBPF 지원 ✅ (선택적 eBPF 지원) ✅ 기본 eBPF 기반 네트워크 모델 L3 라우팅 또는 VXLAN 오버레이 eBPF 기반 L3/L4/L7 aware Service 처리 방식 kube-proxy 사용 (또는 eBPF kube-proxyless 모드) ❌ kube-proxy 없이 eBPF로 처리 가능 네트워크 정책 Kubernetes NetworkPolicy + Calico 정책 Kubernetes NetworkPolicy + L7-aware 정책 (HTTP, gRPC 등) L7 정책 ❌ 지원 안 함 ✅ HTTP, gRPC 등 L7 기반 정책 지원 성능 우수 (특히 eBPF 모드) 매우 우수 (최소 오버헤드) 복잡도 중간 (BGP 등 설정 필요 시) 중간~높음 (eBPF 의존성, 최신 커널 필요) 가시성 (Observability) 기본 수준 (ipset, iptables 기반 로깅 등) 매우 우수 (Hubble 등으로 실시간 트래픽 시각화) 로드 밸런싱 kube-proxy 또는 IPVS eBPF 로드밸런서 내장 운영 안정성 널리 검증됨, 다양한 플랫폼에서 사용 빠르게 성장 중, 일부 커널/환경 제한 있음 기타 기능 BGP routing, external IPAM 등 Hubble (트래픽 추적), CNI chaining, Envoy 통합 등 기술적으로 가장 큰 차이점
🔸 Calico는:
- 전통적인 Linux 네트워킹 기능을 적극 활용합니다.
- iptables, ipset, BGP 등을 사용해 안정적이고 이해하기 쉬운 구조입니다.
- eBPF 모드도 있으나, 선택 사항이며 일부 구성은 아직 제한적입니다.
🔸 Cilium은:
- 모든 네트워크 처리, 정책, 관찰을 eBPF에서 실행합니다.
- 네트워크 트래픽을 L7 수준까지 인식하고 필터링할 수 있어 보안/관찰이 뛰어납니다.
- kube-proxy 없이도 Service 처리가 가능하며, 더 낮은 오버헤드와 빠른 반응성을 제공합니다.
선택 기준 요약
상황 추천 ✅ eBPF와 최신 커널 환경, L7 정책, observability 필요 Cilium ✅ 안정적이고 검증된 BGP 라우팅, 간단한 정책 위주 Calico ❌ 구형 커널 환경, eBPF 지원 부족 Calico (iptables 모드) 성능 & 가시성 비교
항목 Calico Cilium Pod-to-Pod latency 낮음 (eBPF 모드 시) 매우 낮음 CPU 사용량 보통 낮음 (eBPF 효과) Flow 시각화 제한적 Hubble UI / CLI로 매우 직관적 L7 Policy 지원 ❌ ✅ (Path, Method 등까지 제한 가능) 결론
- Calico: 성숙하고 안정적인 네트워크 + 정책 기능, eBPF는 선택 가능
- Cilium: 차세대 고성능 eBPF 네트워크, 보안 + 관찰성 + 확장성 뛰어남
728x90'Kubernetes' 카테고리의 다른 글
KubeBuilder와 Operator SDK의 관계 (0) 2025.03.25 client-go 와 controller-runtime의 관계 (0) 2025.03.25 Kubernetes Network 구성 (0) 2025.03.25 StatefulSet + headless service 조합의 사용 (0) 2025.03.23 Kubernetes Operator의 RequeueAfter 개념 (0) 2025.03.22