Tutorial: Membuat dan mengelola VM Linux dalam Runtime VM di GDC


Tutorial ini menunjukkan cara membuat dan mengelola virtual machine (VM) Linux tentang penginstalan baru Runtime VM di GDC. Anda akan mempelajari proses untuk membuat dan menentukan dependensi dasar seperti StorageClass dan virtual jaringan, kemudian buat VM yang menggunakan resource ini. Kemudian, Anda belajar bagaimana mengedit VM, seperti untuk menambahkan disk baru.

Tujuan

  • Mengonfigurasi dependensi dasar
    • Membuat StorageClass untuk VM Runtime di GDC
    • Buat jaringan virtual untuk digunakan oleh VM Anda
  • Membuat boot disk virtual machine
  • Membuat VM
  • Mengedit VM untuk menambahkan disk virtual baru

Sebelum memulai

Untuk menyelesaikan tutorial ini, Anda memerlukan akses ke referensi dan alat:

Membuat StorageClass

Anda menggunakan StorageClass untuk menentukan jenis penyimpanan yang Anda sediakan atau VM. Kelas penyimpanan yang berbeda mungkin dipetakan ke jenis penyimpanan yang berbeda perangkat keras, sistem file, atau kinerja.

Hal ini di luar cakupan tutorial ini untuk memberikan instruksi khusus tentang setiap StorageClass dan partner penyimpanan.

Partner penyimpanan Google Distributed Cloud Ready berikan persyaratan Antarmuka Penyimpanan Container (CSI) {i>driver<i} yang menginstal dan mengkonfigurasi sumber daya khusus yang diperlukan untuk Storage. Untuk menginstal driver CSI di cluster Anda, tinjau daftar driver yang didukung partner penyimpanan Google Cloud Platform dan ikuti petunjuknya.

Satu atau beberapa penyimpanan setelah Anda menginstal driver CSI untuk platform penyimpanan yang tersedia di cluster Anda. Anda menggunakan salah satu kelas penyimpanan ini untuk membuat {i>hard disk<i} virtual dalam tutorial ini.

Contoh dasar berikut StorageClass NFS menggunakan Driver NFS CSI. Anda menentukan alamat server NFS dan jalur yang akan digunakan di StorageClass. Semua node di cluster Anda kemudian dapat terhubung ke dan menggunakan penyimpanan NFS ini:

  apiVersion: storage.k8s.io/v1
  kind: StorageClass
  metadata:
    name: example-nfs
  provisioner: nfs.csi.k8s.io
  parameters:
    server: nfs-server.example.com
    path: /vm-share
  reclaimPolicy: Delete
  volumeBindingMode: Immediate
  mountOptions:
    - nconnect=8
    - nfsvers=4.1

Dalam tutorial ini, gunakan nama StorageClass di cluster Anda sendiri.

Runtime VM di GDC secara otomatis menghasilkan satu profil penyimpanan untuk setiap StorageClass dalam cluster. Profil penyimpanan adalah nama yang sama dengan StorageClass terkait. Profil penyimpanan menyediakan opsi konfigurasi tambahan yang terkait dengan setiap StorageClass. Untuk informasi selengkapnya tentang penyimpanan profil, termasuk petunjuk konfigurasi, lihat Mengonfigurasi profil penyimpanan.

Membuat jaringan virtual

VM terhubung ke jaringan virtual menggunakan antarmuka jaringan virtual. Virtual memungkinkan berkomunikasi dengan VM lain di cluster, atau dengan resource di luar klaster.

Dalam tutorial ini, Anda membuat jaringan virtual Lapisan 2 (L2) dasar yang dapat menggunakan server DHCP eksternal. Saat Anda mengaktifkan penggunaan server DHCP eksternal, Anda dapat melewati konfigurasi pengaturan DNS dan {i>gateway<i} jika disediakan oleh DHCP.

Untuk membuat jaringan yang menggunakan server DHCP eksternal, selesaikan langkah-langkah berikut langkah:

  1. Membuat manifes Network, seperti dhcp-network.yaml, di editor pilihan Anda:

    nano dhcp-network.yaml
    
  2. Salin dan tempel manifes YAML berikut:

    apiVersion: networking.gke.io/v1
    kind: Network
    metadata:
      name: NETWORK_NAME
    spec:
      type: L2
      nodeInterfaceMatcher:
        interfaceName: INTERFACE_NAME
      externalDHCP4: true
    

    Ganti nilai berikut:

    • NETWORK_NAME: nama untuk jaringan Anda.
    • INTERFACE_NAME: nama antarmuka di Node Google Distributed Cloud untuk menghubungkan jaringan. Semua node harus memiliki nama antarmuka yang sama.

    Dalam manifes Network ini, nilai berikut ditetapkan:

    • Beban kerja hanya dapat memiliki L2 lampiran ke jaringan ini. Ini adalah satu-satunya jaringan type yang dapat Anda buat di VM Runtime di GDC.
    • Jaringan mengaktifkan DHCP eksternal. Server DHCP eksternal merupakan bertanggung jawab atas alokasi alamat IPv4, rute, {i>gateway<i}, dan DNS Anda. untuk beban kerja yang terhubung ke jaringan ini.
  3. Simpan dan tutup manifes Network di editor Anda.

  4. Buat jaringan menggunakan kubectl:

    kubectl apply -f use-dhcp-network.yaml
    

Membuat boot disk VM

VM dapat menggunakan disk image yang telah dibuat sebelumnya, atau melakukan booting dari image ISO untuk menginstal OS. {i>Disk image <i}ini dapat disimpan dan diakses menggunakan HTTP, atau dalam Cloud Storage dan diakses menggunakan Secret.

Dalam tutorial ini, Anda akan membuat {i>boot disk<i} dari Ubuntu Server 20.04 publik gambar cloud menggunakan HTTP.

Untuk membuat disk dari image, selesaikan langkah-langkah berikut.

  1. Buat manifes VirtualMachineDisk, seperti my-disk.yaml, di pilihan Anda:

    nano my-disk.yaml
    
  2. Salin dan tempel definisi YAML berikut:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 20Gi
      storageClassName: STORAGE_CLASS_NAME
      source:
        http:
          url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
    

    Ganti nilai berikut:

    • DISK_NAME: nama yang Anda inginkan untuk disk. Ini contoh menghasilkan disk 20Gi (20 gibibyte) yang diberi nama DISK_NAME menggunakan Ubuntu publik Image server 20.04.
    • STORAGE_CLASS_NAME: StorageClass yang Anda inginkan yang akan digunakan untuk VirtualMachineDisk.
      • Gunakan kubectl get storageclass untuk mencantumkan apa yang tersedia di cluster Anda.
  3. Simpan dan tutup manifes VirtualMachineDisk di editor Anda.

  4. Buat disk menggunakan kubectl:

    kubectl apply -f my-disk.yaml
    

Membuat VM

Dengan jaringan virtual dan {i>boot disk<i} yang telah dibuat di bagian sebelumnya, membuat VM. VM terhubung ke jaringan virtual, dan melakukan booting dari {i>disk<i}. Petunjuk berikut membuat VM dengan langsung menerapkan sebuah File manifes YAML VirtualMachine dengan CLI kubectl.

  1. Buat manifes yang menentukan VirtualMachine, seperti my-vm.yaml, di editor pilihan Anda:

    nano my-vm.yaml
    
  2. Salin dan tempel definisi YAML berikut:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      osType: linux
      compute:
        cpu:
          vcpus: VCPU_NUMBER
        memory:
          capacity: MEMORY_SIZE
      interfaces:
        - name: eth0
          networkName: NETWORK_NAME
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: DISK_NAME
    

    Ganti nilai berikut:

    • VM_NAME: nama untuk VM Anda.
    • VCPU_NUMBER: Jumlah vCPU opsional yang akan ditetapkan VM. Tanpa setelan ini, jumlah default 2 vCPU akan ditetapkan.
      • Anda dapat menetapkan antara 1 hingga 96 vCPU ke VM.
    • MEMORY_SIZE: Jumlah memori opsional yang akan ditetapkan VM. Tanpa setelan ini, setelan default memori sebesar 4 GiB akan ditetapkan.
      • Anda dapat menetapkan antara 1 juta dan 1 T memori ke VM. Untuk informasi selengkapnya, lihat Unit resource memori.
    • NETWORK_NAME: nama jaringan Anda yang dibuat di bagian sebelumnya.
    • DISK_NAME: nama boot disk yang dibuat di bagian sebelumnya. Disk ini disetel ke boot: true.
  3. Simpan dan tutup manifes di editor Anda.

  4. Buat VM dan disk menggunakan kubectl:

    kubectl apply -f my-vm.yaml
    
  5. Pembuatan VM memerlukan waktu beberapa menit. Periksa status VM dengan perintah kubectl:

    kubectl get gvm VM_NAME
    

    Contoh output berikut menunjukkan VM dalam status Running:

    NAME    STATUS    AGE   IP
    MY_VM   Running   64s   192.168.2.124
    

Menghubungkan ke VM

Ketika VM Anda berjalan, hubungkan ke konsol VM. Konsol ini memungkinkan Anda melakukan tugas-tugas dasar seperti mengonfigurasi VM atau menginstal aplikasi.

  1. Untuk mengakses VM dari konsol, gunakan kubectl:

    kubectl virt console VM_NAME
    
  2. Saat diminta, masukkan kredensial pengguna yang Anda tentukan untuk membuat VM.

  3. Setelah Anda berhasil terhubung ke konsol VM, keluar dari sesi VM dan konsol:

    Ctrl + ]
    

Edit VM

Selama siklus proses VM, Anda mungkin ingin mengedit VM. Misalnya, Anda mungkin ingin menambah penyimpanan untuk menginstal aplikasi pada {i>disk<i} khusus, atau menggunakan penyimpanan tambahan untuk aplikasi Anda.

Dalam tutorial ini, membuat disk kosong dan memasangnya ke VM. Skenario ini memungkinkan Anda membuat {i>disk<i} data untuk menyimpan data aplikasi.

  1. Buat manifes VirtualMachineDisk, seperti my-data-disk.yaml, di pilihan Anda:

    nano my-data-disk.yaml
    
  2. Salin dan tempel definisi YAML berikut:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DATA_DISK_NAME
    spec:
      size: 10Gi
      storageClassName: STORAGE_CLASS_NAME
    

    Ganti nilai berikut:

    • DATA_DISK_NAME: nama yang Anda inginkan {i>disk<i} data Anda. Contoh ini menghasilkan disk 10Gi (10 gibibyte).
    • STORAGE_CLASS_NAME: StorageClass yang Anda inginkan yang akan digunakan untuk VirtualMachineDisk.
      • Gunakan kubectl get storageclass untuk mencantumkan apa yang tersedia di cluster Anda.
  3. Simpan dan tutup manifes disk di editor Anda.

  4. Buat disk menggunakan kubectl:

    kubectl apply -f my-data-disk.yaml
    
  5. Gunakan kubectl untuk menghentikan VM sebelum Anda memasang disk virtual baru:

    kubectl virt stop VM_NAME
    
  6. Edit resource VM Anda:

    kubectl edit gvm VM_NAME
    

    Perbarui manifes YAML VirtualMachine untuk memasang disk di akhir Bagian spec.disks VM:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: DISK_NAME
        - virtualMachineDiskName: DATA_DISK_NAME
    

    Ganti DATA_DISK_NAME dengan nama disk yang Anda buat di langkah sebelumnya.

  7. Simpan dan tutup manifes VM yang telah diupdate di editor Anda.

  8. Gunakan kubectl untuk memulai VM:

    kubectl virt start VM_NAME
    

Pembersihan

Untuk menghapus referensi yang dibuat dalam tutorial ini, selesaikan langkah-langkah berikut langkah:

  1. Hapus VM Anda:

    kubectl delete -f my-vm.yaml
    
  2. Hapus resource VirtualMachineDisk Anda:

    kubectl delete -f my-data-disk.yaml
    kubectl delete -f my-disk.yaml
    

Jika Anda tidak ingin mempertahankan dependensi dasar dalam cluster, selesaikan langkah-langkah berikut:

  1. Hapus jaringan virtual:

    kubectl delete -f use-dhcp-network.yaml
    
  2. Untuk menghapus driver CSI dari cluster, ikuti petunjuk dari Google Cloud Anda.

Langkah selanjutnya