Mengelola virtual machine

Halaman ini menjelaskan cara mengelola virtual machine di Google Distributed Cloud yang menjalankan VM Runtime di Google Distributed Cloud. Anda harus memahami VM Runtime di GDC sebelum menyelesaikan langkah-langkah di halaman ini. Untuk mengetahui daftar sistem operasi tamu yang didukung, lihat Sistem operasi tamu yang terverifikasi untuk VM Runtime di GDC.

Untuk mempelajari cara virtual machine berfungsi sebagai komponen penting platform Distributed Cloud, lihat Memperluas GKE Enterprise untuk mengelola VM edge lokal.

Cluster bidang kontrol lokal mendukung webhook virtual machine. Hal ini memungkinkan Distributed Cloud memvalidasi permintaan pengguna yang dibuat ke server Kubernetes API lokal. Permintaan yang ditolak menghasilkan informasi mendetail tentang alasan penolakan.

Mengaktifkan dukungan VM Runtime di GDC di Distributed Cloud

Secara default, dukungan mesin virtual VM Runtime di GDC dinonaktifkan di Distributed Cloud. Untuk mengaktifkannya, selesaikan langkah-langkah di bagian ini. Petunjuk di bagian ini mengasumsikan bahwa Anda memiliki cluster Distributed Cloud yang berfungsi sepenuhnya.

Resource VMRuntime yang mengonfigurasi dukungan VM Runtime di GDC di Distributed Cloud juga mengonfigurasi dukungan GPU di cluster Anda dengan menggunakan parameter enableGPU. Pastikan Anda mengonfigurasi kedua parameter sesuai dengan kebutuhan workload Anda. Anda tidak perlu mengaktifkan dukungan GPU untuk mengaktifkan dukungan VM Runtime on GDC di cluster Distributed Cloud Anda.

Tabel berikut menjelaskan konfigurasi yang tersedia:

Nilai enable Nilai enableGPU Konfigurasi yang dihasilkan
false false Workload hanya berjalan di container dan tidak dapat menggunakan resource GPU.
false true Workload hanya berjalan di container dan dapat menggunakan resource GPU.
true true Beban kerja dapat berjalan di virtual machine dan di container.
Kedua jenis workload dapat menggunakan resource GPU.
true false Beban kerja dapat berjalan di virtual machine dan di container.
Kedua jenis workload tidak dapat menggunakan resource GPU.

Jika Anda telah mengaktifkan dukungan GPU, ubah resource VMRuntime untuk menambahkan parameter enable, tetapkan nilainya ke true, lalu terapkan ke cluster Distributed Cloud Anda.

Mengaktifkan Runtime VM di subsistem mesin virtual GDC

Bergantung pada jenis cluster tempat Anda ingin mengaktifkan subsistem mesin virtual VM Runtime on GDC, lakukan salah satu hal berikut:

  • Untuk cluster bidang kontrol Cloud, Anda harus membuat resource VMRuntime secara manual.
  • Untuk cluster bidang kontrol lokal, Anda harus mengedit resource VMRuntime yang ada.

Untuk mengaktifkan VM Runtime di subsistem virtual machine GDC, selesaikan langkah-langkah berikut:

  1. Bergantung pada jenis cluster target, buat atau ubah resource kustom VMRuntime dengan konten berikut dan terapkan ke cluster Anda:

    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"

    Jangan ubah nilai parameter vmImageFormat. Distributed Cloud tidak mendukung format disk virtual lainnya.

    Proses ini biasanya membutuhkan waktu beberapa menit hingga selesai.

  2. Gunakan perintah berikut untuk memverifikasi bahwa resource kustom VMRuntime telah diterapkan ke cluster Anda:

    kubectl get vmruntime -o yaml

    Perintah ini menampilkan output yang mirip dengan contoh berikut:

     - apiVersion: vm.cluster.gke.io/v1
       kind: VMRuntime
       metadata:
         name: vmruntime
         ...
       spec:
         enabled: true
         vmImageFormat: raw
       status:
         ...
       ready: true
         ...
    
  3. Gunakan perintah berikut untuk memverifikasi bahwa dukungan mesin virtual VM Runtime di GDC telah diaktifkan di cluster Anda:

    kubectl get pods -n vm-system

    Perintah ini menampilkan output yang menunjukkan Pod subsistem VM Runtime di GDC yang berjalan di cluster Anda, mirip dengan contoh berikut:

    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
    

Memberi namespace target akses ke Distributed Cloud Registry

Langkah-langkah di bagian ini hanya berlaku untuk cluster bidang kontrol Cloud. Jika Anda mengonfigurasi VM Runtime di subsistem virtual machine GDC pada cluster bidang kontrol lokal, lewati bagian ini.

Sebelum dapat membuat virtual machine di namespace, Anda harus memberikan akses namespace tersebut ke registry Distributed Cloud. Registry menyimpan komponen yang diperlukan untuk membuat dan men-deploy virtual machine Anda di namespace target. Perlu diingat bahwa Anda tidak dapat menjalankan mesin virtual di namespace yang dicadangkan untuk pengelolaan sistem Distributed Cloud. Untuk mengetahui informasi selengkapnya, lihat Batasan namespace pengelolaan.

Selesaikan langkah-langkah berikut untuk memberikan akses namespace target Anda ke registry Distributed Cloud:

  1. Patch akun layanan default di namespace target dengan kunci imagePullSecret bernama gcr-pull:

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

    Ganti NAMESPACE dengan nama namespace target.

  2. Perbarui secret terkait di namespace target:

    # 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 -

    Ganti NAMESPACE dengan nama namespace target.

    Masa berlaku secret akan berakhir setelah satu jam. Anda harus merefreshnya secara manual setelah masa berlakunya berakhir.

Instal alat pengelolaan virtctl

Anda memerlukan alat klien virtctl untuk mengelola virtual machine di Cluster Cloud Terdistribusi Anda. Untuk menginstal alat, selesaikan langkah-langkah berikut:

  1. Instal alat klien virtctl sebagai plugin 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. Pastikan plugin virt telah diinstal:

    kubectl plugin list

    Jika plugin berhasil diinstal, output perintah akan mencantumkan kubectl-virt sebagai salah satu plugin.

Menyediakan virtual machine di Distributed Cloud dengan block storage mentah

Bagian ini memberikan contoh konfigurasi yang menggambarkan cara menyediakan mesin virtual Linux dan mesin virtual Windows di cluster Distributed Cloud dengan block storage mentah. Contoh menggunakan penyimpanan blok yang di-instantiate sebagai PersistentVolume.

Batasan penggunaan block storage mentah

Batasan berikut berlaku saat menjalankan virtual machine dengan penyimpanan blok mentah di Distributed Cloud:

  • Kolom OSType tidak didukung dalam spesifikasi resource VirtualMachine di cluster bidang kontrol Cloud. Oleh karena itu, hanya metode console dan vnc yang didukung untuk mengakses virtual machine yang berjalan di cluster Cloud control plane.
  • Anda tidak dapat membuat mesin virtual di cluster Distributed Cloud secara langsung menggunakan perintah kubectl virt karena Distributed Cloud tidak menyediakan penyimpanan sistem file untuk mesin virtual.
  • Resource penyimpanan blok PersistenVolumeClaim tidak mendukung format image disk qcow2.
  • Plug-in Pengimpor Data yang Dikontainerkan (CDI) tidak mendukung DataVolume resource di penyimpanan blok karena ruang sementara plug-in hanya berfungsi di penyimpanan sistem file. Untuk mengetahui informasi selengkapnya, lihat Ruang sementara.

Menyediakan mesin virtual Linux di Distributed Cloud dengan block storage mentah

Contoh berikut mengilustrasikan cara menyediakan mesin virtual Linux dengan block storage mentah yang menjalankan Ubuntu Server 22.04. Sumber penginstalan adalah image disk ISO Ubuntu Server 22.04.

  1. Buat resource PersistentVolumeClaim dengan konten berikut untuk image disk penginstalan Ubuntu Server, lalu terapkan ke cluster Anda:

    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. Buat resource PersistentVolumeClaim dengan konten berikut untuk hard disk virtual mesin virtual, lalu terapkan ke cluster Anda:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: ubuntuhd
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 15Gi
      storageClassName: local-block
      volumeMode: Block
  3. Buat resource VirtualMachineDisk dengan konten berikut untuk image disk penginstalan Ubuntu Server, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "ubuntu-iso-disk"
    spec:
      persistentVolumeClaimName: iso-ubuntu
      diskType: cdrom
  4. Buat resource VirtualMachineDisk dengan konten berikut untuk hard disk virtual mesin virtual, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "ubuntu-main-disk"
    spec:
      persistentVolumeClaimName: ubuntuhd
  5. Buat resource VirtualMachineType dengan konten berikut yang menentukan konfigurasi virtual machine, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  6. Buat resource VirtualMachine dengan konten berikut yang meng-instansiasi dan memulai mesin virtual di cluster, lalu terapkan ke cluster Anda:

    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

    Kolom osType hanya berlaku untuk cluster bidang kontrol lokal. Diperlukan pada cluster bidang kontrol lokal untuk mengonfigurasi fitur berikut:

  7. Instal Ubuntu Server di virtual machine:

    1. Tunggu hingga Pod importer mendownload image disk penginstalan Ubuntu Server.
    2. Periksa status mesin virtual:

      kubectl get gvm VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    3. Login ke virtual machine:

      kubectl virt vnc VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    4. Selesaikan langkah-langkah penginstalan Ubuntu Linux.

  8. Pembersihan:

    1. Hentikan mesin virtual:

      kubectl virt stop VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    2. Edit file YAML mesin virtual untuk menghapus referensi ke image disk penginstalan:

      kubectl edit gvm VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    3. Mulai virtual machine:

      kubectl virt start VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    4. Hapus resource VirtualMachineDisk dan PersistentVolumeClaim untuk image disk penginstalan:

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

Menyediakan mesin virtual Windows di Distributed Cloud dengan block storage mentah

Contoh berikut menggambarkan cara menyediakan virtual machine Windows dengan block storage mentah. Langkah-langkahnya serupa dengan penyediaan virtual machine Linux, dengan penambahan image disk driver virtio, yang diperlukan untuk menginstal Windows.

  1. Dapatkan salinan Windows berlisensi dan image media penginstalannya.

  2. Buat resource PersistentVolumeClaim dengan konten berikut untuk image disk penginstalan Windows, lalu terapkan ke cluster Anda. Untuk mengetahui petunjuknya, lihat Dari gambar.

  3. Buat resource PersistentVolumeClaim dengan konten berikut untuk driver virtio, lalu terapkan ke cluster Anda:

    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. Buat resource PersistentVolumeClaim dengan konten berikut untuk hard disk virtual mesin virtual, lalu terapkan ke cluster Anda:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: windowshd
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 15Gi
      storageClassName: local-block
      volumeMode: Block
  5. Buat resource VirtualMachineDisk dengan konten berikut untuk image disk penginstalan Windows, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "windows-iso-disk"
    spec:
      persistentVolumeClaimName: iso-windows
      diskType: cdrom
  6. Buat resource VirtualMachineDisk dengan konten berikut untuk driver virtio, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "win-virtio-driver"
    spec:
      persistentVolumeClaimName: virtio-driver
      diskType: cdrom
  7. Buat resource VirtualMachineDisk dengan konten berikut untuk hard disk virtual mesin virtual, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "windows-main-disk"
    spec:
      persistentVolumeClaimName: windowshd
  8. Buat resource VirtualMachineType dengan konten berikut yang menentukan konfigurasi virtual machine, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  9. Buat resource VirtualMachine dengan konten berikut yang meng-instansiasi dan memulai virtual machine di cluster, lalu terapkan ke cluster Anda:

    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

    Kolom osType hanya berlaku untuk cluster bidang kontrol lokal. Diperlukan pada cluster bidang kontrol lokal untuk mengonfigurasi fitur berikut:

  10. Instal Windows di virtual machine:

    1. Tunggu hingga Pod importer mendownload image disk penginstalan Windows.
    2. Periksa status mesin virtual:

      kubectl get gvm VM_NAME

      Ganti VM_NAME dengan nama virtual machine—win-vm dalam contoh ini.

    3. Selesaikan penginstalan Windows dengan mengikuti langkah-langkah di Menghubungkan ke VM Windows dan menyelesaikan penginstalan OS.

  11. Pembersihan:

    1. Hentikan mesin virtual:

      kubectl virt stop VM_NAME

      Ganti VM_NAME dengan nama virtual machine—win-vm dalam contoh ini.

    2. Selesaikan langkah-langkah di Lepaskan disk driver dan image ISO.

Menyediakan virtual machine di Distributed Cloud dengan Symcloud Storage

Bagian ini memberikan contoh konfigurasi yang menggambarkan cara menyediakan mesin virtual Linux dan mesin virtual Windows di cluster Distributed Cloud dengan lapisan abstraksi Symcloud Storage.

Sebelum menyelesaikan langkah-langkah di bagian ini, Anda harus menyelesaikan langkah-langkah di Mengonfigurasi Distributed Cloud untuk Symcloud Storage terlebih dahulu. Jika Anda menonaktifkan Symcloud Storage di cluster nanti, virtual machine yang dikonfigurasi untuk menggunakan Symcloud Storage akan gagal.

Menyediakan mesin virtual Linux di Distributed Cloud dengan Symcloud Storage

Contoh berikut mengilustrasikan cara menyediakan virtual machine Linux dengan Symcloud Storage yang menjalankan Ubuntu Server 22.04. Sumber penginstalan adalah image disk ISO Ubuntu Server 22.04.

  1. Buat resource VirtualMachineDisk dengan konten berikut untuk image disk penginstalan Ubuntu Server, lalu terapkan ke cluster Anda:

    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. Buat resource VirtualMachineDisk dengan konten berikut untuk hard disk virtual mesin virtual, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: "ubuntu-main-disk"
    spec:
      size: 200Gi
      storageClassName: robin
  3. Buat resource VirtualMachineType dengan konten berikut yang menentukan konfigurasi virtual machine, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  4. Buat resource VirtualMachine dengan konten berikut yang meng-instansiasi dan memulai mesin virtual di cluster, lalu terapkan ke cluster Anda:

    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

    Kolom osType hanya berlaku untuk cluster bidang kontrol lokal. Diperlukan pada cluster bidang kontrol lokal untuk mengonfigurasi fitur berikut:

  5. Instal Ubuntu Server di virtual machine:

    1. Tunggu hingga Pod importer mendownload image disk penginstalan Ubuntu Server.
    2. Periksa status mesin virtual:

      kubectl get gvm VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    3. Login ke virtual machine:

      kubectl virt vnc VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    4. Selesaikan langkah-langkah penginstalan Ubuntu Linux.

  6. Pembersihan:

    1. Hentikan mesin virtual:

      kubectl virt stop VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    2. Edit file YAML mesin virtual untuk menghapus referensi ke image disk penginstalan:

      kubectl edit gvm VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    3. Mulai virtual machine:

      kubectl virt start VM_NAME

      Ganti VM_NAME dengan nama virtual machine—ubu-vm dalam contoh ini.

    4. Hapus resource VirtualMachineDisk untuk image disk penginstalan:

      kubectl delete virtualmachinedisk ubuntu-iso-disk

Menyediakan mesin virtual Windows di Distributed Cloud dengan Symcloud Storage

Contoh berikut mengilustrasikan cara menyediakan mesin virtual Windows dengan Symcloud Storage. Langkah-langkahnya serupa dengan penyediaan virtual machine Linux, dengan penambahan image disk driver virtio, yang diperlukan untuk menginstal Windows.

  1. Dapatkan salinan Windows berlisensi dan image media penginstalannya.

  2. Buat resource VirtualMachineDisk dengan konten berikut untuk image disk penginstalan Windows, lalu terapkan ke cluster Anda:

    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

    Ganti NAT_GATEWAY dengan URL lengkap ke image disk ISO penginstalan Windows target.

  3. Buat resource VirtualMachineDisk dengan konten berikut untuk driver virtio, lalu terapkan ke cluster Anda:

    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. Buat resource VirtualMachineDisk dengan konten berikut untuk hard disk virtual mesin virtual, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: windows-main-disk
      namespace: default
    spec:
      size: 15Gi
      storageClassName: robin
  5. Buat resource VirtualMachineType dengan konten berikut yang menentukan konfigurasi virtual machine, lalu terapkan ke cluster Anda:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: small-2-20
    spec:
      cpu:
        vcpus: 2
      memory:
        capacity: 20Gi
  6. Buat resource VirtualMachine dengan konten berikut yang meng-instansiasi dan memulai virtual machine di cluster, lalu terapkan ke cluster Anda:

    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

    Kolom osType hanya berlaku untuk cluster bidang kontrol lokal. Diperlukan pada cluster bidang kontrol lokal untuk mengonfigurasi fitur berikut:

  7. Instal Windows di virtual machine:

    1. Tunggu hingga Pod importer mendownload image disk penginstalan Windows.
    2. Periksa status mesin virtual:

      kubectl get gvm VM_NAME

      Ganti VM_NAME dengan nama virtual machine—win-vm dalam contoh ini.

    3. Selesaikan penginstalan Windows dengan mengikuti langkah-langkah di Menghubungkan ke VM Windows dan menyelesaikan penginstalan OS.

  8. Pembersihan:

    1. Hentikan mesin virtual:

      kubectl virt stop VM_NAME

      Ganti VM_NAME dengan nama virtual machine—win-vm dalam contoh ini.

    2. Selesaikan langkah-langkah di Lepaskan disk driver dan image ISO.

Menyediakan virtual machine di Distributed Cloud menggunakan virtctl

Jika tidak memerlukan penyesuaian yang disediakan dengan menulis spesifikasi resource sendiri untuk virtual machine, Anda dapat menyediakan virtual machine di Distributed Cloud menggunakan alat command line virtctl seperti yang dijelaskan dalam Membuat VM.

Mengelola virtual machine yang berjalan di Distributed Cloud

Untuk mengetahui petunjuk tentang cara mengelola virtual machine yang berjalan di Distributed Cloud, lihat dokumentasi VM Runtime on GDC berikut:

Untuk mengelola virtual machine yang berjalan di cluster bidang kontrol lokal, Anda harus Mengonfigurasi konektivitas kubectl terlebih dahulu.

Mengonfigurasi perangkat ttyS0 untuk akses konsol serial ke mesin virtual Linux

Jika Anda berencana mengakses virtual machine Linux menggunakan konsol serial (kubectl virt console), pastikan perangkat konsol serial ttyS0 telah dikonfigurasi di sistem operasi tamu. Untuk mengonfigurasi perangkat ini, selesaikan langkah-langkah berikut:

  1. Buat instance perangkat serial ttyS0 dalam sistem:

    setserial -g /dev/ttyS0
  2. Konfigurasi bootloader grub untuk menggunakan perangkat serial ttyS0 dengan menambahkan baris berikut ke file konfigurasi /etc/default/grub Anda. Baris pertama menggantikan variabel GRUB_CMDLINE_LINUX yang ada.

    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. Terapkan konfigurasi grub baru ke sektor booting Anda:

    update-grub
  4. Mulai ulang mesin virtual.

Menonaktifkan VM Runtime di GDC di Distributed Cloud

Ikuti langkah-langkah di bagian ini untuk menonaktifkan VM Runtime di GDC di Distributed Cloud. Sebelum dapat menonaktifkan VM Runtime di GDC di Distributed Cloud, Anda harus menghentikan dan menghapus semua mesin virtual di cluster Distributed Cloud seperti yang dijelaskan dalam Menghapus VM.

Untuk menonaktifkan VM Runtime di GDC di Distributed Cloud, ubah resource kustom VMRuntime dengan menyetel parameter spesifikasi enabled ke false seperti berikut, lalu terapkan ke cluster Anda:

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"

Langkah berikutnya