Networking/222/CNI-in-K8S
CNI란 무엇인가?
- CNI는 컨테이너 네트워크를 표준화하기 위한 인터페이스이다.
- 컨테이너 네트워크를 설정하는 다양한 방법이 존재하지만, 여러 솔루션이 각자 개발하는 대신 공통 표준을 정의하여 일관된 네트워크 설정을 가능하게 한다.
- CNI의 역할
- 컨테이너가 생성되면 네트워크 네임스페이스를 설정한다.
- 컨테이너가 어떤 네트워크에 연결될지 결정하고, 적절한 CNI 플러그인을 호출한다.
- IP 주소를 할당하고 라우팅을 설정한다.
- 컨테이너가 삭제되면 네트워크에서 정리 작업을 수행한다.
Kubernetes에서 CNI 사용 방식
- Kubernetes에서 컨테이너 런타임(Container Runtime) 이 CNI 플러그인을 실행하여 네트워크를 설정한다.
- CNI 플러그인이 저장되는 위치
/opt/cni/bin → CNI 실행 파일이 저장된 경로
/etc/cni/net.d → CNI 설정 파일이 저장된 경로
- Kubernetes는 컨테이너를 생성할 때 CNI 설정을 읽고 적절한 네트워크를 자동으로 구성한다.