1. 켈리코란?
Project Calico(프로젝트 켈리코)는 컨테이너, VM, 베어메탈 환경을 위한 네트워크 및 보안 정책을 제공하는 솔루션입니다. 네트워크 레이어에서 리눅스 커널의 L3 기반 라우팅과 iptables를 이용하여 높은 성능과 단순한 아키텍처를 구현합니다.
초기에는 BGP(Border Gateway Protocol) 기반의 고성능 네트워킹으로 주목받았으며, 현재는 eBPF 기반 기능도 지원합니다.
2. 켈리코의 주요 기능
기능 | 설명 |
---|---|
CNI 플러그인 | Kubernetes 클러스터에서 Pod-to-Pod 통신 제공 |
네트워크 정책 | 네임스페이스, 라벨 기반 세밀한 접근 제어 |
보안 그룹 | Workload 간 L3/L4 수준의 방화벽 기능 |
eBPF 지원 | 고성능 커널 수준 트래픽 처리 |
IPAM | IP 주소 관리 기능 제공 |
NATless Routing | NAT 없이도 Pod 간 통신 가능 |
Windows 지원 | Windows Node용 네트워킹도 지원 |
다중 호스트 지원 | 물리적으로 분리된 호스트 간에도 안정적인 통신 제공 |
3. 켈리코 구성도
간단한 Kubernetes 클러스터에서 켈리코가 동작하는 구성 예시는 다음과 같습니다.

4. 켈리코와 다른 CNI 플러그인 비교
항목 | Calico | Flannel | Cilium | Weave |
---|---|---|---|---|
동작 방식 | L3 라우팅 + BGP/eBPF | VXLAN 오버레이 | eBPF 기반 | 브리지 기반 |
성능 | 매우 우수 (Native Routing) | 중간 | 우수 | 낮음 |
보안 정책 | 지원 (K8s NetworkPolicy) | 일부 제한 | 강력한 eBPF 기반 | 제한적 |
복잡도 | 중간 (BGP 설정 필요 시) | 매우 간단 | 중간 | 간단 |
eBPF | 지원 | 미지원 | 완전 지원 | 미지원 |
5. 켈리코의 장단점
5.1 장점
- 고성능: 커널 네이티브 L3 라우팅으로 오버레이보다 빠름
- 보안 통제: 네트워크 정책으로 제로 트러스트 아키텍처 구현 가능
- 확장성 우수: 수천 노드 이상 클러스터에서도 안정적
- eBPF 호환: 최신 커널 기반 고성능 기능 사용 가능
- BGP 사용 가능: 외부 네트워크와도 연결 유리
5.2 단점
- 초기 설정 복잡: 특히 BGP, IPAM 등 고급 기능 사용 시
- 모니터링 어려움: 별도 observability 도구 필요 (ex. Calico Enterprise)
- 학습 필요: 네트워크 정책 및 CNI 아키텍처에 대한 기본 지식 필요
6. 켈리코 사용 예시 (Kubernetes CNI로 설치)
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
설치 후에는 아래와 같은 리소스들이 생성됩니다:
- calico-node (DaemonSet)
- calico-kube-controllers (Deployment)
- CustomResourceDefinition(Policy, NetworkSet 등)
7. 확장 기능 및 Enterprise 버전
- Calico Enterprise: GUI 대시보드, 감사로그, IDS/IPS 연동 등 보안 강화
- Calico Felix: 각 노드에서 실행되는 에이전트로 정책과 라우팅 관리
- Typha: 대규모 환경에서 etcd API 요청을 최적화해주는 컴포넌트
- Calicoctl: CLI 기반 Calico 관리 툴 (정책 설정 등 가능)
8. 정리
- Calico는 클라우드 네이티브 시대의 핵심 네트워크 솔루션으로 Kubernetes 및 하이브리드 클라우드 환경에 적합합니다.
- 성능 중심의 네트워크 설계와 강력한 정책 제어를 통해 보안까지 커버 가능한 유연한 아키텍처를 제공합니다.
- 특히, 고성능이 요구되는 금융, 통신, 게임사 등에서 많이 채택되고 있습니다.