켈리코 (Project Calico)

1. 켈리코란?

Project Calico(프로젝트 켈리코)컨테이너, VM, 베어메탈 환경을 위한 네트워크 및 보안 정책을 제공하는 솔루션입니다. 네트워크 레이어에서 리눅스 커널의 L3 기반 라우팅과 iptables를 이용하여 높은 성능과 단순한 아키텍처를 구현합니다.

초기에는 BGP(Border Gateway Protocol) 기반의 고성능 네트워킹으로 주목받았으며, 현재는 eBPF 기반 기능도 지원합니다.

2. 켈리코의 주요 기능

기능설명
CNI 플러그인Kubernetes 클러스터에서 Pod-to-Pod 통신 제공
네트워크 정책네임스페이스, 라벨 기반 세밀한 접근 제어
보안 그룹Workload 간 L3/L4 수준의 방화벽 기능
eBPF 지원고성능 커널 수준 트래픽 처리
IPAMIP 주소 관리 기능 제공
NATless RoutingNAT 없이도 Pod 간 통신 가능
Windows 지원Windows Node용 네트워킹도 지원
다중 호스트 지원물리적으로 분리된 호스트 간에도 안정적인 통신 제공

3. 켈리코 구성도

간단한 Kubernetes 클러스터에서 켈리코가 동작하는 구성 예시는 다음과 같습니다.

4. 켈리코와 다른 CNI 플러그인 비교

항목CalicoFlannelCiliumWeave
동작 방식L3 라우팅 + BGP/eBPFVXLAN 오버레이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로 설치)

설치 후에는 아래와 같은 리소스들이 생성됩니다:

  • 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 및 하이브리드 클라우드 환경에 적합합니다.
  • 성능 중심의 네트워크 설계와 강력한 정책 제어를 통해 보안까지 커버 가능한 유연한 아키텍처를 제공합니다.
  • 특히, 고성능이 요구되는 금융, 통신, 게임사 등에서 많이 채택되고 있습니다.

Leave a Comment