본문 바로가기

Computer Science/Kubernetes(CKA) 자격증 준비

Kubernetes 정리 210: CNI in kubernetes

1. Configuring CNI

쿠버네티스가 사용할 CNI 플러그인을 어디에 지정해야 할까? 컨테이너를 생성한 후 해당 컴포넌트가 적절한 네트워크 플러그인을 호출해야 하므로 컨테이너 생성을 담당하는 Kubernetes 내의 컴포넌트에서 CNI 플러그인을 호출해야 합니다. CNI 플러그인은 클러스터의 각 노드에 있는 kubelet.service에서 구성됩니다. 파일을 보면 네트워크 플러그인이라는 옵션이 CNI로 설정된 것을 볼 수 있습니다.

 

2. View Kublet Options

실행중인 kubelet.service를 보아도 동일한 정보를 볼 수 있습니다.

네트워크 플러그인이 CNI로 설정되어 있고 CNI bin 디렉토리 및 CNI conflict 디렉토리와 같이 CNI와 관련된 몇 가지 다른 옵션을 볼 수 있습니다. CNI bin 디렉토리에는 bridge, dscp, flanel 등의 실행 파일로 지원되는 모든 CNA 플러그인이 있습니다. CNI conflict 디렉토리에는 configuration 파일 집합이 있습니다. 여기서 kubelet는 어떤 플러그인을 사용해야 하는지 알아봅니다.

이 경우 bridge configuration 파일을 찾습니다. 여기에 여러 개의 파일이 있으면 알파벳 순서로 파일을 선택합니다. bridge.conf 파일을 보시면 이렇게 나옵니다.

플러그인 configuration 파일에 대해 CNI 표준에서 정의한 형식입니다. 이름은 mynet입니다. 유형은 bridge입니다. 또한 bridging routing 및 masquerading 에 대한 사전 강의에서 논의한 개념과 관련될 수 있는 일련의 다른 configurations이 있습니다. isGateway는 브리지 네트워크가 게이트웨이 역할을 할 수 있도록 IP 주소를 할당받아야 하는지 여부를 정의합니다. ipMasq은 IP 위장을 위해 NAT rule을 추가해야 하는지 여부를 정의합니다. ipam 섹션은 IPAM configuration을 정의합니다. 여기서 파드 및 필요한 로드에 할당할 서브넷 또는 IP 주소 범위를 지정합니다. host local 유형은 IP 주소가 DSCP 서버와 달리 이 호스트에서 로컬로 관리되고 원격으로 유지 관리됨을 나타냅니다. 유형을 DSCP로 설정하여 외부 DHCP 서버를 구성할 수도 있습니다.