このドキュメントでは、Google Distributed Cloud(GDC)エアギャップで仮想マシン(VM)インスタンスのライフサイクル全体にわたってシステム ステータスを確認する方法について説明します。
VM インスタンスは、そのライフサイクルの間に多くの状態に遷移します。VM を作成すると、VM を起動するためのリソースが Distributed Cloud によってプロビジョニングされます。次に、VM は開始状態に移行し、初回の起動に向けて準備が行われます。その後、起動して実行中とみなされます。実行中の VM は、ライフサイクル中に停止と再起動、一時停止と再開を繰り返すことがあります。
このドキュメントは、Distributed Cloud 環境で VM インスタンスのシステム ステータスを確認するプラットフォーム管理者グループまたはアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象読者をご覧ください。
VM ステータスの定義
| 状態 | 定義 |
|---|---|
Pending |
VM はシステムによって承認され、割り当てを待機しています。 |
Provisioning
|
VM に関連付けられたリソース(VirtualMachineDisk など)がプロビジョニングされ、準備されています。 |
Starting |
VM の実行準備が行われています。 |
Running |
VM が実行中である。 |
Stopping |
VM が停止中です。 |
Stopped |
VM が停止しており、起動する予定がない。 |
Paused
|
VM は一時停止され、フリーズ状態になります。この状態は保持されます。VM にアクセスできない。 |
Terminating
|
VM とそれに関連付けられたリソースが削除処理中です。 |
ErrorConfiguration
|
VM に構成エラーがあります。無効な構成状態は、次の原因で発生する可能性があります。 |
MachineTypeNotFound - VM が参照する VM タイプが見つからないか、削除されています。 |
|
MachineDiskMisconfig - VM ディスクが正しく構成されていません。 |
|
InterfaceCreationFailed - ネットワーク インターフェースを作成できませんでした。 |
|
CrashLoopBackOff |
VM がクラッシュ ループにあり、再試行を待機しています。 |
PendingIPAllocation |
VM は、システムが IP アドレスを割り当てるのを待機しています。 |
Unknown
|
VM の状態を取得できませんでした。通常、VM が実行されているホストとの通信エラーが原因です。 |
ErrorUnschedulable
|
VM のスケジューリング中にエラーが発生しました。たとえば、リソース リクエストやスケジューリング制約が満たされていないか、サポートされていないことが原因です。 |
DiskError |
VM にアタッチされた 1 つ以上のディスクでエラーが発生しています。 |
WaitingForDisk |
VM は、アタッチされた 1 つ以上の VirtualMachineDisk の準備が完了するのを待機しています。 |
CrashLoopBackoff |
VM がなんらかの理由で一貫してクラッシュしている。 |
始める前に
gdcloud コマンドライン インターフェース(CLI)コマンドを使用するには、gdcloud CLI をダウンロード、インストール、構成していることを確認してください。Distributed Cloud のすべてのコマンドは gdcloud または kubectl CLI を使用し、オペレーティング システム(OS)環境を必要とします。
kubeconfig ファイルのパスを取得する
Management API サーバーに対してコマンドを実行するには、次のリソースが必要です。
Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。
これらの手順では、
MANAGEMENT_API_SERVERを Management API サーバーの kubeconfig ファイルのパスに置き換えます。
IAM ロールをリクエストする
IAM プロジェクト管理者に連絡して、プロジェクトに対する次のロールをリクエストしてください。
仮想マシン プロジェクト管理者(
project-vm-admin): プロジェクトの名前空間で VM を作成、変更、一覧表示、削除します。プロジェクト閲覧者(
project-viewer): プロジェクトの名前空間内のすべてのリソースを表示します。
すべての VM ロールは、VM が存在するプロジェクトの Namespace にバインドする必要があります。手順に沿ってアクセス権を確認します。
VM のステータスを確認する
各 VM は、そのステータスを VM のプロパティの一部として報告します。次のいずれかの理由で VM のステータスを確認します。
- VM に問題がある場合。
- 起動後に VM が実行されていることを確認する。
- VM が
Paused状態またはStopped状態であることを確認します。
VM を一覧表示してステータスを確認する
次の手順では、VM を一覧表示し、そのステータスを表示して、追加のステータス情報を取得する方法を示します。
すべての VM を一覧表示し、それぞれのステータスを確認します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog次の表に従って、コード例の変数を独自の値に置き換えます。
変数 定義 MANAGEMENT_API_SERVERManagement API サーバーの kubeconfig ファイル。 PROJECTVM が存在する GDC プロジェクト。 出力例:
NAME STATUS AGE vm-1 Running 1d vm-2 Stopped 8d vm-3 ErrorConfiguration 1d特定の VM のステータスに関する詳細情報を取得します。
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -o jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'次のように置き換えます。
MANAGEMENT_API_SERVERは、gdcloud auth loginコマンドから取得した Management API サーバーの kubeconfig ファイルに置き換えます。VM_NAMEは、新しい VM の名前に置き換えます。PROJECTは、VM が存在する GDC プロジェクトに置き換えます。
ReasonとMessageの値を示す出力例:State: ErrorConfiguration Reason: MachineDiskNotFound Message: VirtualMachineDisk disk-1 in namespace project-1 does not exist.ReasonとMessageのフィールドが空になることもあります。これは、システムが報告する内容がなかったことを示しています。ReasonとMessageが空の場合の出力例:State: Running Reason: Message:
VM を停止または再起動する
VM のライフサイクル中に、ステータスの変更に対応するため、または VM を一般的に管理するために、VM を停止して再起動するか、VM を削除する必要がある場合があります。VM を停止、リセット、削除するには、次のページをご覧ください。