노드 풀

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

개요

노드 풀은 클러스터 내에서 구성이 모두 동일한 노드 그룹입니다. 노드 풀은 NodeConfig 사양을 사용합니다. 풀의 각 노드에는 노드 풀의 이름이 값으로 포함된 Kubernetes 노드 라벨 cloud.google.com/gke-nodepool이 있습니다. 노드 풀은 하나 이상의 노드를 포함할 수 있습니다.

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

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

gcloud container node-pools 명령어를 사용하여 전체 클러스터에 영향을 주지 않고 개별적으로 노드 풀을 생성, 업그레이드, 삭제할 수 있습니다. 노드 풀에서 단일 노드를 구성할 수 없습니다. 즉, 구성 변경사항은 노드 풀에 있는 모든 노드에 영향을 줍니다.

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

특정 노드 풀에 서비스 배포

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

  • pod 매니페스트에서 nodeSelector를 설정하여 pod를 특정 노드 풀에 명시적으로 배포할 수 있습니다. 이렇게 하면 pod가 이 노드 풀의 노드에서만 실행됩니다. 예시를 보려면 pod를 특정 노드 풀에 배포를 참조하세요.

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

멀티 영역 또는 리전 클러스터의 노드

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

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

다음 단계