您可以使用 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 映像檔啟動,請先建立 diskType 為 cdrom 的 VirtualMachineDisk。使用 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 啟動,做為 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。