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

本快速入門導覽課程說明如何使用 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。這項自訂資源預設會安裝。

  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:支援兩個磁碟映像檔格式值:rawqcow2。如果未設定 vmImageFormat,GDC 上的 VM 執行階段會使用 raw 磁碟映像檔格式建立 VM。raw 格式的效能可能優於 qcow2 (寫入時複製格式),但可能會佔用更多磁碟空間。如要進一步瞭解 VM 的映像檔格式,請參閱 QEMU 說明文件中的「磁碟映像檔格式」。
  3. 在編輯器中儲存自訂資源。

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

    kubectl describe vmruntime vmruntime
    

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

安裝 virtctl 用戶端工具

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

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

    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,請檢查 install-virtctl.log 檔案,如先前 bmctl install 指令的輸出內容所示,例如 bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log

建立 VM

在本快速入門導覽課程中,您將使用 kubectl CLI 建立 VM,該 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 儲存空間類別,以 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

  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
    

後續步驟