マネージド インスタンス グループのトラブルシューティング


マネージド インスタンス グループ(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 に 2,000 個を超える VM を作成しようとするか、ゾーン MIG に 1,000 個を超える VM を作成しようとすると、次のエラーが発生します。インスタンス グループのサイズ上限に達しています。

エラー メッセージ:

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 は引き続き再作成を続けます。ヘルスチェックのファイアウォール ルールの構成方法については、こちらのヘルスチェックの設定例をご覧ください。