#IaaS #Onboarding #개념 #Cilium
1. 네트워크 기초
- 서버/애플리케이션이 여러 대 있을 때, 서로 통신하려면 IP와 포트가 필요해.
- TCP/UDP 같은 전송 계층을 통해 데이터가 흐르고, HTTP 같은 애플리케이션 계층에서 우리가 실제 쓰는 요청/응답이 이뤄져.
- 그런데 컨테이너(Pod)는 매우 짧은 수명을 가지며, IP가 계속 바뀜 → 네트워크 연결 관리가 복잡해짐.
2. 쿠버네티스 네트워크 (CNI)
- 쿠버네티스는 Pod끼리 통신해야 하니까 CNI(Container Network Interface) 라는 표준 플러그인을 사용해.
- CNI 역할:
- Pod가 생성될 때 IP 할당
- 라우팅/네트워크 규칙 설정
- Pod ↔ Pod / Pod ↔ 외부 연결 보장
- 대표적인 CNI:
- Flannel: 단순 오버레이 네트워크 (기본적인 연결만 제공).
- Calico: L3/L4 보안 정책 지원, iptables 기반.
- Cilium: eBPF 기반, 보안·성능·관측성 강화.
3. eBPF (extended Berkeley Packet Filter)
- 원래는 리눅스 커널 안에서 패킷 필터링을 위해 만들어진 기술.
- 지금은 **“리눅스 커널에서 실행되는 작은 프로그램”**으로 확장됨.
- 특징:
- 커널 코드를 직접 수정하지 않아도 동적으로 기능 확장 가능.
- 고성능: iptables는 규칙이 많아지면 느려지지만, eBPF는 커널 내부에서 효율적으로 동작.
- 네트워크 패킷, 시스템 콜, 프로세스 이벤트를 잡아서 원하는 로직 실행 가능.
👉 쉽게 말하면: “리눅스 안에서 초고속으로 동작하는 작은 앱”.
4. Cilium이란?
- Cilium은 eBPF 기반으로 만든 쿠버네티스 CNI야.
- 단순히 네트워크 연결만 해주는 게 아니라, 보안, 로드밸런싱, 모니터링, 서비스 메시까지 지원.
주요 기능
- 네트워킹
- Pod ↔ Pod, Pod ↔ 외부 간 연결 제공.
- 오버레이/네이티브 라우팅 둘 다 지원.
- 보안 정책
- L3/L4 (IP/포트) 뿐만 아니라
- L7 (HTTP, gRPC, Kafka) 단위 정책 가능.
- 예: “frontend Pod는 backend의
/api/v1/*만 호출 가능”.
- 로드밸런싱
- 쿠버네티스 Service를 위한 분산 처리.
- iptables/XDP 대신 eBPF 사용 → 빠르고 효율적.
- 관측성 (Hubble)
- 어떤 Pod이 누구와 통신했는지 시각화.
- 차단/허용 이유, 지연 시간, 요청 경로까지 추적 가능.
- 서비스 메시(옵션)
- Istio처럼 사이드카를 두지 않고, eBPF로 메시 기능 제공 (L7 라우팅, 인증, 트래픽 관리).
5. 다른 CNI와 비교
| CNI | 기술 기반 | 특징 |
|---|---|---|
| Flannel | VXLAN/오버레이 | 단순 연결만, 정책 없음 |
| Calico | iptables | 보안 정책 제공, 대규모 시 성능 저하 |
| Cilium | eBPF | 고성능, L7 정책, 관측성, 서비스 메시까지 가능 |
6. 한 줄 정리
👉 Cilium = “eBPF 기반 차세대 쿠버네티스 네트워크 플랫폼”
- 단순 네트워킹을 넘어서 보안, 로드밸런싱, 관측성, 서비스 메시까지 포함한 올인원 솔루션.
Comments
💬 Sign in with GitHub to leave a comment. Comments are public and stored in GitHub Discussions.