Kubernetes가 이러한 네트워크 플러그인을 사용하도록 구성하는 방법을 알아보기 위한 강의
CR컨테이너 런타임은 컨테이너 네트워크 네임스페이스를 생성하고,
이러한 네임스페이스를 올바른 네트워크에 연결하며 적절한 네트워크 플러그인을 호출하는 역할을 한다.
CNI가 컨테이너 런타임에게 ‘너는 ~한 역할을 해야해’라고 말해준다.
k8s에서 CNI 플러그인은 컨테이너를 생성하는 놈이 호출해야 한다.
왜냐하면 컨테이너가 생성될 직후 적절한 네트워크 플러그인을 호출해야 하기 때문이다.
CNI 플러그인은 각 노드의 kubelet 서비스에서 설정된다. kubelet 설정 파일을 열어보면 네트워크 플러그인이라는 항목이 존재한다.
(k8s v1.24 부터 cni-bin-dir
, network-plugin
커맨드라인 파라미터가 삭제되었다. 더이상 kubelet에서 확인이 불가능하다)
네트워크 플러그인으로 선택 가능한 플러그인의 목록은 /opt/cni/bin
경로에 존재한다.
/etc/cni/net.d 에는 cni config 파일이 존재한다. kubelet이 이 경로의 파일을 찾아본 후, 어떤 플러그인을 사용할지 확인한다.
아래는 bridge 네트워크 플러그인의 설정 파일 예시이다.
(CNI는 Kubernetes에서 컨테이너 네트워킹을 관리하기 위한 표준 인터페이스이며, Bridge Network Plugin은 CNI의 일부로서 사용되는 특정한 네트워크 플러그인 중 하나임)
만약 여기에 여러 파일이 존재한다면, 알파벳 순서로 하나를 선택하게 된다.
CNI 플러그인 구성 파일을 위한 CNI 표준에서 정의한 형식