VM 執行個體在生命週期中,可能會經歷許多狀態。建立 VM 時,Google Distributed Cloud (GDC) 實體隔離設備會佈建資源來啟動 VM。接著,VM 會進入啟動狀態,準備初次啟動。啟動期間和啟動後,系統會將 VM 視為正在執行。在整個運作生命週期中,執行中的 VM 可以多次停止及重新啟動,或暫停及繼續。
VM 狀態定義
| 狀態 | 定義 | 
|---|---|
| Pending | 系統已接受 VM,正在等待分配。 | 
| Provisioning | 系統正在佈建及準備與 VM 相關聯的資源,例如 VirtualMachineDisk。 | 
| Starting | 正在準備執行 VM。 | 
| Running | VM 正在執行。 | 
| Stopping | VM 正在停止。 | 
| Stopped | VM 已停止,且預計不會啟動。 | 
| Paused | VM 會暫停並處於凍結狀態,且會保留該狀態。無法存取 VM。 | 
| Terminating | 系統正在刪除 VM 和相關資源。 | 
| ErrorConfiguration | 虛擬機發生設定錯誤。無效的設定狀態可能由下列原因造成: | 
| MachineTypeNotFound- 系統找不到 VM 參照的 VM 類型,或該類型正在刪除中。 | |
| MachineDiskMisconfig- VM 磁碟設定有誤。 | |
| InterfaceCreationFailed- 無法建立網路介面。 | |
| CrashLoopBackOff | VM 目前處於當機迴圈,等待重試。 | 
| PendingIPAllocation | VM 正在等待系統指派 IP 位址。 | 
| Unknown | 無法取得 VM 狀態,通常是因為與 VM 執行的主機通訊時發生錯誤。 | 
| ErrorUnschedulable | 排定 VM 時發生錯誤,例如資源要求或排程限制無法滿足或支援。 | 
| DiskError | 虛擬機的其中一或多個附加磁碟發生錯誤。 | 
| WaitingForDisk | VM 正在等待一或多個附加的 VirtualMachineDisk準備就緒。 | 
| CrashLoopBackoff | VM 持續異常終止。 | 
事前準備
如要使用 gdcloud 指令列介面 (CLI) 指令,請務必下載、安裝及設定 gdcloud CLI。GDC 氣隙裝置的所有指令都使用 gdcloud 或 kubectl CLI,且需要作業系統 (OS) 環境。
取得 kubeconfig 檔案路徑
如要對 Management API 伺服器執行指令,請確認您具備下列資源:
- 找出 Management API 伺服器名稱,或詢問平台管理員 (PA) 伺服器名稱。 
- 登入並產生 Management API 伺服器的 kubeconfig 檔案 (如果沒有)。 
- 請使用路徑取代這些操作說明中的 - MANAGEMENT_API_SERVER{"</var>"}}。
要求權限和存取權
如要執行本頁列出的工作,您必須具備專案虛擬機器管理員角色。請按照步驟驗證,或請專案 IAM 管理員在 VM 所在的專案命名空間中指派專案 VirtualMachine 管理員 (project-vm-admin) 角色給您。
如要使用 GDC 控制台或 gdcloud CLI 執行 VM 作業,請要求專案 IAM 管理員同時指派專案 VirtualMachine 管理員角色和專案檢視者 (project-viewer) 角色。
檢查 VM 狀態
每個 VM 都會將其狀態做為 VM 屬性的一部分回報。基於下列任一原因檢查 VM 狀態:
- 如果 VM 發生問題。
- 確認 VM 啟動後是否正在執行。
- 確認 VM 處於 Paused或Stopped狀態。
列出 VM 以檢查狀態
以下程序說明如何列出 VM、查看 VM 狀態,以及取得其他狀態資訊。
- 列出所有 VM,並查看每個 VM 的狀態: - kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachines.virtualmachine.gdc.goog -n PROJECT- 請根據下表,將程式碼範例中的變數替換成自己的值。 - 變數 - 定義 - MANAGEMENT_API_SERVER- 管理 API 伺服器 - kubeconfig檔案。- PROJECT- VM 所在的 GDC 專案。 - 輸出內容範例: - NAME STATUS AGE vm-1 Running 1d vm-2 Stopped 8d vm-3 ErrorConfiguration 1d
- 如要取得特定 VM 狀態的詳細資料,請按照下列步驟操作: - kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT -o \ jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'- 更改下列內容: - MANAGEMENT_API_SERVER,並使用從- gdcloud auth login指令取得的管理 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,請參閱下列頁面: