このページには、Cloud Workstations の問題の解決に役立つトラブルシューティング情報が記載されています。
VM にシステム イメージを pull する
ワークステーション構成を使用してワークステーションを作成すると、Cloud Workstations は Artifact Registry(または Container Registry)から仮想マシン(VM)インスタンスにシステム イメージを pull します。表示されるエラー メッセージは次のようになります。
System images cannot be pulled onto workstation VMs using this configuration.
Ensure that you have set up Cloud NAT or enabled Private Google Access for
Artifact Registry (and Container Registry).
これらのイメージの pull に失敗すると、ワークステーションの起動ができなくなる可能性があります。以下のような推奨事項があります。
- Cloud NAT を設定するか、限定公開の Google アクセスを有効にします。
- API が有効で、VPC にアクセスできることを確認します。
- ファイアウォール ルールを更新して TCP の下り(外向き)を許可します。
- Compute Engine VM の起動ログを調べて、発生する可能性があるエラーを確認します。
- プロジェクトでゲスト属性を有効にする。
VM のプロビジョニングがタイムアウトする
ワークステーション構成を使用してワークステーションを作成すると、Cloud Workstations はワークステーションをバックアップする Compute Engine を作成します。VM のプロビジョニングでエラーが発生した場合、次のようなエラー メッセージが表示されます。
Workstations using this configuration cannot be provisioned due to an unknown error.
以下のような推奨事項があります。
- Compute Engine VM の起動ログを調べて、発生する可能性があるエラーを確認します。
- Compute Engine API のログを調べて、発生する可能性があるエラーを確認します。
- プロジェクトでゲスト属性を有効にする。
Cloud NAT を設定するか、限定公開の Google アクセスを有効にする
構成でパブリック IP アドレスを無効にした場合は、次のいずれかのオプションを使用します。
- Cloud Workstations がワークステーション VM にイメージを pull できるように、Cloud NAT を設定します。
-
サブネットでプライベート Google アクセスを有効にします。
private.googleapis.comまたはrestricted.googleapis.comドメイン名を使用する場合は、これらのドメインに関連付けられた IP アドレスにトラフィックを転送する DNS レコードを作成します。具体的には、Artifact Registry と Container Registry のドメイン(それぞれ*.pkg.devと*.gcr.ioに対応)へのアクセスを有効にする必要があります。
詳細については、限定公開の Google アクセスの構成 > 高度なネットワーク構成をご覧ください。
API が有効で、VPC にアクセスできることを確認する
プロジェクトが VPC Service Controls 境界内にある場合は、サービス境界内で Cloud Storage API、Container Registry API、Artifact Registry API が Virtual Private Cloud(VPC)にアクセスできることを確認します。
ファイアウォール ルールを更新して TCP の下り(外向き)を許可する
ポート 80 と 443 でネットワークの TCP の下り(外向き)を許可して、Cloud Workstations がワークステーションにイメージを pull できるようにします。
Compute Engine VM の起動ログを調べて、発生する可能性があるエラーを確認する
Cloud Workstations によって作成された VM は、起動時にデバッグログをシリアル コンソールに出力します。これらのログは、サービスが VM の作成中にタイムアウトした場合に役立ちます。ワークステーション用に作成された VM 名は workstations- で始まり、その後に固有識別子が続きます。ログ エクスプローラでログをフィルタするには、次のフィルタを使用します。
SEARCH("workstations-")
sourceLocation.function="main.setupAndRunScript"
このフィルタでログが表示されない場合は、プロジェクトでシリアルポート ロギングが有効になっていることを確認してください。ワークステーション構成でサービス アカウントを指定した場合は、サービス アカウントが Cloud Logging にログを書き込むことができるように、プロジェクトに対する logging.logEntries.create 権限があることを確認してください。シリアルポート ロギングを有効にして必要な権限を追加した後にワークステーションを起動すると、Compute Engine VM 起動スクリプトが再度実行され、ログが生成されることを確認してください。
Compute Engine API のログを調べて、発生する可能性があるエラーを確認する
Stackdriver ログに次のフィルタを使用します。
protoPayload.serviceName="compute.googleapis.com"
severity>=ERROR
Compute Engine API エラーにより、ワークステーション VM の作成がブロックされている可能性があります。
プロジェクトでゲスト属性を有効にする
トラブルシューティング プロセスを支援するため、プロジェクトでゲスト属性を無効にしていないことを確認してください。Cloud Workstations は、これらの属性を使用して、ワークステーションの起動時に特定の問題を検出し、それらの問題をワークステーション構成の特定のデバッグ メッセージとして報告します。
断続的なバックエンド転送エラー
ワークステーションの起動時に「リクエストをバックエンドに転送できません」というエラーが断続的に表示される場合は、ワークステーションのウェブサーバーがまだ完全に起動していない可能性があります。
この問題を解決するには、ワークステーション構成にレディネス チェックを追加します。準備チェックにより、指定されたポートのサーバーがリクエストを受け入れる準備が整うまで、ワークステーションが起動したことを報告できなくなります。
停止したワークステーションをデバッグする
ワークステーションが予期せず停止した場合は、プラットフォーム ログまたはコンテナ出力ログを調べて原因を特定します。これらのログは、ワークステーションの起動エラー、突然のシャットダウン、一般的なエラーの特定に役立ちます。
CMEK を使用する場合のワークステーションの同時シャットダウン
すべてのワークステーションが一度にシャットダウンし、ワークステーション構成で顧客管理の暗号鍵(CMEK)を使用している場合は、CMEK に適切な権限が構成されていることを確認します。
具体的には、Compute Engine サービス エージェント(service-PROJECT_NUMBER@compute-system.)に、CMEK に対する Cloud Key Management Service CryptoKey の暗号化 / 復号(roles/cloudkms.cryptoKeyEncrypterDecrypter)ロールが付与されていることを確認します。Compute Engine サービス エージェントに鍵へのアクセスに必要な権限がない場合、Compute Engine は基盤となる VM を自動的にシャットダウンします。詳細については、CMEK を使用してワークステーション リソースを暗号化するをご覧ください。