本文說明如何使用 GDC 上的 VM 執行階段,建立從 ISO 開機的 Windows 虛擬機器 (VM)。VM 開機後,請手動完成 Windows 設定程序。
您也可以使用 HTTP 來源或從 Cloud Storage,以準備好的磁碟映像檔建立 Windows VM。
事前準備
如要完成這份文件,您必須存取下列資源:
- 存取 Google Distributed Cloud 1.12.0 版 (
anthosBareMetalVersion: 1.12.0
) 以上版本的叢集。您可以使用任何可執行工作負載的叢集類型。 如有需要,請在 Compute Engine 上試用 Google Distributed Cloud,或參閱叢集建立總覽。 virtctl
用戶端工具已安裝為kubectl
的外掛程式。視需要安裝 virtctl 用戶端工具。
為 ISO 映像檔建立虛擬磁碟
如要順利建立 Windows VM,請依序按照本文的步驟和章節操作。
如要從 Windows ISO 映像檔開機,請先建立 VirtualMachineDisk
,並使用 diskType
的 cdrom
。使用 Windows ISO 做為這個磁碟的來源。
在您選擇的編輯器中建立
VirtualMachineDisk
資訊清單,例如windows-iso.yaml
:nano windows-iso.yaml
複製並貼上下列 YAML 資訊清單:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-iso spec: source: http: url: IMG_URL size: 10Gi diskType: cdrom
將
IMG_URL
替換為 Windows ISO 的 HTTP 路徑。您也可以建立及使用憑證,從 Cloud Storage 匯入 ISO 檔案。在編輯器中儲存並關閉資訊清單。
使用
kubectl
建立VirtualMachineDisk
:kubectl apply -f windows-iso.yaml
建立 VM 驅動程式磁碟
如要從 Windows ISO 成功開機並完成安裝程序,VM 必須存取 virtio
驅動程式。如要將 virtio
驅動程式提供給 VM,請完成下列步驟:
在您選擇的編輯器中建立
VirtualMachineDisk
資訊清單,例如virtio-driver.yaml
:nano virtio-driver.yaml
複製並貼上下列 YAML 資訊清單:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: virtio-driver spec: size: 1Gi source: registry: url: docker://quay.io/kubevirt/virtio-container-disk:latest diskType: cdrom
這份資訊清單會從公開 Docker 存放區提取最新的
virtio
驅動程式,並將diskType
設為cdrom
。VM 會在安裝程序中使用這個磁碟。在編輯器中儲存並關閉資訊清單。
使用
kubectl
建立VirtualMachineDisk
:kubectl apply -f virtio-driver.yaml
建立 Windows VM
建立從 Windows ISO VirtualMachineDisk
啟動的 VM,並附加 virtio
驅動程式磁碟:
在您選擇的編輯器中,建立定義開機磁碟區
VirtualMachineDisk
和VirtualMachine
的資訊清單,例如windows-vm.yaml
:nano windows-vm.yaml
複製並貼上下列 YAML 資訊清單:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: VM_NAME-boot-dv spec: size: 100Gi --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: osType: Windows disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true - virtualMachineDiskName: windows-iso - virtualMachineDiskName: virtio-driver compute: cpu: vcpus: 2 memory: capacity: 4Gi interfaces: - name: eth0 networkName: pod-network
將
VM_NAME
替換為您想要的 VM 名稱。這份資訊清單會建立 100 Gibibyte (GiB) 的開機磁碟區。由於 VM 首次啟動時,這個開機磁碟區是空的,因此 VM 會從 ISO 啟動,將 ISO 視為 CD-ROM 裝置,以啟動設定常式。
virtio
驅動程式也會附加至完成安裝程序。在編輯器中儲存並關閉資訊清單。
使用
kubectl
建立VirtualMachineDisk
和VirtualMachine
:kubectl apply -f windows-vm.yaml
連線至 Windows VM 並完成 OS 安裝程序
VM 會啟動並從上一節的 Windows ISO 開機。連線至 VM,完成 Windows 安裝程序並設定 VM:
連線至 Windows VM:
kubectl virt vnc VM_NAME
將
VM_NAME
替換為 Windows VM 的名稱。在系統提示時,輸入 VM 的Windows 客戶 OS 使用者憑證。
如要進一步瞭解如何使用
kubectl virt vnc
連線至 VM,請參閱使用 VNC 直接連線。在 Windows 設定中,選擇執行「自訂安裝」。
選取「載入驅動程式」,瀏覽至
virtio
磁碟上的「viostor」目錄,然後選取與要安裝的 Windows 版本相符的目錄。詳情請參閱「KubeVirt Windows
virtio
驅動程式」。儲存空間和網路驅動程式現已可從
virtio
取得,請完成 Windows 安裝程序的其餘步驟。建議您啟用遠端桌面通訊協定,以便在安裝後直接連線至 VM。
卸載 ISO 映像檔和驅動程式磁碟
Windows 安裝完成後,請從 VM 移除 virtio
驅動程式磁碟和 Windows ISO 映像檔:
停止 Windows VM:
kubectl virt stop VM_NAME
將
VM_NAME
替換為 Windows VM 的名稱。使用
kubectl
編輯 VM:kubectl edit gvm VM_NAME
將
VM_NAME
替換為 Windows VM 的名稱。在編輯器中,更新
spec.disks
區段,移除 Windows ISO 和virtio
磁碟,如下例所示。附加至 VM 的磁碟應只剩下VM_NAME-boot-dv
:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: windows-vm spec: osType: Windows disks: - virtualMachineDiskName: windows-vm-boot-dv boot: true interfaces: ...
儲存並關閉 VM 資訊清單。
啟動 Windows VM:
kubectl virt start VM_NAME
將
VM_NAME
替換為 Windows VM 的名稱。檢查 VM 的
STATUS
:kubectl get gvm VM_NAME
將
VM_NAME
替換為 Windows VM 的名稱。確認 VM 處於
Running
狀態。如果 VM 不處於Running
狀態,請檢查VirtualMachine
資源資訊清單,確認您只移除了 Windows ISO 和virtio
磁碟。確認主機有足夠的運算資源可啟動 VM。