본문 바로가기
MLOps/Doker & Kubernetes

Udemy CKA 강의 정리 210: CNI in Kubernetes

by 공부하는 무니 2023. 1. 25.
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.

⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.


이 강의에서는 Kubernetes의 CNI에 대해 논의할 것입니다. prerequisite 강의에서는 네트워크 네임스페이스의 완전 기초  부터 시작했습니다. 그리고 우리는 도커에서 그것이 어떻게 이루어지는지 보았습니다. 그런 다음 네트워킹 컨테이너에 대한 표준이 필요한 이유와, 컨테이너 네트워크 인터페이스가 어떻게 나오게 되었는지에 대해 논의했습니다. 그리고 CNI에서 사용할 수 있는 지원되는 플러그인 목록을 살펴보았습니다.

이 강의에서는 이러한 네트워크 플러그인을 사용하도록 Kubernetes가 어떻게 구성되어 있는지 알아보겠습니다. prerequisite 강의에서 논의한 바와 같이, CNI는 CNI 컨테이너 run times에 따른 컨테이너 run times의 책임을 정의합니다.(?) 이 경우, Kubernetes는 컨테이너 네트워크 네임스페이스를 생성하고 올바른 네트워크 플러그인을 호출하여 해당 네임스페이스를 식별하고 올바른 네트워크에 연결합니다.

Configuring CNI

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

View Kubelet 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 routingmasquerading에 대한 사전 prerequisite 강의에서 논의한 개념과 관련될 수 있는 일련의 다른 configurations이 있습니다. isGateway는 브리지 네트워크가 게이트웨이 역할을 할 수 있도록 IP 주소를 할당받아야 하는지 여부를 정의합니다. ipMasq은 IP 위장을 위해 NAT rule을 추가해야 하는지 여부를 정의합니다. ipam 섹션은 IPAM configuration을 정의합니다. 여기서 파드 및 필요한 로드에 할당할 서브넷 또는 IP 주소 범위를 지정합니다. host local 유형은 IP 주소가 DSCP 서버와 달리 이 호스트에서 로컬로 관리되고 원격으로 유지 관리됨을 나타냅니다. 유형을 DSCP로 설정하여 외부 DHCP 서버를 구성할 수도 있습니다. 

반응형

댓글