[OCI] OKE Cluster 생성(1) - CNI Plugin
[OCI] OKE Cluster 생성(1) - CNI Plugin
해당 가이드는 실제 Setup에 관련된 가이드가 아닌, OCI에서 Kubernetes 구축 시 필요한 CNI에 대한 정보를 담은 가이드입니다.
- Flannel CNI Plugin
- VCN-Native Networking CNI Plugin
1. CNI(Container Network Interface)
1.1. CNI란?
- CNCF(Cloud Native Computing Foundation) 프로젝트 중 하나로, 컨테이너의 네트워크 연결을 관리하는 표준 플러그인 시스템
- 쿠버네티스 클러스터 내에서 네트워크 인터페이스를 설정하고 관리하는 데 중요한 역할
1.2. 주요 목적
- 네트워크 연결 : 클러스터 내에서 네트워크 상으로 통신할 수 있도록 네트워크 인터페이스를 설정하고 연결 → 컨테이너들이 서로 통신 가능
- 네트워크 관리 : 컨테이너가 종료 되거나 재시작될 때, 해당 컨테이너의 네트워크 인터페이스를 제거하거나 다시 설정하는 등의 관리 작업
- 플러그인 방식 : 표준화 된 API를 통해 다양한 네트워크 플러그인을 통합 가능 → 다양한 네트워크 요구사항을 충족해 확장 가능
1.3. 작동 원리
- 컨테이너 네트워크 요청 : Kubelet이 컨테이너를 시작할 때, CNI 플러그인에게 네트워크 인터페이스 설정을 요청
- 네트워크 인터페이스 설정 : CNI 플러그인은 컨테이너에 대한 네트워크 인터페이스 설정
ex) IP 주소 할당 및 네트워크 연결 수행 - CNI 후크 : CNI 플러그인은 네트워크 연결이 이루어진 후, 각종 후크를 통해 추가적인 작업 가능
ex) 네트워크 보안 정책 적용, 로깅 등 - 네트워크 해제 : 컨테이너가 종료되면, 해당 컨테이너의 네트워크 연결 해제 및 할당 리소스 정리
1.4. 주요 CNI 플러그인
- Calico
- 네트워크 보안, 라우팅, IPAM(주소 관리) 등의 기능 제공
- 고급 네트워크 정책 지원 → 네트워크 보안 관리 강화
- Flannel
- 단순하고 경량화된 CNI 플러그인
- Overlay 네트워크 제공 → 여러 노드 간 IP 주소 공간 연결
- Canal
- Calico와 Flannel을 결합 → 네트워크 보안과 간단한 네트워크 연결을 동시 제공
2. Flannel vs VCN-Native Pods Networking
2.1 개요
- 2022년 7월 이전 릴리스에서 생성된 쿠버네티스 클러스터는 Flannel CNI 플러그인만 사용
- 2022년 7월 이후 릴리스에서는 OCI 웹 콘솔을 사용해 클러스터를 생성하는 경우(Kubernetes 1.22 이상) VCN-Native Pods Networking CNI 플러그인이 기본값으로 제공
2.2. Flannel CNI 플러그인
- Pods 네트워크 가상 생성
- 가상 네트워크 대역에 맞는 IP를 Pod에 할당
- 가상 네트워크 인터페이스 생성
- 파드-파드 간, 파드-노드 간 통신 가능
2.3. VCN-Native pods Networking
- VCN Subnet 이용 → 별도 Overlay 네트워크 사용 x
- Native 자체 VCN 기능 활용 가능
- VCN Flow log를 통한 트래픽 로깅 가능
- VCN Subnet 대역에 맞는 IP를 Pods에 할당
- VCN 네트워크 인터페이스(VCN의 라우터와 서브넷)를 통해 통신
-> Route table 룰에 따라 파드로 라우팅 - 파드-파드 간, 파드-노드 간 통신 가능
[참고 URL]
Using the OCI VCN-Native Pod Networking CNI plugin for pod networking
This post is licensed under CC BY 4.0 by the author.

