티스토리 뷰
Network Plugin이란 무엇인가
Plugin 이란 컴퓨터에 추가 프로그램을 설치하여 특정 기능을 수행할 수 있도록 하는 소프트웨어이다. 쿠버네티스의Netwrok Plugin이란 비슷한 맥락으로, 쿠버네티스에 추가적인 네트워크 플러그인을 설치하여, 네트워크 관련 기능을들을 수행한다.
Network Plugin 필수사항
이 네트워크 플러그인을 이용하기 위해서는
- NetworkPlugin Interface: 파드 네트워킹을 구성하고, 정리함
- kube-proxy 를 위한 지원: iptables을 가능하게 해주는 container traffic이 필요함
Netwrok Plugin의 종류
- CNI 플러그인: 컨테이너 네트워크 인터페이스(CNI)를 준수
- Kubenet 플러그인: Bridge와 host-local CNI플러그인을 사용하여 기본 cbr0을 구현함
컨테이너 네트워크 인터페이스(CNI)란 무엇인가?
CNCF프로젝트인 CNI는 지원되는 여러 플러그인과 함께 Linux 컨테이너에서 네트워크 인터페이스를 구성하기 위한 플러그인을 작성하기 위한 사양(specification) 및 라이브러리로 구성된다.
CNI는 네트워크 연결에만 관련이 있으며, 해당 컨테이너가 삭제되면 관련 할당된 자원을 삭제시킨다.
컨테이너별로 네트워킹 환경이 매우 다를수 있기 때문에, 컨테이너 런타임과 오케스트레이터가 CNI를 사용하여 네트워크 계층을 플러그인을 만들어 이와 관련제 문제를 해결할 수 있다.
쿠버네티스의 CNI
CNI 플러그인은 Kubelet --network-plugin=cni옵션을 전달하여 선택한다 .
Kubelet은 --cni-conf-dir(기본값 /etc/cni/net.d) 에서 파일을 읽고 해당 파일 의 CNI 구성을 사용하여 각 포드의 네트워크를 설정한다.
CNI 구성 파일은 CNI 사양과 일치 해야 한다. 여기서 참조하는 모든 필수 CNI 플러그인은 --cni-bin-dir(기본값 /opt/cni/bin) 에 있어야 한다.
/opt/cni/bin# ls
bandwidth dhcp flannel host-local loopback portmap sbr tuning
bridge firewall host-device ipvlan macvlan ptp static vlan
Kubebet
Linux에서만 사용할 수 있는 매우 기본적이고 간단한 네트워크 플러그인으로, 그 자체로는 노드 간 네트워킹 또는 네트워크 정책과 같은 고급 기능을 구현하지 않는다. 일반적으로 노드 간 또는 단일 노드 환경에서 통신을 위한 라우팅 규칙을 설정하는 클라우드 공급자와 함께 사용된다.
'CLOUD > Kubernetes' 카테고리의 다른 글
쿠버네티스 기록- 2개의 minikube cluster가 설치되어버린 상황 (0) | 2021.09.16 |
---|---|
에러해결 [ERROR IsPrivilegedUser]: user is not running as root (0) | 2021.09.13 |
에러해결 Unable to update cni config: No networks found in /etc/cni/net.d (0) | 2021.09.10 |
에러해결 하기 Alert!: Unable to connect to remote host. lynx: Can't access startfile (0) | 2021.09.01 |
virtualbox에서 minikube 시작하기 (0) | 2021.09.01 |