본문 바로가기
IT/Docker.K8S

[K8S] CNI란?

by 성준하이 2024. 5. 13.
반응형

Kubernetes 를 사용할때 네트워크 개념으로 공부를 하면 CNI 라는 단어를 만나게 된다.

이번 포스팅에서는 이 CNI 에 대해서 알아볼 것이다.

 

우선 뭐의 약자인지 알아보면

Container Network Interface

 

말그대로 컨테이너 내에서 네트워크를 위한 인터페이스이다.

 

CNCF(Cloud Native Computing Foundation)의 프로젝트 중 하나인 CNI는
컨테이너 간의 네트워킹을 제어할 수 있는 플러그인을 만들기 위한 표준이다.

좀더 간단히 말하면 Kubernetes 내의 pod 간의 통신을 위해 사용되는 인터페이스이다.

 

kubernetes 내에는 이미 kubenet 이라는 기본 제공 네트워크 인터페이스가 존재하나 매우 제한적이다.

그리하여 Flannel, Calico, Weavenet, NSX 등 다양한 3-party 기업들의 기능이 생겨났다.(3-party란? 참고포스팅 참고)

 

필요성

CNI는 여러 worker node 의 pod 들이 존재하고, 그 내부에서 서로 다른 서비스를 필요로하는데

worker node 내부에서 사용하는 주소가 동일한 경우가 있을수 있다.

그럴 경우 정상적으로 작동을 하지 않게 되는데,

서로 다른 worker node에서 중복되지 않고 고유한 주소값을 가질수 있도록 CNI 가 도와준다.

 

3-party 서비스 관련해서는 아래 내용을 참고 해도 도움 될 것이다.

CNI 3rd-Party 플러그인 종류 및 지원하는 기능
Provider Network
Model
Route
Distribution
Network
Policy
Mesh External
Datastore
Encryption Ingress/Egress Policies Commercial
Support
Calico Layer 3 Yes Yes Yes Etcd Yes Yes Yes
Canal Layer 2
vxlan
N/A Yes No Etcd No Yes No
Flannel vxlan No No No None No No No
kopeio-
networking
Layer 2
vxlan
N/A No No None Yes No No
kube-
router
Layer 3 BGP Yes No No No No No
romana Layer 3 OSPF Yes No Etcd No Yes Yes
Weave Net Layer 2
vxlan
N/A Yes Yes No Yes Yes Yes

 


참고 포스팅

https://thenicesj.tistory.com/360

 

Third Party 란?

서드파티, 3rd 파티 라고도 적는 이 서드 파티란 무엇일까? IT용어로써 많이 나오는 단어이다. 다른 회사 제품에 이용되는 소프트웨어나 하드웨어를 개발하는 회사 를 말한다. 어떤 기업에서는 소

thenicesj.tistory.com

 

반응형

댓글