모든 인스턴스 구성으로 인스턴스 템플릿 속성 재정의


이 페이지에서는 새 인스턴스 템플릿을 만들 필요 없이 관리형 인스턴스 그룹(MIG)에서 모든 인스턴스 구성을 사용하여 모든 가상 머신(VM) 인스턴스에 대해 라벨메타데이터 속성을 설정하는 방법을 설명합니다.

인스턴스 템플릿을 사용하여 MIG에 인스턴스 속성을 설정하는 것은 여전히 가능합니다. 하지만 다음과 같은 일부 시나리오에서 MIG의 모든 인스턴스 구성을 사용하는 것이 더 편리합니다.

  • 매번 새 템플릿을 만드는 오버헤드 없이 인스턴스 메타데이터 또는 라벨을 자주 업데이트해야 하는 경우. 인스턴스 템플릿은 변경할 수 없습니다. 즉, 인스턴스 템플릿을 만든 후에는 수정할 수 없습니다.

  • 하나의 인스턴스 템플릿을 기반으로 여러 MIG를 구성하되 각 MIG의 라벨 또는 메타데이터를 다르게 구성하고 싶은 경우. 예를 들어 앱이 하나이지만 개발, 테스트, 프로덕션을 위해 서로 다른 환경을 지원하려는 경우입니다. 환경마다 다른 전체 인스턴스 구성으로 다른 메타데이터를 설정하여 단일 인스턴스 템플릿을 만들고 모든 환경에 재사용할 수 있습니다.

  • 인프라와 이미지를 소유한 한 팀이 있고 다른 팀은 구성이 필요한 앱을 실행하는 경우. 한 팀이 인스턴스 템플릿으로 인프라를 프로비저닝할 수 있으며, 앱팀은 모든 인스턴스 구성으로 앱 구성을 관리할 수 있습니다.

  • VM에서 에이전트가 실행 중이고 메타데이터를 사용하여 이를 구성하려 하는 경우. 그룹의 인스턴스 템플릿이 변경된 후에도 VM 에이전트 구성이 유지되도록 해야 합니다. 인스턴스 템플릿을 사용하여 앱 버전을 제어하고 모든 인스턴스 구성을 사용하여 VM 에이전트를 구성하세요.

MIG의 인스턴스 템플릿과 모든 인스턴스 구성을 사용하여 동일한 속성을 설정하면 MIG가 모든 인스턴스 구성의 값에 우선순위를 지정합니다. 예를 들어, enable-guest-attributes의 메타데이터가 MIG의 인스턴스 템플릿에서 FALSE로 설정되고, MIG의 모든 인스턴스 구성에서 TRUE로 설정된 경우, Compute Engine은 그룹의 모든 인스턴스에 TRUE를 적용합니다. 이렇게 하면 모든 인스턴스 구성을 사용하여 인스턴스 템플릿에 정의된 속성을 재정의할 수 있습니다.

시작하기 전에

  • 관리형 인스턴스 그룹을 만듭니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init

제한사항

  • 전체 인스턴스 구성으로는 다음과 같은 인스턴스 템플릿 속성만을 재정의할 수 있습니다.

    • 메타데이터
    • 라벨
  • 모든 인스턴스 구성은 카나리아로 업데이트할 수 없습니다. 그룹에 구성을 적용할 때 Compute Engine은 업데이트 정책에 따라 속성을 모든 새 인스턴스와 기존 인스턴스에 적용합니다. 업데이트할 기존 인스턴스를 제어하려면 선택적 업데이트를 사용하면 됩니다.

  • MIG에서 스테이트풀(Stateful) 구성을 사용하는 경우 인스턴스별 구성에서 동일한 속성을 동시에 설정할 수 없으며 그룹의 모든 인스턴스 구성에서 설정할 수 없습니다.

모든 인스턴스 구성의 속성 설정

gcloud CLI 또는 REST를 사용하여 MIG의 모든 인스턴스 구성을 만들고 업데이트할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 모든 인스턴스 구성을 설정할 MIG를 선택합니다.

  3. VM 업데이트를 클릭합니다.

  4. 모든 인스턴스 구성 섹션에서 다음을 수행합니다.

    • 메타데이터 값을 추가하거나 업데이트하려면 메타데이터 관리를 클릭합니다. 설정을 완료하고 저장을 클릭합니다.
    • 라벨을 추가하거나 업데이트하려면 라벨 관리를 클릭합니다. 설정을 완료하고 저장을 클릭합니다.
  5. 모든 인스턴스 구성의 속성 설정을 완료한 후 VM 업데이트를 클릭합니다.

    MIG의 업데이트 유형이 자동으로 설정된 경우 설정한 모든 인스턴스 구성이 모든 기존 VM에 즉시 적용됩니다. 업데이트 유형이 선택적이면 구성을 기존 VM에 선택적으로 적용해야 합니다. 자세한 내용은 기존 VM에 모든 인스턴스 구성 적용을 참조하세요.

gcloud

all-instances-config update 명령어를 사용하여 모든 인스턴스 구성을 추가하거나 업데이트하세요.

gcloud beta compute instance-groups managed all-instances-config update INSTANCE_GROUP_NAME \
    --metadata=KEY1=VALUE1,KEY2=VALUE2 \
    --labels=KEY3=VALUE3,KEY4=VALUE4

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름
  • KEYSVALUES: 라벨 또는 메타데이터의 키-값 쌍. 키가 없으면 update 명령어가 키를 추가합니다. 기존 키의 경우 값이 업데이트됩니다.

업데이트된 구성을 MIG의 기존 VM에 적용하는 것을 명심하세요.

REST

영역 또는 리전 MIG에 PATCH 요청을 수행하여 모든 인스턴스 구성을 추가하거나 업데이트하세요.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "allInstancesConfig": {
    "properties": {
      "metadata": {
        "KEY1": "VALUE1",
        ...
      },
      "labels": {
        "KEY2": "VALUE2",
        ...
      },
    }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: MIG가 위치한 프로젝트
  • REGION: MIG가 위치한 리전. 영역 MIG의 경우 regions/REGIONzones/ZONE으로 바꿉니다.
  • INSTANCE_GROUP_NAME: MIG 이름
  • KEYSVALUES: 라벨 또는 메타데이터의 키-값 쌍. 키가 없으면 요청이 키를 추가합니다. 기존 키의 경우 값이 업데이트됩니다.

업데이트된 구성을 MIG의 기존 VM에 적용하는 것을 명심하세요.

기존 VM에 모든 인스턴스 구성 적용

MIG의 VM에 지정한 VM 구성은 그룹에 추가된 새 VM에 자동으로 적용됩니다.

업데이트된 모든 인스턴스 구성을 포함하여 업데이트된 VM 구성을 그룹의 기존 VM에 적용하려면 다음 방법 중 하나를 사용합니다.

  • 자동(사전형): 이 방법을 사용하면 MIG에서 새 구성을 그룹 내 기존 VM 전체 또는 하위 집합에 자동으로 적용할 수 있습니다. 실행 중인 VM에 대한 중단 수준은 구성하는 업데이트 정책에 따라 다릅니다. 이 메서드를 사용하여 새 인스턴스 템플릿을 카나리아 업데이트할 수 있습니다. 이 메서드를 사용하려면 MIG의 업데이트 유형을 '사전형'으로 설정합니다.
  • 선택적(상황별): 업데이트를 수동으로 적용하거나 그룹의 모든 기존 VM을 한 번에 업데이트하려면 이 방법을 사용합니다. 최신 구성으로 업데이트할 VM의 일부 또는 전부를 대상으로 합니다. 이 메서드를 사용하려면 MIG의 업데이트 유형을 '상황별'로 설정합니다.
  • VM 재생성: MIG에서 VM을 다시 만들면 MIG가 아직 VM에 적용되지 않은 업데이트된 구성을 모두 적용합니다. 자세한 내용은 MIG에서 VM 다시 만들기를 참조하세요.

자동(사전형)

변경할 때마다 모든 기존 VM에 업데이트된 모든 인스턴스 구성을 자동으로 적용하려면 그룹의 업데이트 정책 유형을 '사전형'으로 설정합니다. 자세한 내용은 자동(사전형) 업데이트 유형을 참조하세요.

선택적인 .maxUnavailable, maxSurge, minReadySec 설정을 사용하여 사전형 구성 출시의 속도를 제어할 수 있습니다.

사전형 업데이트를 사용하려면 한 번만 구성하면 됩니다. 그러면 MIG는 향후 모든 VM 구성 변경사항(즉, 그룹의 모든 인스턴스 구성, 인스턴스 템플릿, 인스턴스별 구성에 대한 변경사항)을 그룹의 업데이트 정책 설정을 기준으로 그룹의 모든 VM에 자동으로 적용합니다.

구성 업데이트를 자동으로 적용하려면 gcloud CLI 또는 REST를 사용합니다.

gcloud

베타 update 명령어를 사용하여 자동 (사전형) 업데이트를 구성할 수 있습니다.

gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \
    --update-policy-type=proactive \
    --update-policy-max-unavailable=MAX_UNAVAILABLE \
    --update-policy-max-surge=MAX_SURGE \
    --update-policy-min-ready=MIN_READY \
    --update-policy-minimal-action=MINIMAL_ACTION \
    --update-policy-replacement-method=REPLACEMENT_METHOD

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름
  • MAX_UNAVAILABLE (선택사항): 업데이트 중에 사용할 수 없는 최대 인스턴스 수. 예를 들어 update-minimal-action 플래그를 restart로 설정하면 이 플래그는 한 번에 다시 시작되는 VM 수를 제한합니다. 이 수치는 고정 숫자(예: 5) 또는 관리형 인스턴스 그룹에 대한 크기 비율(예: 10%)일 수 있습니다.
  • MAX_SURGE (선택사항): 업데이트 중에 만들 수 있는 최대 추가 인스턴스 수. 이 수치는 고정 숫자(예: 5) 또는 관리형 인스턴스 그룹에 대한 크기 비율(예: 10%)일 수 있습니다.
  • MIN_READY (선택사항): 다시 시작하거나 대체된 VM을 사용할 수 있도록 준비해야 하는 최소 시간. 예를 들어 10초 동안 10s입니다. 기간 형식에 대한 상세 설명은 gcloud topic datetimes를 참조하세요.
  • MINIMAL_ACTION (선택사항): 구성 업데이트 중에 각 인스턴스에서 수행할 작업.
    • refresh: 실행 중인 인스턴스에 새 구성을 적용하지 않고 새 구성을 적용합니다.
    • restart: 업데이트 중에 VM을 다시 시작합니다. 이는 앱이 재부팅 중에만 메타데이터를 읽는 경우에 유용합니다.
    • replace: VM을 삭제하고 새 구성을 적용할 새 VM을 만듭니다.
  • REPLACEMENT_METHOD(선택사항): 인스턴스를 바꾸는 데 사용되는 작업을 지정합니다.
    • recreate: 이전 인스턴스가 삭제될 때까지 기다린 후 이전 인스턴스와 동일한 이름으로 새 인스턴스를 만듭니다.
    • substitute: 이전 인스턴스를 삭제하는 동안 새 이름으로 인스턴스를 만듭니다.

REST

영역 또는 리전 MIG에 PATCH 요청을 수행하여 자동(사전형) 업데이트를 구성할 수 있습니다.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "updatePolicy": {
    "type": "PROACTIVE",
    "maxUnavailable": {
      "percent": MAX_UNAVAILABLE
    },
    "maxSurge": {
      "percent": MAX_SURGE
    },
    "minimalAction": MINIMAL_ACTION,
    "replacementMethod": REPLACEMENT_METHOD
  }
}

다음을 바꿉니다.

  • PROJECT_ID: MIG가 위치한 프로젝트
  • REGION: MIG가 위치한 리전. 영역 MIG의 경우 regions/REGIONzones/ZONE으로 바꿉니다.
  • INSTANCE_GROUP_NAME: MIG 이름
  • MAX_UNAVAILABLE (선택사항): 업데이트 중에 사용할 수 없는 최대 인스턴스 수. 예를 들어 update-minimal-action 플래그를 RESTART로 설정하면 이 플래그는 한 번에 다시 시작되는 VM 수를 제한합니다. 백분율(예: 80%의 경우 "percent": 80 지정) 또는 고정된 숫자일 수 있습니다. 고정된 숫자를 지정하려면 "percent": MAX_UNAVAILABLE"fixed": MAX_UNAVAILABLE로 바꿉니다.
  • MAX_SURGE (선택사항): 업데이트 중에 만들 수 있는 최대 추가 인스턴스 수. 백분율 또는 고정된 숫자일 수 있습니다.
  • MINIMAL_ACTION (선택사항): 구성 업데이트 중에 각 인스턴스에서 수행할 작업.
    • REFRESH: 실행 중인 인스턴스에 새 구성을 적용하지 않고 새 구성을 적용합니다.
    • RESTART: 업데이트 중에 VM을 다시 시작합니다. 이는 앱이 재부팅 중에만 메타데이터를 읽는 경우에 유용합니다.
    • REPLACE: VM을 삭제하고 새 구성을 적용할 새 VM을 만듭니다.
  • REPLACEMENT_METHOD(선택사항): 인스턴스를 바꾸는 데 사용되는 작업을 지정합니다.
    • RECREATE: 이전 인스턴스가 삭제될 때까지 기다린 후 이전 인스턴스와 동일한 이름으로 새 인스턴스를 만듭니다.
    • SUBSTITUTE: 이전 인스턴스를 삭제하는 동안 새 이름으로 인스턴스를 만듭니다.

선택적인 플래그를 생략하면 그룹의 업데이트 정책에 있는 값이 그룹에 사용됩니다. gcloud CLI 또는 REST를 사용하여 업데이트 정책을 확인할 수 있습니다.

선택적(상황별)

새 구성을 적용할 VM과 시점을 제어하려면 그룹의 업데이트 정책 유형을 '상황별'로 설정하세요. 자세한 내용은 선택적(상황별) 업데이트 유형을 참조하세요.

구성 업데이트를 선택적으로 적용하면 그룹의 모든 인스턴스 구성, 인스턴스 템플릿 또는 인스턴스별 구성 변경사항이 기존 VM에 자동으로 적용되지는 않습니다. 업데이트된 구성을 업데이트하려면 기존 VM에 업데이트된 구성을 명시적으로 적용해야 합니다.

MIG의 VM에 VM 구성 업데이트를 선택적으로 적용하려면 gcloud CLI 또는 REST를 사용하세요.

gcloud

베타 update 명령어를 사용하여 선택적(상황별) 업데이트를 구성할 수 있습니다.

gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \
    --update-policy-type=opportunistic

그룹의 업데이트 유형을 opportunistic으로 설정하는 경우 기존 VM에 새 구성을 적용하려면 업데이트를 시작해야 합니다.

특정 VM에 구성 적용

선택한 인스턴스를 업데이트하려면 다음 명령어를 사용합니다.

gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAMES \
    --minimal-action=MINIMAL_ACTION \
    --most-disruptive-allowed-action=MOST_DISRUPTIVE_ALLOWED_ACTION

모든 VM에 구성 적용

모든 기존 인스턴스를 업데이트하려면 다음 명령어를 사용합니다.

gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
    --all-instances \
    --minimal-action=MINIMAL_ACTION \
    --most-disruptive-allowed-action=MOST_DISRUPTIVE_ALLOWED_ACTION

다음을 바꿉니다.

  • INSTANCE_GROUP_NAME: MIG 이름
  • INSTANCE_NAMES: 템플릿을 적용할 인스턴스 목록
  • MINIMAL_ACTION (선택사항): 구성 업데이트 중에 각 인스턴스에서 수행할 작업.
    • refresh (기본값): 실행 중인 인스턴스에 다시 시작하지 않고 새 구성을 적용합니다.
    • restart: 업데이트 중에 VM을 다시 시작합니다. 이는 앱이 재부팅 중에만 메타데이터를 읽는 경우에 유용합니다.
    • replace: VM을 삭제하고 새 구성을 적용할 새 VM을 만듭니다.
  • MOST_DISRUPTIVE_ALLOWED_ACTION (선택사항): 각 인스턴스에서 최대 이 작업을 수행합니다. 구성 업데이트에 여기에 지정된 것보다 더 많이 중단을 유발하는 작업이 필요한 경우 업데이트가 실패하고 변경사항이 적용되지 않습니다.
    • none: 작업 없음
    • refresh: 가능하다면 인스턴스를 중지하지 않고 새 구성을 적용합니다. 예를 들어 refresh를 사용하여 메타데이터 또는 추가 디스크에만 영향을 미치는 변경사항을 적용합니다.
    • restart: 가능한 경우 인스턴스를 바꾸지 않고 새 구성을 적용합니다. 예를 들어 인스턴스를 중지하고 다시 시작하는 것만으로 머신 유형에 변경사항을 적용할 수 있습니다.
    • replace: --replacement-method 플래그에 따라 이전 인스턴스를 바꿉니다.

REST

영역 또는 리전 MIG에 PATCH 요청을 수행하여 선택적(상황별) 업데이트를 구성할 수 있습니다.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "updatePolicy": {
    "type": "OPPORTUNISTIC"
}

그룹의 업데이트 유형을 OPPORTUNISTIC으로 설정하는 경우 기존 VM에 새 구성을 적용하려면 업데이트를 시작해야 합니다.

특정 VM에 구성 적용

특정 인스턴스를 업데이트하려면 다음 요청을 사용합니다.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances

{
  "instances": [
    "zones/ZONE/instances/INSTANCE_NAME_1",
    "zones/ZONE/instances/INSTANCE_NAME_2"
  ],
  "minimalAction": MINIMAL_ACTION,
  "mostDisruptiveAllowedAction": MOST_DISRUPTIVE_ALLOWED_ACTION
}

모든 VM에 구성 적용

모든 기존 인스턴스를 업데이트하려면 다음 요청을 사용합니다.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances

{
  "allInstances": true,
  "minimalAction": MINIMAL_ACTION,
  "mostDisruptiveAllowedAction": MOST_DISRUPTIVE_ALLOWED_ACTION
}

다음을 바꿉니다.

  • PROJECT_ID: MIG가 위치한 프로젝트
  • REGION: MIG가 위치한 리전. 영역 MIG의 경우 regions/REGIONzones/ZONE으로 바꿉니다.
  • INSTANCE_GROUP_NAME: MIG 이름
  • MINIMAL_ACTION (선택사항): 구성 업데이트 중에 각 인스턴스에서 수행할 작업.
    • REFRESH: 실행 중인 인스턴스에 새 구성을 적용하지 않고 새 구성을 적용합니다.
    • RESTART: 업데이트 중에 VM을 다시 시작합니다. 이는 앱이 재부팅 중에만 메타데이터를 읽는 경우에 유용합니다.
    • REPLACE: VM을 삭제하고 새 구성을 적용할 새 VM을 만듭니다.
  • MOST_DISRUPTIVE_ALLOWED_ACTION (선택사항): 각 인스턴스에서 최대 이 작업을 수행합니다. 구성 업데이트에 여기에 지정된 것보다 더 많이 중단을 유발하는 작업이 필요한 경우 업데이트가 실패하고 변경사항이 적용되지 않습니다.
    • NONE: 작업 없음
    • REFRESH: 가능하다면 인스턴스를 중지하지 않고 새 구성을 적용합니다. 예를 들어 REFRESH를 사용하여 메타데이터 또는 추가 디스크에만 영향을 미치는 변경사항을 적용합니다.
    • RESTART: 가능한 경우 인스턴스를 바꾸지 않고 새 구성을 적용합니다. 예를 들어 인스턴스를 중지하고 다시 시작하는 것만으로 머신 유형에 변경사항을 적용할 수 있습니다.
    • REPLACE: 그룹의 updatePolicy.replacementMethod 필드에 따라 이전 인스턴스를 바꿉니다.

업데이트된 모든 인스턴스 구성이 적용되었는지 확인

다음 방법 중 하나를 사용하여 그룹의 모든 VM에 최신 모든 인스턴스 구성이 적용되었는지 확인할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 모든 인스턴스 구성을 보려는 MIG를 선택합니다.

  3. 세부정보 탭으로 이동합니다.

  4. 최신 모든 인스턴스 구성이 모든 VM에 적용되는 경우 모든 인스턴스 구성 섹션에서 최종 수정 시간 타임스탬프 및 상태 필드에는 다음과 같은 값이 표시되어야 합니다.

    • 최종 수정 시간: 모든 인스턴스 구성을 모든 VM에 적용한 시간을 표시합니다.
    • 상태: 모든 VM에 적용됨으로 표시됩니다. 모든 인스턴스가 모든 VM에 적용되지 않으면 상태가 VM 업데이트 대기 중으로 표시됩니다.

gcloud

베타 describe 명령어를 사용하고 --format 플래그를 포함하여 status.allInstancesConfig.effective 값을 찾습니다.

gcloud beta compute instance-groups managed describe INSTANCE_GROUP_NAME \
    --format="(status.allInstancesConfig)"

샘플 결과:

status:
  allInstancesConfig:
    currentRevision: 2022-12-02T10:30:15.012345Z
    effective: true

effective 값이 true로 설정된 경우 모든 VM에 최신 구성이 적용됩니다. currentRevision 값은 그룹의 모든 인스턴스 구성에 대한 최근 변경사항의 타임스탬프를 보여줍니다.

effective 값이 false로 설정된 경우 최신 구성이 아직 모든 VM에 적용되지 않습니다.

각 VM의 상태를 확인하려면 MIG의 모든 VM 나열 또는 베타describe-instance 명령어로 각 VM을 개별적으로 확인할 수 있습니다.

gcloud beta compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME

샘플 결과:

allInstancesConfig:
  revision: 2022-12-02T10:30:15.012345Z
currentAction: NONE
id: '8393021473297481188'
instance: .../projects/PROJECT/zones/ZONE/instances/INSTANCE_NAME
instanceStatus: RUNNING
name: INSTANCE_NAME
version:
  instanceTemplate: .../projects/PROJECT/global/instanceTemplates/INSTANCE_TEMPLATE

최신 구성이 적용된 VM을 보려면 각 VM의 revision 타임스탬프를 MIG의 currentRevision 타임스탬프와 비교합니다.

REST

영역 또는 리전 MIG에서 GET 요청을 수행해서 status.allInstancesConfig.effective 플래그 값을 확인합니다.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

샘플 응답:

{
  ...
  "status": {
    "isStable": "true",
    "versionTarget": {
      "isReached": "true"
    },
    "allInstancesConfig": {
      "currentRevision": "2022-12-02T10:30:15.012345Z",
      "effective": "true"
    },
  ...
  },
  ...
}

effective 필드가 true로 설정되었으면 모든 VM에 최신 구성이 적용된 것입니다. currentRevision 필드는 그룹의 모든 인스턴스 구성에 대한 최근 변경사항의 타임스탬프를 보여줍니다.

effective 필드가 false로 설정된 경우 최신 구성이 아직 모든 VM에 적용되지 않습니다.

각 인스턴스의 상태를 확인하려면 영역 또는 리전 MIG에 대한 관리형 인스턴스를 나열하세요.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances

샘플 결과:

{
  "managedInstances": [
    ...
    {
      "instance": ".../zones/ZONE/instances/INSTANCE_NAME",
      "instanceStatus": "RUNNING",
      "currentAction": "NONE",
      "allInstancesConfig": {
        "revision": "2022-12-02T10:30:15.012345Z"
      },
      "version": {
        "name": "V1",
        "instanceTemplate": ".../projects/.../instanceTemplates/INSTANCE_TEMPLATE"
      }
    },
    {
      ...
    }
  ]
}

최신 구성이 적용된 VM을 보려면 각 VM의 revision 타임스탬프를 MIG의 currentRevision 타임스탬프와 비교합니다.

모든 인스턴스 구성의 속성 나열

모든 인스턴스 구성은 MIG 구성의 일부입니다. 모든 인스턴스 구성을 검토하려면 다음 방법 중 하나를 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 모든 인스턴스 구성을 보려는 MIG를 선택합니다.

  3. 세부정보 탭으로 이동합니다.

  4. 모든 인스턴스 구성 섹션을 참조하세요.

gcloud

describe 명령어를 사용하고 --format 플래그를 포함하여 그룹의 모든 인스턴스 구성 값을 표시하세요.

gcloud beta compute instance-groups managed describe INSTANCE_GROUP_NAME \
    --format="(allInstancesConfig)"

이 명령어는 그룹의 모든 인스턴스 구성(있는 경우)을 반환합니다.

REST

영역 또는 리전 MIG에 GET 요청을 수행하고 allInstancesConfig 필드를 찾으세요.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

allInstancesConfig 필드가 설정되지 않았다면 그룹에 모든 인스턴스 구성이 존재하지 않는 것입니다.

모든 인스턴스 구성에서 속성 삭제

MIG의 모든 인스턴스 구성에서 속성을 삭제하고 MIG의 인스턴스 템플릿에 동일한 속성이 존재하는 경우, 가장 최근의 구성이 MIG의 VM에 적용되면 MIG의 VM은 인스턴스 템플릿으로부터 속성을 다시 상속합니다. 기존 VM에 최신 구성을 적용하는 방법에 대한 상세 설명은 기존 VM에 모든 인스턴스 구성 적용을 참조하세요.

모든 인스턴스 구성에서 속성을 삭제하려면 다음 방법 중 하나를 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 모든 인스턴스 구성을 삭제할 MIG를 선택합니다.

  3. VM 업데이트를 클릭합니다.

  4. 모든 인스턴스 구성 섹션에서 다음을 수행합니다.

    • 메타데이터를 삭제하려면 메타데이터 관리를 클릭합니다.
    • 라벨을 삭제하려면 라벨 관리를 클릭합니다.
  5. 메타데이터 관리 또는 라벨 관리 창에서 다음을 수행합니다.

    1. 설정 위로 포인터를 가져가 삭제 옵션을 활성화한 다음 항목 삭제를 클릭합니다.
    2. 저장을 클릭합니다.
  6. 삭제를 마친 후 VM 업데이트를 클릭합니다.

    MIG의 업데이트 유형이 자동으로 설정된 경우 모든 인스턴스 구성의 변경사항이 모든 기존 VM에 즉시 적용됩니다. 업데이트 유형이 선택적이면 구성을 기존 VM에 선택적으로 적용해야 합니다. 자세한 내용은 기존 VM에 모든 인스턴스 구성 적용을 참조하세요.

gcloud

속성을 삭제하려면 베타 all-instances-configuration delete 명령어를 사용하고 삭제하려는 속성에 하나 이상의 키를 지정하세요.

gcloud beta compute instance-groups managed all-instances-config delete INSTANCE_GROUP_NAME \
    --metadata=KEY1[, KEY1]\
    --labels=KEY1[, KEY1]

업데이트된 구성을 MIG의 기존 VM에 적용하는 것을 명심하세요.

REST

속성을 삭제하려면 영역 또는 리전 MIG에 PATCH 요청을 수행하고 삭제할 각 속성의 키로 null 값을 지정하세요.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
  "allInstancesConfig": {
    "properties": {
      "metadata": {
        "KEY1": null,
        ...
      },
      "labels": {
        "KEY2": null,
        ...
      }
    }
  }
}

업데이트된 구성을 MIG의 기존 VM에 적용하는 것을 명심하세요.

다음 단계