반응형
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
반응형
'IT > Docker.K8S' 카테고리의 다른 글
[Error] invalid reference format. See 'docker run --help'. (5) | 2024.11.06 |
---|---|
[Docker] Error response from daemon: Conflict. The container name ~ is already in use 에러 (11) | 2024.08.25 |
K8S 기본 명령어 모음(kubectl 옵션) (30) | 2024.05.02 |
[K8S] nip.io 란? (15) | 2024.04.05 |
[Docker] Oracle (19.3 C) (37) | 2023.11.10 |
댓글