이 페이지에서는 표준 Google Kubernetes Engine(GKE) 클러스터를 자동 확장하는 방법을 설명합니다. 클러스터 자동 확장 처리의 작동 방식을 알아보려면 클러스터 자동 확장 처리를 참조하세요.
Autopilot 클러스터를 사용하면 노드 풀이 노드 자동 프로비저닝을 통해 자동으로 프로비저닝되고 워크로드 요구사항이 충족되도록 자동으로 확장되므로 노드 프로비저닝이나 노드 풀 관리에 신경을 쓰지 않아도 됩니다.
클러스터 자동 확장 처리 사용
다음 섹션에서는 클러스터 자동 확장 처리를 사용하는 방법을 설명합니다.
자동 확장을 사용하는 클러스터 만들기
Google Cloud CLI 또는 Google Cloud 콘솔을 사용하여 자동 확장이 사용 설정된 클러스터를 만들 수 있습니다.
gcloud
자동 확장이 사용 설정된 클러스터를 만들려면 --enable-autoscaling
플래그를 사용하고 --min-nodes
및 --max-nodes
를 지정합니다.
gcloud container clusters create CLUSTER_NAME \
--enable-autoscaling \
--num-nodes NUM_NODES \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES \
--region=COMPUTE_REGION
다음을 바꿉니다.
CLUSTER_NAME
: 만들 클러스터의 이름입니다.NUM_NODES
: 각 위치에서 만들 노드 수입니다.MIN_NODES
: 영역당 지정된 노드 풀에서 자동으로 확장되는 최소 노드 수입니다. GKE 버전 1.24 이상에서 전체 노드 풀의 최소 노드 수를 지정하려면--total-min-nodes
를 사용합니다.--total-min-nodes
및--total-max-nodes
플래그를--min-nodes
및--max-nodes
플래그와 함께 사용할 수 없습니다.MAX_NODES
: 영역당 지정된 노드 풀에서 자동으로 확장되는 최대 노드 수입니다. GKE 버전 1.24 이상에서 전체 노드 풀의 최대 노드 수를 지정하려면--total-max-nodes
를 사용합니다.--total-min-nodes
및--total-max-nodes
플래그를--min-nodes
및--max-nodes
플래그와 함께 사용할 수 없습니다.COMPUTE_REGION
: 새 클러스터의 Compute Engine 리전입니다. 영역 클러스터의 경우--zone=COMPUTE_ZONE
을 사용합니다.
예: 노드 자동 확장이 사용 설정되고 최소 및 최대 노드가 지정된 클러스터 만들기
다음 명령어는 리전의 3개 영역에 각각 30개씩 총 90개의 노드가 지정된 클러스터를 만듭니다. 노드 자동 확장이 사용 설정되고 클러스터 로드를 기준으로 노드 수를 조절합니다. 클러스터 자동 확장 처리는 기본 노드 풀 크기를 노드 15개로 줄이거나 노드 풀을 영역당 최대 50개의 노드로 늘릴 수 있습니다.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes=30 \
--min-nodes=15 --max-nodes=50 \
--region=us-central
예: 노드 자동 확장이 사용 설정되고 총 노드 수가 지정된 클러스터 만들기
다음 명령어는 리전의 3개 영역에 각각 10개씩 총 30개의 노드가 지정된 클러스터를 만듭니다. 노드 자동 확장이 사용 설정되고 클러스터 로드를 기준으로 노드 수를 조절합니다. 이 예시에서는 영역 간 분산에 관계없이 클러스터의 총 크기가 10~60개 사이의 노드일 수 있습니다.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes 10 \
--region us-central1 \
--total-min-nodes 10 --total-max-nodes 60
콘솔
기본 노드 풀에 자동 확장이 사용 설정된 새 클러스터를 만들려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
add_box만들기를 클릭합니다.
원하는 대로 클러스터를 구성합니다.
탐색창의 노드 풀에서 default-pool을 클릭합니다.
자동 확장 사용 설정 체크박스를 선택합니다.
최소 노드 수와 최대 노드 수 필드의 값을 원하는 대로 변경합니다.
만들기를 클릭합니다.
자동 확장을 사용하는 노드 풀 추가
gcloud CLI 또는 Google Cloud 콘솔을 사용하여 자동 확장이 사용 설정된 노드 풀을 만들 수 있습니다.
gcloud
자동 확장을 사용하는 노드 풀을 기존 클러스터에 추가하려면 다음 명령어를 사용합니다.
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
다음을 바꿉니다.
POOL_NAME
: 원하는 노드 풀의 이름입니다.CLUSTER_NAME
: 노드 풀이 생성되는 클러스터의 이름입니다.MIN_NODES
: 영역당 지정된 노드 풀에서 자동으로 확장되는 최소 노드 수입니다. GKE 버전 1.24 이상에서 전체 노드 풀의 최소 노드 수를 지정하려면--total-min-nodes
를 사용합니다.--total-min-nodes
및--total-max-nodes
플래그를--min-nodes
및--max-nodes
플래그와 함께 사용할 수 없습니다.MAX_NODES
: 영역당 지정된 노드 풀에서 자동으로 확장되는 최대 노드 수입니다. GKE 버전 1.24 이상에서 전체 노드 풀의 최대 노드 수를 지정하려면--total-max-nodes
를 사용합니다.--total-min-nodes
및--total-max-nodes
플래그를--min-nodes
및--max-nodes
플래그와 함께 사용할 수 없습니다.COMPUTE_REGION
: 새 클러스터의 Compute Engine 리전입니다. 영역 클러스터의 경우--zone=COMPUTE_ZONE
을 사용합니다.
예시: 노드 자동 확장이 사용 설정된 노드 풀 추가
다음 명령어는 노드 풀을 최대 5개 노드와 최소 1개 노드로 확장하는 노드 자동 확장을 사용하여 노드 풀을 만듭니다.
gcloud container node-pools create my-node-pool \
--cluster my-cluster \
--enable-autoscaling \
--min-nodes 1 --max-nodes 5 \
--zone us-central1-c
콘솔
자동 확장을 사용하는 노드 풀을 기존 클러스터에 추가하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.
add_box 노드 풀 추가를 클릭합니다.
노드 풀을 원하는 대로 구성합니다.
크기에서 자동 확장 사용 설정 체크박스를 선택합니다.
최소 노드 수와 최대 노드 수 필드의 값을 원하는 대로 변경합니다.
만들기를 클릭합니다.
기존 노드 풀의 자동 확장 사용 설정
gcloud CLI 또는 Google Cloud 콘솔을 사용하여 기존 노드 풀의 자동 확장을 사용 설정할 수 있습니다.
gcloud
기존 노드 풀에 자동 확장을 사용 설정하려면 다음 명령어를 사용합니다.
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--node-pool=POOL_NAME \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
다음을 바꿉니다.
CLUSTER_NAME
: 업데이트할 클러스터의 이름입니다.POOL_NAME
: 원하는 노드 풀의 이름입니다. 노드 풀이 하나뿐이면default-pool
을 값으로 제공합니다.MIN_NODES
: 영역당 지정된 노드 풀에서 자동으로 확장되는 최소 노드 수입니다. GKE 버전 1.24 이상에서 전체 노드 풀의 최소 노드 수를 지정하려면--total-min-nodes
를 사용합니다.--total-min-nodes
및--total-max-nodes
플래그를--min-nodes
및--max-nodes
플래그와 함께 사용할 수 없습니다.MAX_NODES
: 영역당 지정된 노드 풀에서 자동으로 확장되는 최대 노드 수입니다. GKE 버전 1.24 이상에서 전체 노드 풀의 최대 노드 수를 지정하려면--total-max-nodes
를 사용합니다.--total-min-nodes
및--total-max-nodes
플래그를--min-nodes
및--max-nodes
플래그와 함께 사용할 수 없습니다.COMPUTE_REGION
: 새 클러스터의 Compute Engine 리전입니다. 영역 클러스터의 경우--zone=COMPUTE_ZONE
을 사용합니다.
콘솔
기존 노드 풀에 자동 확장을 사용 설정하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.
노드 탭을 클릭합니다.
노드 풀 아래에서 수정할 노드 풀의 이름을 클릭한 다음 edit 수정을 클릭합니다.
크기에서 자동 확장 사용 설정 체크박스를 선택합니다.
최소 노드 수와 최대 노드 수 필드의 값을 원하는 대로 변경합니다.
저장을 클릭합니다.
기존 노드 풀의 자동 확장이 사용 설정되어 있는지 확인
클러스터가 Google Cloud CLI 또는 Google Cloud 콘솔로 자동 확장을 사용 중인지 확인합니다.
gcloud
클러스터의 노드 풀을 설명합니다.
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
다음을 바꿉니다.
POOL_NAME
: 선택한 새 노드 풀의 이름CLUSTER_NAME
: 클러스터의 이름
자동 확장이 사용 설정된 경우 출력이 다음과 비슷합니다.
autoscaling:
enabled: true
콘솔
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 목록에서 확인할 클러스터 이름을 클릭합니다.
노드 탭을 클릭합니다.
노드 풀에서 노드 풀
Autoscalling
상태를 확인합니다.
사용되지 않은 예약의 최적화에 우선순위를 두는 노드 풀 만들기
노드 풀을 만들 때 --location_policy=ANY
플래그를 사용하여 클러스터 자동 확장 처리에 사용되지 않은 예약의 사용률에 우선순위를 두도록 지시할 수 있습니다.
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location_policy=ANY
다음을 바꿉니다.
POOL_NAME
: 선택한 새 노드 풀의 이름CLUSTER_NAME
: 클러스터의 이름
기존 노드 풀의 자동 확장 사용 중지
gcloud CLI 또는 Google Cloud 콘솔을 사용하여 기존 노드 풀의 자동 확장을 사용 중지할 수 있습니다.
gcloud
특정 노드 풀의 자동 확장을 사용 중지하려면 --no-enable-autoscaling
플래그를 사용하세요.
gcloud container clusters update CLUSTER_NAME \
--no-enable-autoscaling \
--node-pool=POOL_NAME \
--region=COMPUTE_REGION
다음을 바꿉니다.
CLUSTER_NAME
: 업데이트할 클러스터의 이름입니다.POOL_NAME
: 원하는 노드 풀의 이름입니다.COMPUTE_REGION
: 새 클러스터의 Compute Engine 리전입니다. 영역 클러스터의 경우--zone=COMPUTE_ZONE
을 사용합니다.
클러스터 크기는 클러스터의 현재 기본 노드 풀 크기로 고정되어 있으며 수동으로 업데이트 가능합니다.
콘솔
특정 노드 풀의 자동 확장을 사용 중지하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.
노드 탭을 클릭합니다.
노드 풀 아래에서 수정할 노드 풀의 이름을 클릭한 다음 edit 수정을 클릭합니다.
크기에서 자동 확장 사용 설정 체크박스의 선택을 취소합니다.
저장을 클릭합니다.
노드 풀 크기 조정
자동 확장이 사용 설정된 클러스터의 경우 클러스터 자동 확장 처리가 최소 크기(--min-nodes
) 및 최대 크기(--max-nodes
) 값 또는 최소 총 크기(--total-min-nodes
) 및 최대 총 크기(--total-max-nodes
)로 지정된 경계 내에서 노드 풀의 크기를 자동으로 조정합니다. 이 플래그들은 상호 배타적입니다. 이러한 값을 변경하여 노드 풀의 크기를 수동으로 조정할 수 없습니다.
자동 확장을 사용 설정한 클러스터의 노드 풀 크기를 수동으로 조절하려면 다음을 수행합니다.
선택한 노드에서 포드 예약 방지
사용 사례에 따라 startup
또는 status
taint를 사용하여 선택한 노드에서 포드 예약을 방지할 수 있습니다.
이 기능은 버전 1.28 이상의 GKE에서 제공됩니다.
시작 taint
노드에서 포드를 실행하기 전에 완료해야 하는 작업이 있으면 startup
taint를 사용합니다. 예를 들어 노드의 드라이버 설치가 완료될 때까지 포드를 실행하지 않아야 합니다.
클러스터 자동 확장 처리는 startup
taint로 taint된 노드를 준비되지 않은 것으로 취급하지만, 곧 확장될 것으로 가정하여 확장 로직에서 이를 고려합니다.
시작 taint는 프리픽스가 startup-taint.cluster-autoscaler.kubernetes.io/
인 모든 taint로 정의됩니다.
상태 taint
GKE가 지정된 노드를 사용하여 포드를 실행해서는 안 되는 경우에는 status
taint를 사용하세요.
클러스터 자동 확장 처리는 status
taint가 있는 노드를 준비된 것으로 취급하지만 확장 논리 중 이를 무시합니다. taint 노드가 준비되어 있더라도 포드가 실행되지 않습니다. 포드에 더 많은 리소스가 필요한 경우 GKE가 클러스터를 확장하고 taint 노드를 무시합니다.
상태 taint는 프리픽스가 status-taint.cluster-autoscaler.kubernetes.io/
인 모든 taint로 정의됩니다.
무시 taint
무시 taint는 프리픽스가 ignore-taint.cluster-autoscaler.kubernetes.io/
인 모든 taint로 정의됩니다.
문제 해결
문제 해결 도움말은 다음 페이지를 참고하세요.