여러 가지 문제로 인해 관리형 인스턴스 그룹(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의 자동 확장 처리에는
autoscalers.delete
메서드를 사용합니다. - 리전 MIG의 자동 확장 처리에는
regionAutoscalers.delete
메서드를 사용합니다.
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를 사용하세요.
- 예를 들어 부하 분산 구성을 조정하여 여러 MIG를 만들고 MIG 전반에서 워크로드를 분할합니다.
- 더 큰 그룹이 필요한 경우 MIG의 크기 한도를 늘리거나 지원팀에 문의하여 요청할 수 있습니다.
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
해결 방법:
이 문제를 해결하려면 다음 중 하나를 시도해 보세요.
- 명령어에 적절한
--region
또는--zone
플래그를 추가합니다. - 기본 리전 및 영역을 설정합니다.
백엔드 서비스에 사용되는 리소스
부하 분산기의 백엔드 서비스에 사용될 때는 인스턴스 그룹을 삭제할 수 없습니다. 인스턴스 그룹을 삭제하려면 먼저 백엔드 서비스에서 인스턴스를 삭제해야 합니다.
오류 메시지:
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
해결 방법:
선택사항: 백엔드 인스턴스 그룹을 드레이닝합니다.
프록시 부하 분산기만 해당하는 경우 백엔드 서비스에서 인스턴스 그룹을 삭제하기 전에 용량 확장 처리를
0.0
으로 설정할 수 있습니다.gcloud compute backend-services edit
명령어를 사용하여 용량 확장 처리를 0으로 설정할 수 있습니다.프록시 및 패스스루 부하 분산기의 경우 백엔드 서비스에서 연결 드레이닝을 사용 설정하면 인스턴스 그룹이 백엔드 서비스에서 삭제될 때마다 Google Cloud에서 기존 연결의 지속, 완료, 드레이닝을 허용하도록 시도됩니다.
리전 또는 전역 백엔드 서비스에서 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]
MIG를 삭제합니다.
gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME
MIG에서 인스턴스를 다시 만들려고 계속 시도하는 경우
이 문제는 다음과 같은 상황과 관련이 있을 수 있습니다.
상태 확인 프로브가 인스턴스에 도달할 수 없음
자동 복구 정책을 구성했지만 상태 확인 프로브가 애플리케이션에 도달하도록 허용하는 방화벽 규칙을 구성하지 않았거나 잘못 구성한 경우 VM이 비정상으로 나타나고 MIG가 계속해서 다시 생성을 시도합니다. 상태 확인 방화벽 규칙을 구성하는 방법에 대한 자세한 내용은 상태 확인 설정 예시를 참조하세요.