본문 바로가기

카테고리 없음

Kubernetes 정리 216: IP Address Management - Weave

이 섹션에서는 노드의 가상 브리지 네트워크에 IP 서브넷을 할당하는 방법과 파드에 IP를 할당하는 방법에 대해 설명합니다. 
CNI가 표준을 정의하므로 CNI에게 물어봅시다. CNI는 컨테이너에 IP를 할당하는 것은 네트워크 솔루션 제공업체인 CNI 플러그인의 책임이라고 말합니다. 컨테이너 네트워크 네임스페이스에 IP를 할당하는 섹션이 있습니다.

그러나 이러한 IP를 어떻게 관리해야 할까요? 이제, 쿠버네티스는 우리가 어떻게 하는지 신경쓰지 않습니다. 중복된 IP를 할당하지 않고 제대로 관리하는 방식으로 진행하면 됩니다. IP 목록을 파일에 저장하고 이 파일을 제대로 관리하는 데 필요한 코드가 스크립트에 있는지 확인하는 것이 쉬운 방법입니다. 이 파일은 각 호스트에 배치되고 해당 노드의 부품 IP를 관리합니다. 우리의 스크립트에서 직접 코딩하는 대신, CNI에는 이 작업을 아웃소싱할 수 있는 두 개의 플러그인이 builtin되어 있습니다. 이 경우 각 호스트의 IP 주소를 로컬로 관리하기 위해 수행한 방식을 구현하는 플러그인이 호스트 로컬 플러그인입니다. 그러나 스크립트에서 플러그인을 호출하는 것은 여전히 우리의 책임입니다. 그렇지 않으면 스크립트를 동적으로 만들어 다양한 종류의 플러그인을 지원할 수 있습니다.

CNI configuration 파일에는 사용할 플러그인 유형, 서브넷 및 경로를 지정할 수 있는 IPAM이라는 섹션이 있습니다. 이러한 세부 정보는 매번 호스트 로컬을 사용하도록 하드 코딩하는 대신 적절한 플러그인을 호출하기 위해 스크립트에서 읽을 수 있습니다. 네트워크 솔루션 공급자에 따라 이를 다르게 수행합니다.

Weaveworks가 IP 주소를 어떻게 관리하는지 알아봅시다.  이전 연습 테스트에서 Weave가 할당한 IP 중 일부를 본 적이 있습니다. default로 Weave는 전체 네트워크에 대해 IP 범위 10.32.0.0/12를 할당합니다. 네트워크 IP 범위는 10.32.0.1 ~ 10.47.255.254입니다. 네트워크의 파드에 사용할 수 있는 IP는 약 백만 개입니다. 이 범위에서 peers는 IP 주소를 동일하게 분할하기로 결정하고 각 노드에 한 부분을 할당합니다. 이 노드에서 생성된 파드는 이 범위의 IP를 가집니다. 물론 이러한 범위는 Weave 플러그인을 클러스터에 배포하는 동안 이전의 추가 옵션으로 구성할 수 있습니다.