관리형 인스턴스 그룹 문제 해결


여러 가지 문제로 인해 관리형 인스턴스 그룹(MIG)에서 VM 인스턴스를 만들거나 다시 만들지 못할 수 있습니다.

삭제된 MIG의 로그가 생성되는 경우

이 문제는 다음과 같은 상황과 관련이 있을 수 있습니다.

연결된 자동 확장 처리가 존재함

Compute Engine API를 사용해서 MIG를 삭제했고 연결된 자동 확장 처리를 삭제하도록 개별 요청을 수행하지 않았으면 로그 탐색기에 다음 메시지와 함께 로그가 표시될 수 있습니다.

The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/DELETED_INSTANCE_GROUP_NAME' was not found.

해결 방법:

이 문제를 해결하려면 Compute Engine API 메서드를 사용해서 연결된 자동 확장 처리를 삭제합니다.

MIG에서 인스턴스를 만들거나 다시 만들 수 없는 경우

이 문제는 다음과 같은 상황과 관련이 있을 수 있습니다.

부팅 디스크가 이미 있음

기본적으로 인스턴스를 만들면 새 부팅 영구 디스크가 생성됩니다. 부팅 디스크의 이름은 VM의 이름과 일치합니다. VM의 이름을 my-instance로 지정하면 디스크 이름도 my-instance입니다. 이 이름의 영구 디스크가 이미 있으면 요청이 실패합니다. 이 문제를 해결하려면 선택적으로 스냅샷을 만든 후 기존 영구 디스크를 삭제하면 됩니다.

인스턴스 템플릿이 올바르지 않음

최근에 인스턴스 템플릿을 업데이트한 경우 MIG에서 VM 만들기에 실패하도록 하는 잘못된 속성이 있을 수 있습니다. 속성에 다음과 같은 일반적인 오류가 있는지 확인합니다.

  • 소스 이미지와 같은 존재하지 않는 리소스를 지정했습니다.
  • 리소스 이름 철자가 틀렸습니다.
  • 부팅 디스크가 아닌 기존 영구 디스크를 읽기/쓰기 모드로 연결하려고 했지만 그룹에 VM이 두 개 이상 포함되어 있습니다. VM이 두 개 이상인 그룹의 경우 그룹의 모든 VM 간에 공유하려는 추가 디스크를 읽기 전용 모드로만 연결할 수 있습니다.

리소스 유형 한도 초과

다음 오류는 한 리전 MIG에서 VM 2,000개 이상 또는 영역 MIG에서 VM 1,000개 이상을 만들려고 시도할 때 발생합니다. 인스턴스 그룹의 크기 한도에 도달했습니다.

오류 메시지:

ERROR: (gcloud.compute.<INSTANCE_GROUP_TYPE>.<METHOD>) Could not
fetch resource:

 - Exceeded limit 'MAX_INSTANCES_IN_INSTANCE_GROUP' on resource 'PROJECT_ID'.
 Limit: NUMBER

해결 방법:

이 문제를 해결하려면 다음 중 하나를 시도해 보세요.

MIG 또는 인스턴스를 삭제할 수 없는 경우

이 문제는 다음과 같은 상황과 관련이 있을 수 있습니다.

영역 또는 리전에서 찾을 수 없는 리소스

다음 오류는 리전 MIG를 삭제하려고 할 때 --zone 플래그를 지정하고 리전을 지정하지 않을 때 또는 잘못된 리전을 지정할 때 발생합니다. 영역 MIG를 삭제하려고 시도할 때 --region 플래그를 지정한 경우에도 비슷한 오류가 발생할 수 있습니다.

오류 메시지:

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME' was not found
    

해결 방법:

이 문제를 해결하려면 다음 중 하나를 시도해 보세요.

백엔드 서비스에 사용되는 리소스

부하 분산기의 백엔드 서비스에 사용될 때는 인스턴스 그룹을 삭제할 수 없습니다. 인스턴스 그룹을 삭제하려면 먼저 백엔드 서비스에서 인스턴스를 삭제해야 합니다.

오류 메시지:

  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE
  • ERROR: (gcloud.compute.instance-groups.managed.delete) Some requests did not succeed:
    ‐ The instance_group_manager resource 'projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME is already being used by 'projects/PROJECT/global/backendServices/BACKEND_SERVICE

해결 방법:

  1. 선택사항: 백엔드 인스턴스 그룹을 드레이닝합니다.

  2. 리전 또는 전역 백엔드 서비스에서 MIG를 삭제합니다.

    • 영역 MIG의 경우 다음 명령어를 실행합니다.

      gcloud compute backend-services remove-backend BACKEND_SERVICE \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-zone=ZONE \
          [--region=REGION | --global]
      
    • 리전 MIG의 경우 다음 명령어를 실행합니다.

      gcloud compute backend-services remove-backend BACKEND_SERVICE  \
          --instance-group=INSTANCE_GROUP_NAME \
          --instance-group-region=REGION \
          [--region=REGION | --global]
      
  3. MIG를 삭제합니다.

    gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME
    

MIG에서 인스턴스를 다시 만들려고 계속 시도하는 경우

이 문제는 다음과 같은 상황과 관련이 있을 수 있습니다.

상태 확인 프로브가 인스턴스에 도달할 수 없음

자동 복구 정책을 구성했지만 상태 확인 프로브가 애플리케이션에 도달하도록 허용하는 방화벽 규칙을 구성하지 않았거나 잘못 구성한 경우 VM이 비정상으로 나타나고 MIG가 계속해서 다시 생성을 시도합니다. 상태 확인 방화벽 규칙을 구성하는 방법에 대한 자세한 내용은 상태 확인 설정 예시를 참조하세요.