CNI(Container Network Interface)는 컨테이너 런타임과 네트워크 구현체 사이의 인터페이스 표준입니다. CNCF(Cloud Native Computing Foundation)에서 정의하였으며, 주로 Kubernetes, Docker, Containerd 등의 런타임에서 컨테이너 네트워크 설정을 위해 사용됩니다.
컨테이너는 기본적으로 격리된 환경에서 동작하기 때문에 네트워크 설정이 자동화되고 일관성 있어야 합니다. 특히 Kubernetes처럼 수천 개의 컨테이너가 생성/소멸되는 환경에서는 CNI의 역할이 필수적입니다.
| 역할 | 설명 |
|---|---|
| IP 할당 | 각 Pod에 고유한 IP 주소 부여 |
| 라우팅 설정 | Pod 간 통신 및 외부와의 통신 경로 설정 |
| 플러그인 관리 | 다양한 네트워크 구현체와 연동 (예: Calico, Flannel) |
| 멀티 네트워크 지원 | Pod에 여러 개의 NIC 부착 가능 (Multus CNI 활용) |
CNI는 크게 런타임, CNI 플러그인, CNI 설정 파일, 네트워크 구성 스크립트로 구성됩니다.
| 구성 요소 | 설명 |
|---|---|
| CNI 플러그인 | 실제 네트워크 작업(IP 할당, 라우팅 등)을 수행하는 실행 파일 |
| 설정 파일 | /etc/cni/net.d/에 JSON 형식으로 존재. 어떤 플러그인을 어떻게 쓸지 정의 |
| 런타임 | Docker, containerd, CRI-O 등이 CNI를 호출 |
| ADD/DEL 명령 | 컨테이너 생성 시 ADD, 삭제 시 DEL 명령을 플러그인에 전달 |
| 이름 | 특징 |
|---|---|
| Flannel | 가장 간단하고 널리 사용됨. Overlay 방식 기반 |
| Calico | 고성능, L3 기반 라우팅, 네트워크 정책 지원 |
| Cilium | eBPF 기반 고성능 네트워크, 보안정책 통합 |
| Weave | 가시성과 암호화 기능 강화 |
| Canal | Flannel + Calico 조합 |
| Multus | 하나의 Pod에 다중 네트워크 인터페이스 부여 |
| Kube-OVN | SDN 기반, OVN(Open Virtual Network) 활용 |
ADD 명령을 CNI 플러그인에 전달DEL 명령 호출| 고려 요소 | 설명 |
|---|---|
| 규모 | 노드 수가 많다면 Calico, Cilium 추천 |
| 보안 | 네트워크 정책이 중요하면 Cilium 또는 Calico |
| 성능 | 로우레벨 성능이 필요하다면 eBPF 기반 Cilium |
| 간단한 구성 | 테스트나 소규모 클러스터에서는 Flannel |
CNI는 기본적으로 보안 정책을 자체적으로 지원하지 않음, 하지만 Calico, Cilium은 네트워크 정책을 내장하여 다음과 같은 기능을 지원합니다:
NetworkPolicy 객체를 통해 정책을 CNI와 연결합니다.| 항목 | 설명 |
|---|---|
| 정의 | 컨테이너 런타임과 네트워크 사이의 인터페이스 표준 |
| 핵심 기능 | IP 할당, 라우팅, 플러그인 기반 네트워크 구성 |
| 동작 방식 | 런타임에서 CNI 플러그인을 호출해 네트워크 설정 |
| 대표 플러그인 | Flannel, Calico, Cilium, Multus 등 |
| Kubernetes와의 연동 | Pod에 네트워크 자동 구성 및 정책 적용 |
| 보안 정책 | Calico/Cilium으로 네트워크 레벨 접근 제어 가능 |
구글·IBM·삼성이 AI를 이유로 대규모 감원을 시작했습니다. 맥킨지·골드만삭스·옥스퍼드 연구 데이터로 보는 직종별 AI 대체 타임라인과 살아남는…
SKT 유심 해킹 2,300만 명, 다크웹 개인정보 거래 실태까지. 내 정보 유출 여부 즉시 확인하는…
하드웨어 스펙 경쟁은 끝났습니다. AI 생태계, 프리미엄 수익, 중국 변수까지. 2025년 삼성 vs 애플 진짜…
전 세계 검색 92%를 장악한 구글의 왕좌가 흔들리기 시작했습니다. AI 검색이 구글을 집어삼키는 속도와 진짜…