本快速入門導覽課程說明如何使用 GDC 的 VM Runtime,在 Google Distributed Cloud 上建立虛擬機器 (VM)。GDC 的 VM Runtime 會使用 KubeVirt 協調叢集上的 VM,讓您在統一的開發環境中處理以 VM 為基礎的應用程式和工作負載。
事前準備
如要完成本快速入門導覽課程,您需要存取 Google Distributed Cloud 1.12 版 (anthosBareMetalVersion: 1.12
) 以上的叢集。您可以使用任何可執行工作負載的叢集類型。如有需要,請在 Compute Engine 上試用 Google Distributed Cloud,或參閱叢集建立總覽。
在 GDC 上啟用 VM Runtime
Google Distributed Cloud 1.10 以上版本會自動安裝 GDC 的 VM Runtime,但預設為停用。您必須先在 Google Distributed Cloud 上啟用 VM Runtime,才能執行 VM 資源。
bmctl
Google Distributed Cloud 1.11 以上版本可以使用 bmctl
指令列工具:
如要啟用執行階段,請使用
bmctl
工具:bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
提供叢集的 kubeconfig 檔案路徑。 建立叢集時,Google Distributed Cloud 會在管理工作站產生 kubeconfig 檔案。預設路徑為
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
。如果已啟用 VM Runtime on GDC,指令會傳回錯誤。
自訂資源
Google Distributed Cloud 1.10 以上版本可使用自訂資源定義,在 GDC 上啟用 VM Runtime。這項自訂資源預設會安裝。
編輯
VMRuntime
自訂資源:kubectl edit vmruntime
在規格中設定
enabled:true
:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true # useEmulation defaults to "false" if not set. useEmulation: true # vmImageFormat defaults to "qcow2" if not set. vmImageFormat: qcow2
在上述
spec
區段中,可以設定下列值:enabled
:設為 true,即可在 GDC 上啟用 VM 執行階段useEmulation
:如果節點不支援硬體虛擬化,或您不確定,請將值設為 true。如果可以,硬體虛擬化比軟體模擬效能更佳。如未指定,useEmulation
欄位預設為false
。vmImageFormat
:支援兩個磁碟映像檔格式值:raw
和qcow2
。如果未設定vmImageFormat
,GDC 上的 VM 執行階段會使用raw
磁碟映像檔格式建立 VM。raw
格式的效能可能優於qcow2
(寫入時複製格式),但可能會佔用更多磁碟空間。如要進一步瞭解 VM 的映像檔格式,請參閱 QEMU 說明文件中的「磁碟映像檔格式」。
在編輯器中儲存自訂資源。
確認已啟用
VMRuntime
自訂資源:kubectl describe vmruntime vmruntime
VMRuntime
自訂資源的詳細資料包括Status
區段。 當VMRuntime.Status.Ready
顯示為true
時,表示 GDC 的 VM Runtime 已啟用並正常運作。
安裝 virtctl
用戶端工具
如要建立及管理 VM,請安裝 virtctl 用戶端工具。
以
kubectl
外掛程式的形式安裝virtctl
用戶端工具:export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json" sudo -E bmctl install virtctl
您可以使用憑證驗證身分並下載
virtctl
用戶端工具,然後在本機電腦上安裝/usr/bin/kubectl-virt
。確認已安裝
virtctl
外掛程式:kubectl plugin list
如果回應中列出
kubectl-virt
,表示外掛程式已成功安裝。如果未列出
kubectl-virt
,請檢查install-virtctl.log
檔案,如先前bmctl install
指令的輸出內容所示,例如bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log
。
建立 VM
在本快速入門導覽課程中,您將使用 kubectl
CLI 建立 VM,該 VM 會使用公開 VM 映像檔和預設憑證。
在叢集中建立 VM。
virtctl
外掛程式會搭配kubectl
指令使用:kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --configure-initial-password USERNAME:PASSWORD
這個指令會建立 Ubuntu 20.04 VM,並使用 local-shared 儲存空間類別,以 ReadWriteOnce 模式預設配置 2 個 CPU、4Gi 記憶體和 20Gi 開機磁碟。替換下列值:
VM_NAME
:VM 名稱。VM 名稱只能包含小寫英數字元或「-」,開頭和結尾須為英數字元,且最多只能有 63 個字元。詳情請參閱 Kubernetes 說明文件中的 RFC 1123 標籤名稱。USERNAME
:要在 VM 上建立的帳戶使用者名稱。PASSWORD
:使用者帳戶的密碼。
如果收到有關 CLI 參數的錯誤訊息,請確認叢集版本為
1.11.1
以上,且您使用的是最新版virtctl
用戶端工具。如要進一步瞭解 CLI 錯誤,請參閱控制台記錄。如需使用者名稱和密碼規則,請參閱客體作業系統 (OS) 的說明文件。如有任何功能無法正常運作,請查看 GDC 已知問題中的 VM Runtime。建立 VM 可能需要幾分鐘的時間。使用
kubectl
指令檢查 VM 的狀態:kubectl get gvm
以下輸出範例顯示 VM 處於
Running
狀態:NAME STATUS AGE IP vm-sample1 Running 64s 192.168.2.124
連線至 VM
VM 執行時,請連線至 VM 的控制台。
如要從控制台存取 VM,請使用
kubectl
:kubectl virt console VM_NAME
系統顯示提示時,請輸入您在建立 VM 時指定的使用者憑證。
成功連線至 VM 的控制台後,請結束 VM 工作階段和控制台:
Ctrl + ]
清除所用資源
如要清除在本快速入門中建立的資源,請按照下列步驟操作。
如要刪除 VM 和相關聯的 DataVolume,請使用
kubectl
:kubectl virt delete vm VM_NAME --all
後續步驟
- 管理 Google Distributed Cloud 中 VM 的電源狀態。
- 在 Google Distributed Cloud 中編輯 VM。
- 在 Google Distributed Cloud 中查看 VM 控制台記錄。