노드 풀

이 페이지에서는 Google Kubernetes Engine에서의 노드 풀 작동 방법을 설명합니다. 또한 노드 풀 추가 및 관리 방법을 알아볼 수 있습니다.

개요

노드 풀은 클러스터 내에서 모두 동일한 구성을 갖는 노드 인스턴스의 하위 집합입니다. 노드 풀은 NodeConfig 사양을 사용합니다. 풀의 각 노드에는 노드 풀의 이름이 값으로 포함된 Kubernetes 노드 라벨 cloud.google.com/gke-nodepool이 포함되어 있습니다.

컨테이너 클러스터를 만들 때 사용자가 지정하는 노드 수 및 유형이 기본 노드 풀이 됩니다. 그런 후 다른 크기 및 유형의 추가 커스텀 노드 풀을 클러스터에 추가할 수 있습니다. 특정 노드 풀의 모든 노드는 서로 동일합니다.

예를 들어 클러스터에서 로컬 SSD, 최소 CPU 플랫폼, 선점형 VM, 특정 노드 이미지, 큰 인스턴스 크기 또는 다른 머신 유형을 사용해서 노드 풀을 만들 수 있습니다. 커스텀 노드 풀은 추가 메모리 또는 추가 로컬 디스크 공간 등 다른 것보다 더 많은 리소스가 필요한 포드를 예약해야 할 경우에 유용합니다. 포드 예약 위치를 더 세부적으로 제어해야 할 경우에는 노드 taint를 사용할 수 있습니다.

gcloud container node-pools 명령을 사용하여 전체 클러스터에 영향을 주지 않고 개별적으로 노드 풀을 생성, 업그레이드, 삭제할 수 있습니다.

기본적으로 모든 노드 풀은 안정적인 최신 Kubernetes 버전을 실행합니다. 기존 노드 풀은 수동 또는 자동으로 업그레이드할 수 있습니다. 또한 클러스터의 각 노드 풀에서 여러 Kubernetes 노드 버전을 실행하고, 각 노드 풀을 독립적으로 업데이트하고, 특정 배포에 대해 다른 노드 풀을 대상으로 지정할 수 있습니다.

특정 노드 풀에 서비스 배포

서비스를 정의할 때 서비스가 배포되는 노드를 간접적으로 제어할 수 있습니다. 노드 풀은 서비스의 구성이 아니라 포드의 구성에 의존합니다.

  • 포드 매니페스트에서 nodeSelector를 설정하여 특정 노드 풀에 배포하도록 명시적으로 포드를 강제할 수 있습니다. 이렇게 하면 포드는 해당 노드 풀의 노드에서만 실행되도록 강제됩니다.

  • 컨테이너를 위한 리소스 요청을 지정할 수 있습니다. 포드는 리소스 요청을 충족하는 노드에서만 실행됩니다. 예를 들어 4개의 CPU가 필요한 컨테이너가 포드 정의에 포함된 경우, 서비스는 CPU가 2개인 노드에서 실행되는 포드는 선택하지 않습니다.

다중 영역 클러스터의 노드

다중 영역 클러스터를 만든 경우, 모든 노드 풀이 해당 영역에 자동으로 복제됩니다. 모든 새 노드 풀은 이러한 영역에서 자동으로 생성됩니다. 마찬가지로, 모든 삭제 작업은 추가 영역에서도 해당 노드 풀을 삭제합니다.

이러한 배수적인 효과로 인해, 이 방식은 노드 풀을 만들 때 특정 영역의 프로젝트 할당량보다 많은 리소스를 소비할 수 있습니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Kubernetes Engine