快速入門導覽課程:在 Google Distributed Cloud 叢集中建立 VM

有了 GDC 的 VM 執行階段,您就能使用 KubeVirt,在 Google Distributed Cloud 的統一開發環境中執行及自動調度管理虛擬機器 (VM)。在本快速入門導覽課程中,您將使用 GDC 中的 VM 執行階段,在叢集上建立 VM。

事前準備

如要完成這項快速入門導覽課程,您必須具備 Google Distributed Cloud 1.12 版 (anthosBareMetalVersion: 1.12) 以上叢集的存取權。您可以使用任何能執行工作負載的叢集類型。如有需要,請在 Compute Engine 上試用 Google Distributed Cloud,或參閱叢集建立總覽。

啟用 GDC 的 VM 執行階段

GDC 的 VM 執行階段會自動安裝在 Google Distributed Cloud 1.10 以上版本,但預設為停用。您必須先在 GDC 啟用 VM Runtime,才能在 Google Distributed Cloud 執行 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。

    如果已啟用 GDC 中的 VM 執行階段,指令會傳回錯誤。

自訂資源

Google Distributed Cloud 1.10 以上版本可使用自訂資源定義,在 GDC 啟用 VM 執行階段。這項自訂資源預設會安裝。

  1. 編輯 VMRuntime 自訂資源:

    kubectl edit vmruntime
    
  2. 在規格中設定 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 說明文件中的「磁碟映像檔格式」一節。
  3. 在編輯器中儲存自訂資源。

  4. 確認已啟用 VMRuntime 自訂資源:

    kubectl describe vmruntime vmruntime
    

    VMRuntime 自訂資源的詳細資料包含 Status 區段。當 VMRuntime.Status.Ready 顯示為 true 時,表示 GDC 的 VM 執行階段已啟用並正常運作。

安裝 virtctl 用戶端工具

如要建立及管理 VM,請安裝 virtctl 用戶端工具。

  1. 將 virtctl 用戶端工具安裝為 kubectl 外掛程式:

    export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json"
    sudo -E bmctl install virtctl
    

    您可以使用憑證進行驗證並下載 virtctl 用戶端工具,然後在本機電腦上安裝 /usr/bin/kubectl-virt。

  2. 確認已安裝 virtctl 外掛程式:

    kubectl plugin list
    

    如果回應中列出 kubectl-virt,表示外掛程式已成功安裝。

    如果未列出 kubectl-virt,請檢查上一個 bmctl install 指令輸出內容中註明的 install-virtctl.log 檔案,例如 bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log。

建立 VM

在本快速入門導覽課程中,您將使用 kubectl CLI 建立 VM,並使用公開 VM 映像檔和預設憑證。

  1. 在叢集中建立 VM。virtctl 外掛程式會與 kubectl 指令搭配使用:

    kubectl virt create vm VM_NAME \
        --image ubuntu20.04 \
        --configure-initial-password USERNAME:PASSWORD
    

    這個指令會建立 Ubuntu 20.04 VM,並使用 local-shared 儲存空間類別,預設為 2 個 CPU、4Gi 記憶體,以及 ReadWriteOnce 模式的 20Gi 開機磁碟。替換下列值:

    • VM_NAME:VM 名稱。VM 名稱只能使用小寫英數字元或「-」,開頭和結尾須為英數字元,且長度不得超過 63 個字元。詳情請參閱 Kubernetes 說明文件中的 RFC 1123 標籤名稱。
    • USERNAME:要在 VM 上建立的帳戶使用者名稱。
    • PASSWORD:使用者帳戶的密碼。

    如果收到 CLI 參數相關錯誤,請確認叢集版本為 1.11.1 以上,且您使用的是最新版本 virtctl 用戶端工具。如要進一步瞭解 CLI 錯誤,請參閱控制台記錄。如要瞭解使用者名稱和密碼規則,請參閱訪客作業系統 (OS) 的說明文件。如果發生非預期的問題,請查看 VM Runtime on GDC 已知問題。

  2. VM 應該會在幾分鐘內建立完畢。使用 kubectl 指令檢查 VM 狀態:

    kubectl get gvm
    

    下列輸出範例顯示 VM 處於 Running 狀態:

    NAME         STATUS    AGE   IP
    vm-sample1   Running   64s   192.168.2.124
    

連線至 VM

VM 執行後,連線至 VM 的控制台。

  1. 如要從控制台存取 VM,請使用 kubectl:

    kubectl virt console VM_NAME
    
  2. 系統顯示提示時,請輸入您在建立 VM 時指定的使用者憑證。

  3. 成功連線至 VM 控制台後,請退出 VM 工作階段和控制台:

    Ctrl + ]
    

清除所用資源

如要清除在本快速入門導覽課程中建立的資源,請按照下列步驟操作。

  1. 如要刪除 VM 和相關聯的 DataVolume,請使用 kubectl:

    kubectl virt delete vm VM_NAME --all
    

後續步驟