안녕하세요, 

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "GKE Node Pool"에 대해 다루고자 합니다.



Node Pool 이란?


Node Pool[1]은 GKE 클러스터 내에서 머신 유형, 디스크 크기, 이미지 유형과 같은 구성이 모두 동일한 노드 그룹입니다. 

각 노드 풀은 하나 이상의 노드를 포함할 수 있습니다.


클러스터를 생성할 때 지정하는 노드의 수와 유형이 기본 노드 풀이 됩니다. 

특정 노드 풀의 모든 노드는 서로 동일하며, 구성 변경 사항은 노드 풀에 있는 모든 노드에 영향을 줍니다.


Node Pool을 사용하면 클러스터 내에서 다양한 유형의 워크로드를 실행할 수 있습니다. 

예를 들어, 메모리 집약적인 애플리케이션을 실행하기 위한 고메모리 노드 풀과 CPU 집약적인 애플리케이션을 실행하기 위한 고성능 CPU 노드 풀을 생성할 수 있습니다. 

또한, 특정 애플리케이션에 특화된 하드웨어(예: GPU)가 있는 노드 풀을 생성할 수도 있습니다.




Node Pool 작동 방식


각 노드 풀은 NodeConfig 사양을 사용하여 구성됩니다. 

이 사양에는 머신 유형, 디스크 크기, 이미지 유형 등 노드의 구성 정보가 포함됩니다. 


기본적으로 모든 새 노드 풀은 제어 영역과 동일한 버전의 Kubernetes를 실행합니다. 

클러스터의 각 노드 풀에서 여러 Kubernetes 노드 버전을 실행하고, 각 노드 풀을 독립적으로 업데이트하고, 특정 배포에 대해 다른 노드 풀을 대상으로 지정할 수 있습니다.

※ 노드 풀 별로 독립적인 리소스이기 때문에, 전체 클러스터에 영향을 주지 않고 노드 풀 만들기, 업그레이드, 삭제를 개별적으로 수행할 수 있습니다. 


포드 매니페스트에서 nodeSelector를 설정하여 포드를 특정 노드 풀에 명시적으로 배포할 수 있습니다.[2] 

이렇게 하면 포드가 특정 노드 풀의 노드에서만 실행되도록 설정할 수 있습니다.



참조 링크


[1] Node Pool 소개

https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools

[2] 특정 노드 풀에 포드 배포

https://cloud.google.com/kubernetes-engine/docs/how-to/node-pools#deploy



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.