管理虛擬機器

本頁說明如何管理 Google Distributed Cloud 上執行的虛擬機器,這些機器執行的是 Google Distributed Cloud 的 VM Runtime。完成本頁的步驟前,請務必先熟悉 GDC 上的 VM 執行階段。如需支援的客層作業系統清單,請參閱 GDC 上 VM 執行階段的已驗證客層作業系統

如要瞭解虛擬機器如何做為 Distributed Cloud 平台的重要元件,請參閱「將 GKE Enterprise 擴充至內部部署邊緣 VM,以便進行管理」。

本機控制層叢集支援虛擬機器 Webhook。Distributed Cloud 即可藉此驗證向本機 Kubernetes API 伺服器發出的使用者要求。遭拒的要求會產生詳細資訊,說明遭拒原因。

在 Distributed Cloud 上啟用 GDC 支援的 VM Runtime

根據預設,Distributed Cloud 會停用 GDC 虛擬機器的 VM Runtime 支援功能。如要啟用這項功能,請完成本節中的步驟。本節的操作說明假設您已具備功能完整的 Distributed Cloud 叢集。

VMRuntime 資源會在 Distributed Cloud 上設定 GDC 支援的 VM 執行階段,並使用 enableGPU 參數在叢集上設定 GPU 支援。請務必根據工作負載需求設定這兩個參數。如要在 Distributed Cloud 叢集上啟用 GDC 支援的 VM Runtime,需要啟用 GPU 支援。

下表說明可用的設定:

enable enableGPU 產生的設定
false false 工作負載只能在容器中執行,且無法使用 GPU 資源。
false true 工作負載只會在容器中執行,且可使用 GPU 資源。
true true 工作負載可在虛擬機器和容器中執行。
這兩種工作負載都可以使用 GPU 資源。
true false 工作負載可在虛擬機器和容器中執行。
這兩種工作負載都無法使用 GPU 資源。

如果您已啟用 GPU 支援,請修改 VMRuntime 資源,加入 enable 參數,將其值設為 true,然後套用至 Distributed Cloud 叢集。

在 GDC 虛擬機器子系統上啟用 VM Runtime

視要啟用 VM Runtime on GDC 虛擬機器子系統的叢集類型而定,請執行下列其中一項操作:

  • 如果是 Cloud 控制層叢集,您必須手動建立 VMRuntime 資源。
  • 如果是本機控制層叢集,您必須編輯現有的 VMRuntime 資源。

如要在 GDC 虛擬機器子系統上啟用 VM Runtime,請完成下列步驟:

  1. 視目標叢集類型而定,建立或修改 VMRuntime 自訂資源,內容如下,並將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      # Enable Anthos VM Runtime support
      enabled: true
      # vmImageFormat defaults to "raw" if not set
      vmImageFormat: "raw"

    請勿變更 vmImageFormat 參數的值。 Distributed Cloud 不支援任何其他虛擬磁碟格式。

    這項程序通常需要幾分鐘才能完成。

  2. 使用下列指令,確認 VMRuntime 自訂資源已套用至叢集:

    kubectl get vmruntime -o yaml

    指令會傳回類似以下範例的輸出內容:

     - apiVersion: vm.cluster.gke.io/v1
       kind: VMRuntime
       metadata:
         name: vmruntime
         ...
       spec:
         enabled: true
         vmImageFormat: raw
       status:
         ...
       ready: true
         ...
    
  3. 使用下列指令,確認叢集已啟用 GDC 虛擬機器支援的 VM Runtime:

    kubectl get pods -n vm-system

    指令會傳回輸出內容,顯示叢集上執行的 GDC 子系統 Pod 的 VM 執行階段,類似以下範例:

    NAME                                                READY   STATUS         RESTARTS        AGE
    cdi-apiserver-6c76c6cf7b-n68wn                      1/1     Running        0               132m
    cdi-deployment-f78fd599-vj7tv                       1/1     Running        0               132m
    cdi-operator-65c4df9647-fcb9d                       1/1     Running        0               134m
    cdi-uploadproxy-7765ffb694-6j7bf                    1/1     Running        0               132m
    macvtap-fjfjr                                       1/1     Running        0               134m
    virt-api-77dd99dbbb-bs2fb                           1/1     Running        0               132m
    virt-api-77dd99dbbb-pqc27                           1/1     Running        0               132m
    virt-controller-5b44dbbbd7-hc222                    1/1     Running        0               132m
    virt-controller-5b44dbbbd7-p8xkk                    1/1     Running        0               132m
    virt-handler-n76fs                                  1/1     Running        0               132m
    virt-operator-86565697d9-fpxqh                      2/2     Running        0               134m
    virt-operator-86565697d9-jnbt7                      2/2     Running        0               134m
    vm-controller-controller-manager-7844d5fb7b-72d8m   2/2     Running        0               134m
    vmruntime-controller-manager-845649c847-m78r9       2/2     Running        0               175m
    

授予目標命名空間 Distributed Cloud 登錄檔的存取權

本節中的步驟僅適用於 Cloud 控制層叢集。如果您要在本機控制層叢集上設定 GDC 虛擬機器子系統的 VM Runtime,請略過本節。

如要在命名空間中建立虛擬機器,必須先授予該命名空間 Distributed Cloud 登錄的存取權。登錄檔會保留在目標命名空間中建立及部署虛擬機器所需的元件。請注意,您無法在為 Distributed Cloud 系統管理保留的命名空間中執行虛擬機器。詳情請參閱「管理命名空間限制」。

請完成下列步驟,授予目標命名空間 Distributed Cloud 登錄檔的存取權:

  1. 使用名為 gcr-pull 的金鑰,修補目標命名空間中的預設服務帳戶:imagePullSecret

    kubectl patch sa default -p "{\"imagePullSecrets\": [{\"name\": \"gcr-pull\"}]}" -n NAMESPACE

    NAMESPACE 替換為目標命名空間的名稱。

  2. 在目標命名空間中重新整理相關聯的密鑰:

    # Delete existing secret.
    kubectl delete secret gcr-pull -n NAMESPACE --ignore-not-found
    # Copy the new secret to the target namespace.
    kubectl get secret gcr-pull -n vm-system -o yaml | sed "s/namespace: vm-system/namespace: NAMESPACE/g" | kubectl apply -f -

    NAMESPACE 替換為目標命名空間的名稱。

    密鑰會在 1 小時後失效。過期後必須手動重新整理。

安裝 virtctl 管理工具

您需要 virtctl 用戶端工具,才能管理 Distributed Cloud Cluster 上的虛擬機器。如要安裝這項工具,請完成下列步驟:

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

    export VERSION=v0.49.0-anthos1.12-gke.7
    gcloud storage cp gs://anthos-baremetal-release/virtctl/${VERSION}/linux-amd64/virtctl /usr/local/bin/virtctl
    cd /usr/local/bin
    sudo ln -s virtctl kubectl-virt
    sudo chmod a+x virtctl
    cd -
  2. 確認已安裝 virt 外掛程式:

    kubectl plugin list

    如果外掛程式安裝成功,指令輸出內容會將 kubectl-virt 列為外掛程式之一。

在 Distributed Cloud 上佈建虛擬機器,並使用原始區塊儲存空間

本節提供設定範例,說明如何使用原始區塊儲存空間,在 Distributed Cloud 叢集上佈建 Linux 虛擬機器和 Windows 虛擬機器。這些範例使用以 PersistentVolume 例項化的區塊儲存空間。

使用原始區塊儲存空間的限制

在 Distributed Cloud 上使用原始區塊儲存空間執行虛擬機器時,適用下列限制:

  • Cloud 控制層叢集上的 VirtualMachine 資源規格不支援 OSType 欄位。因此,只有 consolevnc 方法支援存取在 Cloud 控制層叢集上執行的虛擬機器。
  • 您無法直接使用 kubectl virt 指令在 Distributed Cloud 叢集上建立虛擬機器,因為 Distributed Cloud 不會為虛擬機器提供檔案系統儲存空間。
  • 區塊儲存空間 PersistenVolumeClaim 資源不支援 qcow2 磁碟映像檔格式。
  • Containerized Data Importer (CDI) 外掛程式不支援區塊儲存空間的 DataVolume 資源,因為外掛程式的暫存空間只能在檔案系統儲存空間運作。詳情請參閱「暫存空間」。

在 Distributed Cloud 上佈建具有原始區塊儲存空間的 Linux 虛擬機器

以下範例說明如何佈建 Linux 虛擬機器,並使用執行 Ubuntu Server 22.04 的原始區塊儲存空間。安裝來源是 Ubuntu Server 22.04 ISO 磁碟映像檔。

  1. 使用下列內容建立 Ubuntu Server 安裝光碟映像檔的 PersistentVolumeClaim 資源,然後將其套用至叢集:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app: containerized-data-importer
      name: iso-ubuntu
      annotations:
        cdi.kubevirt.io/storage.import.endpoint: "https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso"
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: local-block
      volumeMode: Block
      resources:
        requests:
          storage: 5Gi
  2. 為虛擬機器的虛擬硬碟建立 PersistentVolumeClaim 資源,內容如下,然後將其套用至叢集:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: ubuntuhd
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 15Gi
      storageClassName: local-block
      volumeMode: Block
  3. 使用下列內容建立 Ubuntu Server 安裝光碟映像檔的 VirtualMachineDisk 資源,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "ubuntu-iso-disk"
    spec:
      persistentVolumeClaimName: iso-ubuntu
      diskType: cdrom
  4. 為虛擬機器的虛擬硬碟建立 VirtualMachineDisk 資源,內容如下,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "ubuntu-main-disk"
    spec:
      persistentVolumeClaimName: ubuntuhd
  5. 建立 VirtualMachineType 資源,其中包含指定虛擬機器設定的下列內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  6. 建立 VirtualMachine 資源,其中包含在叢集上例項化及啟動虛擬機器的內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      labels:
        kubevirt.io/vm: ubu-vm
      name: ubu-vm #  Propagate the virtual machine name to the VMI
    spec:
      osType: Linux
      compute:
        virtualMachineTypeName: small-2-20
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: ubuntu-main-disk
          boot: true
        - virtualMachineDiskName: ubuntu-iso-disk

    osType 欄位僅適用於本機控制層叢集。在本地控制層叢集上,必須啟用此功能才能設定下列功能:

  7. 在虛擬機器上安裝 Ubuntu Server:

    1. 等待 importer Pod 下載 Ubuntu Server 安裝光碟映像檔。
    2. 檢查虛擬機器的狀態:

      kubectl get gvm VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    3. 登入虛擬機器:

      kubectl virt vnc VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    4. 完成 Ubuntu Linux 安裝步驟。

  8. 清除所用資源:

    1. 停止虛擬機器:

      kubectl virt stop VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    2. 編輯虛擬機器的 YAML 檔案,移除安裝光碟映像檔的參照:

      kubectl edit gvm VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    3. 啟動虛擬機器:

      kubectl virt start VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    4. 刪除安裝磁碟映像檔的 VirtualMachineDiskPersistentVolumeClaim 資源:

      kubectl delete virtualmachinedisk ubuntu-iso-disk
      kubectl delete pvc iso-ubuntu

在 Distributed Cloud 上佈建具有原始區塊儲存空間的 Windows 虛擬機器

以下範例說明如何使用原始區塊儲存空間佈建 Windows 虛擬機器。步驟與佈建 Linux 虛擬機器類似,但需要額外新增 virtio 驅動程式磁碟映像檔,這是安裝 Windows 的必要條件。

  1. 取得 Windows 授權副本和安裝媒體映像檔。

  2. 為 Windows 安裝光碟映像檔建立 PersistentVolumeClaim 資源,內容如下,然後將其套用至叢集。如需操作說明,請參閱「從圖片」一節。

  3. virtio 驅動程式建立 PersistentVolumeClaim 資源,並加入以下內容,然後將其套用至叢集:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app: containerized-data-importer
      name: virtio-driver
      annotations:
        cdi.kubevirt.io/storage.import.endpoint: "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso"
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: local-block
      volumeMode: Block
      resources:
        requests:
          storage: 1Gi
  4. 為虛擬機器的虛擬硬碟建立 PersistentVolumeClaim 資源,內容如下,然後將其套用至叢集:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: windowshd
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 15Gi
      storageClassName: local-block
      volumeMode: Block
  5. 為 Windows 安裝光碟映像檔建立 VirtualMachineDisk 資源,其中包含下列內容,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "windows-iso-disk"
    spec:
      persistentVolumeClaimName: iso-windows
      diskType: cdrom
  6. virtio 驅動程式建立 VirtualMachineDisk 資源,並加入以下內容,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "win-virtio-driver"
    spec:
      persistentVolumeClaimName: virtio-driver
      diskType: cdrom
  7. 為虛擬機器的虛擬硬碟建立 VirtualMachineDisk 資源,內容如下,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "windows-main-disk"
    spec:
      persistentVolumeClaimName: windowshd
  8. 建立 VirtualMachineType 資源,其中包含指定虛擬機器設定的下列內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  9. 建立 VirtualMachine 資源,其中包含在叢集上例項化及啟動虛擬機器的內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      labels:
        kubevirt.io/vm: win-vm
      name: win-vm #  Propagate the virtual machine name to the VMI
    spec:
      osType: Windows
      compute:
        virtualMachineTypeName: my-vmt
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: windows-main-disk
          boot: true
        - virtualMachineDiskName: windows-iso-disk
        - virtualMachineDiskName: win-virtio-driver

    osType 欄位僅適用於本機控制層叢集。在本地控制層叢集上,必須啟用此功能才能設定下列功能:

  10. 在虛擬機器上安裝 Windows:

    1. 等待 importer Pod 下載 Windows 安裝光碟映像檔。
    2. 檢查虛擬機器的狀態:

      kubectl get gvm VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 win-vm

    3. 按照「連線至 Windows VM 並完成 OS 安裝程序」中的步驟,完成 Windows 安裝程序。

  11. 清除所用資源:

    1. 停止虛擬機器:

      kubectl virt stop VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 win-vm

    2. 完成「卸載 ISO 映像檔和驅動程式磁碟」中的步驟。

在 Distributed Cloud 上佈建虛擬機器,並使用 Symcloud Storage

本節提供設定範例,說明如何使用 Symcloud Storage 抽象層,在 Distributed Cloud 叢集上佈建 Linux 虛擬機器和 Windows 虛擬機器。

完成本節中的步驟之前,請先完成「為 Symcloud Storage 設定 Distributed Cloud」中的步驟。如果之後停用叢集上的 Symcloud Storage,設定為使用 Symcloud Storage 的虛擬機器就會失敗。

在 Distributed Cloud 上使用 Symcloud Storage 佈建 Linux 虛擬機器

以下範例說明如何佈建 Linux 虛擬機器,並在 Ubuntu Server 22.04 上執行 Symcloud Storage。安裝來源是 Ubuntu Server 22.04 ISO 磁碟映像檔。

  1. 使用下列內容建立 Ubuntu Server 安裝光碟映像檔的 VirtualMachineDisk 資源,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: ubuntu-iso-disk
    spec:
      size: 20Gi
      storageClassName: robin
      diskType: cdrom
      source:
        http:
          url: https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso
  2. 為虛擬機器的虛擬硬碟建立 VirtualMachineDisk 資源,內容如下,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "ubuntu-main-disk"
    spec:
      size: 200Gi
      storageClassName: robin
  3. 建立 VirtualMachineType 資源,其中包含指定虛擬機器設定的下列內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  4. 建立 VirtualMachine 資源,其中包含在叢集上例項化及啟動虛擬機器的內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      labels:
        kubevirt.io/vm: ubu-vm
      name: ubu-vm #  Propagate the virtual machine name to the VMI
    spec:
      osType: Linux
      compute:
        virtualMachineTypeName: small-2-20
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: ubuntu-main-disk
          boot: true
        - virtualMachineDiskName: ubuntu-iso-disk

    osType 欄位僅適用於本機控制層叢集。在本地控制層叢集上,必須啟用此功能才能設定下列功能:

  5. 在虛擬機器上安裝 Ubuntu Server:

    1. 等待 importer Pod 下載 Ubuntu Server 安裝光碟映像檔。
    2. 檢查虛擬機器的狀態:

      kubectl get gvm VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    3. 登入虛擬機器:

      kubectl virt vnc VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    4. 完成 Ubuntu Linux 安裝步驟。

  6. 清除所用資源:

    1. 停止虛擬機器:

      kubectl virt stop VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    2. 編輯虛擬機器的 YAML 檔案,移除安裝光碟映像檔的參照:

      kubectl edit gvm VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    3. 啟動虛擬機器:

      kubectl virt start VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 ubu-vm

    4. 刪除安裝光碟映像檔的 VirtualMachineDisk 資源:

      kubectl delete virtualmachinedisk ubuntu-iso-disk

在 Distributed Cloud 上佈建 Windows 虛擬機器,並搭配使用 Symcloud Storage

以下範例說明如何使用 Symcloud Storage 佈建 Windows 虛擬機器。步驟與佈建 Linux 虛擬機器類似,但需要額外新增 virtio 驅動程式磁碟映像檔,這是安裝 Windows 的必要條件。

  1. 取得 Windows 授權副本和安裝媒體映像檔。

  2. 為 Windows 安裝光碟映像檔建立 VirtualMachineDisk 資源,其中包含下列內容,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: windows-iso-disk
      namespace: default
    spec:
      size: 5Gi
      storageClassName: robin
      diskType: cdrom
      source:
        http:
          url: WINDOWS_ISO_URL

    NAT_GATEWAY 替換為目標 Windows 安裝 ISO 磁碟映像檔的完整網址。

  3. virtio 驅動程式建立 VirtualMachineDisk 資源,並加入以下內容,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: windows-virtio-driver
      namespace: default
    spec:
      size: 1Gi
      storageClassName: robin
      diskType: cdrom
      source:
        http:
          url: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
  4. 為虛擬機器的虛擬硬碟建立 VirtualMachineDisk 資源,內容如下,然後將其套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: windows-main-disk
      namespace: default
    spec:
      size: 15Gi
      storageClassName: robin
  5. 建立 VirtualMachineType 資源,其中包含指定虛擬機器設定的下列內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  6. 建立 VirtualMachine 資源,其中包含在叢集上例項化及啟動虛擬機器的內容,然後將該資源套用至叢集:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      labels:
        kubevirt.io/vm: win-vm
      name: win-vm #  Propagate the virtual machine name to the VMI
    spec:
      osType: Windows
      compute:
        virtualMachineTypeName: my-vmt
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: windows-main-disk
          boot: true
        - virtualMachineDiskName: windows-iso-disk
        - virtualMachineDiskName: win-virtio-driver

    osType 欄位僅適用於本機控制層叢集。在本地控制層叢集上,必須啟用此功能才能設定下列功能:

  7. 在虛擬機器上安裝 Windows:

    1. 等待 importer Pod 下載 Windows 安裝光碟映像檔。
    2. 檢查虛擬機器的狀態:

      kubectl get gvm VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 win-vm

    3. 按照「連線至 Windows VM 並完成 OS 安裝程序」中的步驟,完成 Windows 安裝程序。

  8. 清除所用資源:

    1. 停止虛擬機器:

      kubectl virt stop VM_NAME

      VM_NAME 替換為虛擬機名稱,在本例中為 win-vm

    2. 完成「卸載 ISO 映像檔和驅動程式磁碟」中的步驟。

使用 virtctl 在 Distributed Cloud 上佈建虛擬機器

如果您不需要自訂虛擬機器的資源規格,可以使用 virtctl 指令列工具在 Distributed Cloud 上佈建虛擬機器,如「建立 VM」一文所述。

管理在 Distributed Cloud 上執行的虛擬機器

如要瞭解如何管理在 Distributed Cloud 上執行的虛擬機器,請參閱下列 VM Runtime on GDC 說明文件:

如要管理在本機控制平面叢集上執行的虛擬機器,請先設定 kubectl 連線

設定 ttyS0 裝置,以便透過序列埠連線存取 Linux 虛擬機器

如果您打算使用序列埠控制台 (kubectl virt console) 存取 Linux 虛擬機器,請務必在客層作業系統上設定 ttyS0 序列埠控制台裝置。如要設定這部裝置,請完成下列步驟:

  1. 在系統中例項化 ttyS0 序列裝置:

    setserial -g /dev/ttyS0
  2. 將下列幾行內容新增至 /etc/default/grub 設定檔,設定 grub 系統啟動載入程式使用 ttyS0 序列裝置。第一行會取代現有的 GRUB_CMDLINE_LINUX 變數。

    GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,19200n8'
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
  3. 將新的 grub 設定套用至開機磁區:

    update-grub
  4. 重新啟動虛擬機器。

在 Distributed Cloud 上停用 GDC 的 VM Runtime

請按照本節中的步驟,在 Distributed Cloud 上停用 GDC 的 VM Runtime。如要停用 Distributed Cloud 上的 GDC VM Runtime,請務必先停止並刪除 Distributed Cloud 叢集上的所有虛擬機器,如「刪除 VM」一文所述。

如要在 Distributed Cloud 上停用 GDC 的 VM Runtime,請將 VMRuntime 自訂資源的 enabled spec 參數設為 false,如下所示,然後套用至叢集:

apiVersion: vm.cluster.gke.io/v1
kind: VMRuntime
metadata:
  name: vmruntime
spec:
  # Disable Anthos VM Runtime
  enabled: false
  # vmImageFormat defaults to "raw" if not set
  vmImageFormat: "raw"

後續步驟