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

od·2025년 3월 15일

kubernates

목록 보기
2/3

CNI(Container Network Interface) 는 컨테이너간의 네트워킹을 제어하는 표준 인터페이스 입니다. 쿠버네티스는 CNI 를 사용하여 파드 내 컨테이너간의 통신, 파드 간의 통신, 파드와 노드의 통신, 노드간의 통신을 지원합니다. CNI 는 파드를 생성할 때 IP 를 자동으로 할당하고 로드 밸런싱 및 라우팅을 지원 합니다.


네트워크 모델

CNI 에서 사용하는 네트워크 모델은 VXLAN, IP-in-IP, BGP 등이 있습니다.

VxLAN

VLAN(Virtual LAN)은 L2 스위치에 연결된 호스트를 그룹지어 가상의 LAN 환경을 구축하는 것을 의미합니다. 최대 4096개의 세그먼트를 만들 수 있습니다.


VxLAN (Virtual eXtensible LAN)은 L3 위에서 VLAN 과 같은 가상의 LAN 환경을 구축하는 것을 의미합니다.
최대 16,777,216개의 세그먼트를 만들수 있고 각 세그먼트는 UDP 캡슐화되어 터널링으로 통신합니다.
통신시 사용되는 포트는 4789/UDP 입니다.



IP-in-IP

IP-in-IP는 원본 패킷을 감싸는 외부 패킷을 만든 후 외부 패킷을 캡슐화 하여 터널링으로 통신하는 기술 입니다.
외부 패킷에는 출발지/도착지 및 프로토콜 정보만 있으므로 중간 네트워크 장비가 원본 패킷을 볼 수 없기 때문에 보안이 뛰어나다는 장점이 있습니다. VPN(Virtual Private Network) 에서 이 기술을 사용됩니다.


BGP

BGP(Border Gateway Protocol) 는 179/TCP 포트를 사용하여 AS (Autonomous System_인터넷 상에서 독립적으로 라우팅을 관리하는 네트워크 집합체) 간 연결을 통해 대규모 네트워크에서 경로를 관리하고 최적화하는 프로토콜 입니다.
터널링 방식보다 성능이 뛰어나며 복잡한 보안 정책을 구현할 수 있습니다.





CNI 플러그인의 선택

쿠버네티스에서 자주 사용되는 CNI 플러그인으로 FlannelCalico가 있습니다.
Flannel은 VxLANIPIP 등의 터널링 방식을 사용하는 가벼운 네트워크 솔루션이며,
Calico는 BGP 기반의 직접 라우팅 방식을 지원하여 강력한 네트워크 보안을 제공합니다.

일반적으로 BGP 방식이 터널링 방식보다 성능이 뛰어나므로,
대규모 클러스터 운영 및 복잡한 네트워크 정책이 필요한 경우 Calico를 선택하는 것이 좋습니다.
반면, 소규모 클러스터에서 보안 정책이 크게 필요하지 않은 경우 Flannel이 적합한 선택이 될 수 있습니다.

profile
차분하게 단단히 쌓아가는 개발자

0개의 댓글