Cilium이란?

#IaaS #Onboarding #개념 #Cilium

1. 네트워크 기초

  • 서버/애플리케이션이 여러 대 있을 때, 서로 통신하려면 IP와 포트가 필요해.
  • TCP/UDP 같은 전송 계층을 통해 데이터가 흐르고, HTTP 같은 애플리케이션 계층에서 우리가 실제 쓰는 요청/응답이 이뤄져.
  • 그런데 컨테이너(Pod)는 매우 짧은 수명을 가지며, IP가 계속 바뀜 → 네트워크 연결 관리가 복잡해짐.

2. 쿠버네티스 네트워크 (CNI)

  • 쿠버네티스는 Pod끼리 통신해야 하니까 CNI(Container Network Interface) 라는 표준 플러그인을 사용해.
  • CNI 역할:
    1. Pod가 생성될 때 IP 할당
    2. 라우팅/네트워크 규칙 설정
    3. Pod ↔ Pod / Pod ↔ 외부 연결 보장
  • 대표적인 CNI:
    • Flannel: 단순 오버레이 네트워크 (기본적인 연결만 제공).
    • Calico: L3/L4 보안 정책 지원, iptables 기반.
    • Cilium: eBPF 기반, 보안·성능·관측성 강화.

3. eBPF (extended Berkeley Packet Filter)

  • 원래는 리눅스 커널 안에서 패킷 필터링을 위해 만들어진 기술.
  • 지금은 **“리눅스 커널에서 실행되는 작은 프로그램”**으로 확장됨.
  • 특징:
    • 커널 코드를 직접 수정하지 않아도 동적으로 기능 확장 가능.
    • 고성능: iptables는 규칙이 많아지면 느려지지만, eBPF는 커널 내부에서 효율적으로 동작.
    • 네트워크 패킷, 시스템 콜, 프로세스 이벤트를 잡아서 원하는 로직 실행 가능.

👉 쉽게 말하면: “리눅스 안에서 초고속으로 동작하는 작은 앱”.


4. Cilium이란?

  • Cilium은 eBPF 기반으로 만든 쿠버네티스 CNI야.
  • 단순히 네트워크 연결만 해주는 게 아니라, 보안, 로드밸런싱, 모니터링, 서비스 메시까지 지원.

주요 기능

  1. 네트워킹
    • Pod ↔ Pod, Pod ↔ 외부 간 연결 제공.
    • 오버레이/네이티브 라우팅 둘 다 지원.
  2. 보안 정책
    • L3/L4 (IP/포트) 뿐만 아니라
    • L7 (HTTP, gRPC, Kafka) 단위 정책 가능.
    • 예: “frontend Pod는 backend의 /api/v1/*만 호출 가능”.
  3. 로드밸런싱
    • 쿠버네티스 Service를 위한 분산 처리.
    • iptables/XDP 대신 eBPF 사용 → 빠르고 효율적.
  4. 관측성 (Hubble)
    • 어떤 Pod이 누구와 통신했는지 시각화.
    • 차단/허용 이유, 지연 시간, 요청 경로까지 추적 가능.
  5. 서비스 메시(옵션)
    • Istio처럼 사이드카를 두지 않고, eBPF로 메시 기능 제공 (L7 라우팅, 인증, 트래픽 관리).

5. 다른 CNI와 비교

CNI기술 기반특징
FlannelVXLAN/오버레이단순 연결만, 정책 없음
Calicoiptables보안 정책 제공, 대규모 시 성능 저하
CiliumeBPF고성능, L7 정책, 관측성, 서비스 메시까지 가능

6. 한 줄 정리

👉 Cilium = “eBPF 기반 차세대 쿠버네티스 네트워크 플랫폼”

  • 단순 네트워킹을 넘어서 보안, 로드밸런싱, 관측성, 서비스 메시까지 포함한 올인원 솔루션.

Comments

💬 Sign in with GitHub to leave a comment. Comments are public and stored in GitHub Discussions.