노드 그룹 자동 확장


이 페이지에서는 단독 테넌트 노드 그룹에서 자동 확장 처리를 사용하는 방법을 설명합니다.

워크로드에 단독 테넌트 노드를 사용하는 경우 노드 그룹 자동 확장 처리를 사용하여 노드 그룹의 크기를 자동으로 관리할 수 있습니다. 노드 그룹을 만들 때나 만든 후에 노드 그룹에서 자동 확장을 구성합니다. 노드 그룹 자동 확장 처리를 사용하면 다음 방법을 통해 단독 테넌트 노드 그룹의 크기를 자동으로 관리할 수 있습니다.

  • 노드 그룹의 다른 가상 머신(VM) 인스턴스에 용량이 부족할 때 해당 노드 그룹의 크기를 늘립니다. 자동 확장 처리가 노드 그룹의 크기를 늘리면 VM이 투명하게 예약됩니다.

  • 빈 노드가 있을 때 노드 그룹의 크기를 줄여 사용하지 않는 단독 테넌트 노드에 대한 비용 청구를 방지합니다.

다음 다이어그램을 참조하세요.

  1. 노드 그룹 자동 확장 처리는 노드가 비어 있지 않은 노드 그룹에 VM을 배포할 때 그에 대한 응답으로 새 노드를 추가하여 노드 그룹을 수평 확장합니다.

  2. 노드 그룹 자동 확장 처리는 단독 테넌트 노드 그룹에서 빈 노드를 삭제하여 노드 그룹을 수평 축소합니다.

노드 그룹 크기를 관리하는 노드 그룹 자동 확장 처리입니다.

자동 확장 처리 모드

기본적으로 노드 그룹에는 자동 확장 처리가 사용 설정되어 있지 않습니다. 자동 확장 처리가 사용 설정되지 않은 경우 노드 그룹의 크기를 수동으로 관리해야 합니다. 노드 그룹에 자동 확장 처리를 사용 설정하면 자동 확장 처리에서 노드 그룹의 크기를 늘리고 줄이거나(수평 확장 및 축소) 그룹 크기만 늘리도록 지정할 수 있습니다.

수평 확장 및 축소

이 모드에서 노드 그룹 자동 확장 처리는 노드 그룹의 크기를 늘리고(수평 확장) 줄입니다(축소). 이 모드에서는 노드 그룹의 최대 크기와 최소 크기를 지정해야 합니다. 자동 확장 처리는 지정된 최댓값 이상이나 지정된 최솟값 이하로 노드 그룹의 크기를 조정하지 않습니다.

자동 확장 처리는 다른 VM을 위한 용량이 없는 노드 그룹에 대한 VM 예약 요청이 있을 때 노드 그룹의 크기를 수평 확장합니다. 반대로 자동 확장 처리는 노드 그룹에 빈 노드가 있으면 노드 그룹의 크기를 축소합니다.

수평 확장만

이 모드를 사용하면 자동 확장 처리가 VM 예약 요청에 대한 응답으로 노드 그룹의 크기를 늘리지만 빈 노드를 노드 그룹에서 삭제하지는 않습니다. 단조 증가하는 워크로드 또는 동일한 물리적 서버에 상주하기 위해 라이선스가 필요한 BYOL 워크로드와 같이 물리적 서버 어피니티가 필요한 워크로드에는 이 모드를 사용하는 것이 좋습니다.

최소한의 서버에서 호스팅된 VM을 다시 시작하도록 노드 그룹이 구성된 경우 이 모드를 사용해야 합니다.

노드 그룹의 크기 범위

자동 확장 처리를 사용 설정할 때 노드 그룹 크기의 최솟값과 최댓값을 지정하여 노드 그룹의 크기 범위를 설정합니다.

최소 크기 값을 지정하지 않으면 자동 확장 처리에서 최소 크기를 0으로 설정합니다. 최소 크기 값을 지정하는 경우 0 이상의 정수여야 하고, 최대 크기 이하여야 합니다.

노드 그룹의 최대 크기 값을 지정해야 합니다. 이 값은 0 이상 100(단독 테넌트 노드 그룹의 최대 허용 크기) 이하의 정수여야 하며, 지정된 최솟값 이상이어야 합니다.

노드 그룹의 최대 크기인 100을 초과할 수 있는 워크로드를 수용하려면 일치하는 어피니티 라벨(예: workload:in:my-autoscaled-node-groups)로 여러 노드 그룹을 만듭니다. 그런 다음 해당 어피니티 라벨을 사용하여 VM을 예약하고 각 그룹에서 자동 확장을 사용 설정하여 노드 그룹의 동적 확장 그룹을 만듭니다.

가용성

단독 테넌트 노드 자동 확장 처리는 단독 테넌트 노드를 지원하는 리전에서만 사용할 수 있습니다.

시작하기 전에

노드 그룹 자동 확장 처리 사용 설정

새 노드 그룹에서 자동 확장을 구성합니다.

gcloud

아래 예시는 노드 그룹을 만들 때 node-groups create 명령어를 사용하여 자동 확장 처리를 사용 설정하는 방법을 보여줍니다. 기존 노드 그룹에 자동 확장 처리를 추가하려면 node-groups update 명령어를 사용합니다.

gcloud compute sole-tenancy node-groups create group-name \
  --node-template template-name \
  --target-size size \
  --maintenance-policy maintenance-policy \
  --zone zone \
  --autoscaler-mode mode \
  --max-nodes max-nodes \
  --min-nodes min-nodes

다음을 바꿉니다.

  • group-name: 만들려는 노드 그룹의 이름입니다.
  • template-name: 노드 그룹을 만들 노드 템플릿의 이름입니다.
  • size: 노드 그룹의 대상 초기 노드 수입니다.
  • maintenance-policy: VM을 마이그레이션하는지 여부와 호스트 유지보수 이벤트 중에 VM이 다시 시작되는지 여부를 지정합니다. 다음 값 중 하나로 설정합니다.
    • default: VM이 새 노드로 라이브 마이그레이션됩니다.
    • migrate-within-node-group: VM이 노드 그룹의 다른 노드로 라이브 마이그레이션됩니다.
    • restart-in-place: 유지보수 이벤트로 인해 VM이 종료된 후 동일한 노드에서 다시 시작됩니다.
  • zone: 노드 그룹을 만들 영역입니다.
  • mode: 이 노드 그룹의 자동 확장 처리 모드입니다. 다음 값 중 하나로 설정합니다.
    • off: 자동 확장 처리를 사용 중지합니다.
    • on: 축소 및 수평 확장을 사용 설정합니다.
    • only-scale-out: 수평 확장만 사용 설정합니다. 최소한의 서버에서 호스팅된 VM을 다시 시작하도록 노드 그룹이 구성된 경우 이 모드를 사용해야 합니다.
  • max-nodes: 노드 그룹의 최대 크기입니다. 100 이하 및 min-nodes 이상으로 설정합니다.
  • min-nodes: 노드 그룹의 최소 크기로 max-nodes 이하의 정수 값이어야 합니다. 기본값은 0입니다.

API

아래 예시는 노드 그룹을 만들 때 nodeGroups.insert 명령어를 사용하여 자동 확장 처리를 사용 설정하는 방법을 보여줍니다. 기존 노드 그룹에 자동 확장 처리를 추가하려면 nodeGroups.patch 명령어를 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeGroups?initialNodeCount=initial-node-count

  {
    "name": "group-name",
    "nodeTemplate": "template-name",
    "autoscalingPolicy": {
      "mode": "mode",
      "min_nodes": min-nodes,
      "max_nodes": max-nodes
    }
    "maintenancePolicy": maintenance-policy
  }

다음을 바꿉니다.

  • project-id: 자동 확장 처리를 사용하여 노드 그룹을 추가할 프로젝트의 ID입니다.
  • zone: 새 노드 그룹을 만들 영역입니다.
  • initial-node-count: 노드 그룹을 만들 때 필요합니다. 노드 그룹의 초기 노드 수를 지정합니다. min-nodes 값이 초기 노드 수보다 크면 노드 그룹의 크기가 min-nodes 값으로 수평 확장됩니다.
  • group-name: 새 노드 그룹의 이름입니다.
  • template-name: 노드 그룹을 만들 노드 템플릿의 이름입니다.
  • mode: 이 노드 그룹의 자동 확장 처리 모드입니다. 다음 중 하나로 설정합니다.
    • OFF: 자동 확장 처리를 사용 중지합니다.
    • ON: 축소 및 수평 확장을 사용 설정합니다.
    • ONLY_SCALE_OUT: 수평 확장만 사용 설정합니다. 최소한의 서버에서 호스팅된 VM을 다시 시작하도록 노드 그룹이 구성된 경우 이 모드를 사용해야 합니다.
  • max-nodes: 노드 그룹의 최대 크기입니다. 100 이하 및 min-nodes 이상으로 설정합니다.
  • min-nodes: 노드 그룹의 최소 크기로 max-nodes 이하의 정수 값이어야 합니다. 기본값은 0입니다.
  • maintenance-policy: VM을 마이그레이션하는지 여부와 호스트 유지보수 이벤트 중에 VM이 다시 시작되는지 여부를 지정합니다. 다음 값 중 하나로 설정합니다.
    • DEFAULT: VM이 새 노드로 라이브 마이그레이션됩니다.
    • MIGRATE_WITHIN_NODE_GROUP: VM이 노드 그룹의 다른 노드로 라이브 마이그레이션됩니다.
    • RESTART_IN_PLACE: 유지보수 이벤트로 인해 VM이 종료된 후 동일한 노드에서 다시 시작됩니다.

자동 확장 처리 설정 업데이트

자동 확장 처리 모드를 업데이트하거나 노드 그룹의 최소 및 최대 크기를 업데이트하여 노드 그룹의 자동 확장 처리 설정을 변경합니다.

gcloud

아래 예시는 node-groups update 명령어를 사용하여 노드 그룹의 자동 확장 처리 모드를 변경하는 방법을 보여줍니다.

gcloud compute sole-tenancy node-groups update name \
  --autoscaler-mode mode \
  --max-nodes max-nodes \
  --min-nodes min-nodes

다음을 바꿉니다.

  • name: 자동 확장 처리 모드를 변경할 노드 그룹의 이름입니다.
  • mode: 이 노드 그룹의 자동 확장 처리 모드입니다. 다음 중 하나로 설정합니다.
    • off: 자동 확장 처리를 사용 중지합니다.
    • on: 축소 및 수평 확장을 사용 설정합니다.
    • only-scale-out: 수평 확장만 사용 설정합니다. 최소한의 서버에서 호스팅된 VM을 다시 시작하도록 노드 그룹이 구성된 경우 이 모드를 사용해야 합니다.
  • max-nodes: 노드 그룹의 최대 크기입니다. 100 이하 및 min-nodes 이상으로 설정합니다.
  • min-nodes: 노드 그룹의 최소 크기로 max-nodes 이하의 정수 값이어야 합니다. 기본값은 0입니다.

API

아래 예시는 nodeGroups.patch 명령어를 사용하여 노드 그룹의 자동 확장 처리 모드를 변경하는 방법을 보여줍니다.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode",
    "minSize": min-nodes,
    "maxSize": max-nodes
  }
}

다음을 바꿉니다.

  • project-id: 자동 확장 처리 모드를 변경할 노드 그룹이 포함된 프로젝트의 ID입니다.
  • group-zone: 자동 확장 처리 모드를 변경할 노드 그룹이 포함된 영역입니다.
  • group-name: 자동 확장 처리 모드를 변경할 노드 그룹의 이름입니다.
  • template-name: 노드 그룹이 생성된 노드 템플릿의 이름입니다.
  • mode: 이 노드 그룹의 자동 확장 처리 모드입니다. 다음 중 하나로 설정합니다.
    • OFF: 자동 확장 처리를 사용 중지합니다.
    • ON: 축소 및 수평 확장을 사용 설정합니다.
    • ONLY_SCALE_OUT: 수평 확장만 사용 설정합니다. 최소한의 서버에서 호스팅된 VM을 다시 시작하도록 노드 그룹이 구성된 경우 이 모드를 사용해야 합니다.
  • max-nodes: 노드 그룹의 최대 크기입니다. 100 이하 및 min-nodes 이상으로 설정합니다.
  • min-nodes: 노드 그룹의 최소 크기로 max-nodes 이하의 정수 값이어야 합니다. 기본값은 0입니다.

자동 확장된 노드 그룹의 크기 수동 업데이트

자동 확장 처리가 사용 설정되면 노드 그룹 크기가 자동으로 관리되지만 해당 노드 그룹에서 VM을 예약하거나 삭제하여 그룹 크기를 효과적으로 수동 업데이트할 수 있습니다.

자동 확장된 노드 그룹의 크기를 수동으로 줄이려면 노드가 빌 때까지 노드에서 VM을 삭제합니다. 노드가 비어 있으면 자동 확장 처리가 빈 노드를 제거하여 노드 그룹의 크기를 줄입니다.

자동 확장된 노드 그룹의 크기를 수동으로 늘리려면 그룹의 최소 크기를 현재 크기보다 큰 값으로 설정합니다. 그룹의 최소 크기가 현재 크기보다 큰 값으로 설정되면 자동 확장 처리가 그룹 크기를 새로 지정된 최소 크기로 확장합니다.

노드 그룹이 수평 확장만으로 설정된 경우 자동 확장 처리는 자동으로 그룹 크기 증가를 관리하고 수동 그룹 크기 증가를 사용 중지합니다. 이 설정을 사용하면 노드가 빌 때까지 노드에서 VM을 삭제한 후 빈 노드를 삭제할 수 있습니다.

자동 확장 처리 사용 중지

더 이상 자동 확장 처리를 사용하여 노드 그룹의 크기를 자동으로 관리할 필요가 없거나 노드 그룹의 크기를 직접 관리해야 하는 경우 자동 확장 처리를 사용 중지합니다.

gcloud

gcloud compute sole-tenancy node-groups update name \
  --autoscaler-mode OFF

name을 자동 확장 정책을 삭제할 노드 그룹의 이름으로 바꿉니다.

API

아래 예시는 nodeGroups.patch 명령어를 사용하여 노드 그룹에서 자동 확장 처리를 사용 중지하는 방법을 보여줍니다.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode"
  }
}

다음을 바꿉니다.

  • project-id: 자동 확장 처리 모드를 변경할 노드 그룹이 포함된 프로젝트의 ID입니다.
  • group-zone: 자동 확장 처리 모드를 변경할 노드 그룹이 포함된 영역입니다.
  • group-name: 자동 확장 처리 모드를 변경할 노드 그룹의 이름입니다.
  • template-name: 노드 그룹이 생성된 노드 템플릿의 이름입니다.
  • mode: 이 노드 그룹의 자동 확장 처리 모드입니다. 이 노드 그룹에서 자동 확장 처리를 사용 중지하려면 OFF로 설정합니다.

자동 확장 처리 활동 보기

Google Cloud Console에서 노드 그룹의 크기를 조정하는 자동 확장 처리를 확인합니다. Cloud Console에는 노드 그룹의 현재 크기가 표시되며, 자동 확장 처리가 현재 그룹 크기를 조정 중인 경우 노드 그룹의 대상 크기도 확인할 수 있습니다.

Console

  1. Cloud Console에서 단독 테넌트 노드 페이지로 이동합니다.

    단독 테넌트 노드로 이동

  2. 노드 그룹을 클릭합니다.

  3. 각 노드 그룹의 노드 수를 보고, Compute Engine이 노드 그룹을 확장 중인 경우 대상 노드 수도 확인할 수 있습니다.

다음 단계