本文說明如何在 Google Distributed Cloud (GDC) 實體隔離環境中,啟動、停止及重新啟動虛擬機器 (VM) 執行個體。
您可以停止、啟動及重新啟動 VM,以支援應用程式的生命週期。例如,您可能想變更指派的虛擬中央處理器 (vCPU) 數量,或分配給 VM 的記憶體配置。您必須先停止 VM,才能編輯設定。完成後,您必須重新啟動電源狀態,才能套用變更。
本文適用於平台管理員或應用程式操作員群組中的開發人員,他們需要在 Distributed Cloud 環境中啟動、停止及重新啟動 VM 執行個體。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
如要使用 gdcloud 指令列介面 (CLI) 指令,請務必下載、安裝及設定 gdcloud CLI。Distributed Cloud 的所有指令都使用 gdcloud 或 kubectl CLI,且需要作業系統 (OS) 環境。
取得 kubeconfig 檔案路徑
如要對 Management API 伺服器執行指令,請確認您具備下列資源:
如果您沒有 Management API 伺服器的 kubeconfig 檔案,請登入並產生該檔案。
請使用 Management API 伺服器的 kubeconfig 檔案路徑,取代這些操作說明中的
MANAGEMENT_API_SERVER。
如要盡可能縮短 VM 啟動時間,請先按照「盡可能縮短 VM 啟動時間 」一節的指示操作,再啟動 VM。
要求 IAM 角色
請與 IAM 專案管理員聯絡,要求在專案中取得下列角色:
虛擬機器專案管理員 (
project-vm-admin):建立、修改、列出及刪除專案命名空間中的 VM。專案檢視者(
project-viewer):查看專案命名空間中的所有資源。
所有 VM 角色都必須繫結至 VM 所在專案的命名空間。按照步驟驗證存取權。
停止 VM
停止虛擬機器 (VM) 時,管理程序會取消分配與執行個體相關聯的所有資源。VM 已關機。
使用 GDC 控制台或 kubectl 停止執行中的 VM。
控制台
在導覽選單中,依序點選「虛擬機器」>「執行個體」。
在 VM 清單中,找出要停止的執行中 VM,然後勾選對應的核取方塊。
按一下「停止」。
在確認對話方塊中,點按「停止」。
gdcloud
如要停止 VM:
gdcloud compute instances stop VM_NAME \
--project PROJECT
- 將
VM_NAME替換為 VM 名稱。 - 將
PROJECT替換為 VM 所在的 GDC 專案名稱。
kubectl
執行下列指令:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME在 VM 的
spec中尋找runningState欄位,並將欄位值變更為Stopped。如果runningState不在spec中,請將runningState新增至spec,並將值設為Stopped。spec: runningState: Stopped驗證 VM 的狀態:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME請參閱上述變數的定義。
變數 定義 MANAGEMENT_API_SERVER_KUBECONFIGManagement API 伺服器 kubeconfig 檔案。 VM_NAMEVM 的名稱。 PROJECTVM 的專案名稱。
啟動 VM
使用控制台或 kubectl,啟動處於停止狀態的 VM。
控制台
在導覽選單中,依序點選「虛擬機器」>「執行個體」。
在 VM 清單中,找出要啟動的已停止 VM,然後勾選對應的核取方塊。
按一下「啟動」。
在確認對話方塊中,點選「啟動」。
gdcloud
如要啟動 VM,請按照下列步驟操作:
gdcloud compute instances start VM_NAME --project PROJECT
- 將
VM_NAME替換為 VM 名稱。 - 將
PROJECT替換為 VM 所在的 GDC 專案名稱。
kubectl
執行下列指令:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME在 VM 的
spec中尋找runningState欄位,並將欄位值變更為Running。spec: runningState: Running驗證 VM 狀態:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME請使用這些變數定義,填入範例程式碼。
變數 定義 MANAGEMENT_API_SERVER_KUBECONFIGManagement API 伺服器 kubeconfig 檔案。 MANAGEMENT_API_SERVER_NAMEManagement API 伺服器的名稱。 VM_NAMEVM 的名稱。 PROJECTVM 的專案名稱。
重新啟動 VM
重新啟動 VM 時,機器會重設為初始狀態,並抹除記憶體內容。
使用控制台或 kubectl 重新啟動執行中的 VM。
控制台
在導覽選單中,依序點選「虛擬機器」>「執行個體」。
在 VM 清單中,找出要重新啟動的執行中 VM,然後勾選對應的核取方塊。
按一下「重設」。
在確認對話方塊中,點選「重設」。
gdcloud
如要重設 VM,請按照下列步驟操作:
gdcloud compute instances reset VM_NAME --project PROJECT
- 將
VM_NAME替換為 VM 名稱。 - 將
PROJECT替換為 VM 所在的 GDC 專案名稱。
kubectl
啟動 Management API 伺服器的本機 Proxy:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG proxy --port=8001 & PROXY_PID=$!將
MANAGEMENT_API_SERVER_KUBECONFIG替換為 Management API 伺服器 kubeconfig 檔案。透過 Proxy 傳送 API 要求,重新啟動 VM:
curl -s -i -X PUT \ http://127.0.0.1:8001/apis/virtualmachineoperations.gdc.goog/v1/namespaces/PROJECT/virtualmachines/VM_NAME/restart | head -n 1- 將 VM_NAME 替換為 VM 名稱。
- 將 PROJECT 替換為 VM 所在的 GDC 專案名稱。
成功的要求會傳回
HTTP/1.1 202 Accepted。停止 Proxy:
kill $PROXY_PID驗證 VM 狀態:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME