Mengedit konfigurasi VM di Runtime VM di GDC

Dokumen ini ditujukan bagi pemilik aplikasi yang menggunakan Runtime VM di GDC untuk menjalankan virtual machine (VM) di Google Distributed Cloud. Dokumen ini menunjukkan cara mengedit VM yang berjalan di cluster Google Distributed Cloud. Misalnya, Anda dapat mengedit resource tertentu, seperti CPU dan memori, atau mengubah jaringan yang terhubung dengan VM.

Anda dapat mengubah kolom apa pun di bagian spec pada resource VirtualMachine. Anda juga dapat mengedit label untuk VM. Kolom lain, seperti nama VM (metadata.name), tidak dapat diedit. Secara default, VM harus berada di Stopped status sebelum mengedit resource. Namun, dimulai dengan Google Distributed Cloud versi 1.13.0, Anda dapat mengonfigurasi VirtualMachine resource dimulai ulang secara otomatis setiap kali Anda mengubah konfigurasi Anda.

Jika pengeditan pada resource VirtualMachine mengalami error saat Anda menyimpan perubahan tersebut ditolak, dan Anda akan melihat notifikasi. Koreksi error, lalu coba simpan resource VirtualMachine lagi. Jika VM Anda tidak dimulai. Setelah Anda membuat perubahan, gunakan Perintah kubectl describe gvm VM_NAME untuk melihat informasi pemecahan masalah dan memperbaiki kesalahan.

Sebelum memulai

Untuk menyelesaikan dokumen ini, Anda memerlukan akses ke referensi berikut:

Edit resource komputasi

Jika tuntutan beban kerja komputasi berubah, Anda dapat memperbarui jumlah virtual CPU dan jumlah memori virtual yang ditetapkan ke VM. Untuk mengedit komputasi Anda workload, selesaikan langkah-langkah berikut:

  1. Hentikan VM yang ingin Anda edit:

    kubectl virt stop VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda ingin berhenti.

  2. Gunakan kubectl untuk mengedit VM:

    kubectl edit gvm VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda ingin mengedit.

  3. Di editor, perbarui nilai resource komputasi yang ingin diubah.

    Misalnya, contoh manifes VirtualMachine berikut menunjukkan bahwa VM resource memiliki 2 vCPU yang ditetapkan:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 2
    ...
    

    Jika Anda ingin memperbarui jumlah vCPU yang ditetapkan, ubah nilai Google Cloud, seperti yang ditunjukkan dalam contoh berikut:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 4
    ...
    
  4. Simpan dan tutup manifes VM.

  5. Mulai VM yang Anda edit:

    kubectl virt start VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda diedit.

  6. Periksa STATUS VM Anda:

    kubectl get gvm VM_NAME
    

    Pastikan VM dalam status Running. Jika VM Anda meminta lebih banyak resource komputasi yang lebih dari yang disediakan oleh {i>host<i}, VM Anda tidak dapat dimulai. Jika VM tidak dalam status Running, periksa manifes resource VirtualMachine Anda dan ketersediaan resource komputasi di host.

    Contoh output berikut menunjukkan VM dalam status Running:

    NAME   STATUS    AGE   IP
    vm1    Running   1m    192.168.2.72
    
  7. Lihat informasi mendetail tentang VM yang menggunakan kubectl describe gvm:

    kubectl describe gvm VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda diedit.

    Contoh output berikut menunjukkan informasi ringkas untuk VM, dengan diubah ke jumlah vCPU yang berhasil diterapkan:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
        Cpu:
          Vcpus:  4
    ...
    

Untuk informasi selengkapnya, lihat cara membuat VM dengan konfigurasi vCPU dan komputasi memori tertentu.

Mengedit resource disk

Jika persyaratan penyimpanan Anda berubah, Anda dapat menambah atau menghapus disk virtual ke Pesan Suara. Untuk mengedit disk yang terpasang ke VM Anda, selesaikan langkah-langkah berikut:

  1. Hentikan VM yang ingin Anda edit:

    kubectl virt stop VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda ingin berhenti.

  2. Gunakan kubectl untuk mengedit VM:

    kubectl edit gvm VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda ingin mengedit.

  3. Di editor Anda, perbarui bagian spec.disks untuk memasang atau melepas disk.

    Misalnya, contoh manifes VirtualMachine berikut menunjukkan bahwa hanya disk booting terpasang ke VM:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
      ...
    

    Jika Anda ingin menambahkan disk kosong yang sudah ada, perbarui konfigurasi disk di editor Anda, seperti yang ditunjukkan dalam contoh berikut:

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

    Ganti DISK_NAME dengan nama disk yang akan dipasang.

  4. Simpan dan tutup manifes VM.

  5. Mulai VM yang Anda edit:

    kubectl virt start VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda edit.

  6. Periksa STATUS VM Anda:

    kubectl get gvm VM_NAME
    

    Pastikan VM dalam status Running. Jika VM Anda meminta Penetapan StorageClass atau disk yang tidak dapat disediakan oleh host, VM Anda tidak dapat memulai. Jika VM tidak dalam status Running, periksa VirtualMachine dan Manifes resource VirtualMachineDisk dan dukungan penyimpanan host.

  7. Lihat informasi mendetail tentang VM yang menggunakan kubectl describe gvm:

    kubectl describe gvm VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda edit.

    Contoh output berikut menunjukkan informasi ringkas untuk VM, dengan perubahan pada disk yang terpasang berhasil diterapkan:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Disks:
        Name:  vm1-boot-dv
        Name:  data-disk-01
    ...
    

Untuk informasi selengkapnya, lihat cara membuat dan mengelola disk.

Mengedit resource jaringan

Seiring dengan perubahan infrastruktur Anda, Anda mungkin ingin mengubah jaringan untuk VM. Misalnya, Anda mungkin ingin menghubungkan VM ke jaringan virtual yang berbeda atau menetapkan alamat IP secara manual. Untuk mengedit jaringan untuk VM, selesaikan langkah-langkah berikut:

  1. Hentikan VM yang ingin Anda edit:

    kubectl virt stop VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda ingin berhenti.

  2. Gunakan kubectl untuk mengedit VM:

    kubectl edit gvm VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda ingin edit.

  3. Di editor, perbarui setelan konfigurasi jaringan yang ingin Anda berubah.

    Misalnya, contoh manifes VirtualMachine berikut menunjukkan bahwa VM terhubung ke jaringan bernama backend-vlan100 dan menggunakan DHCP karena tidak ada IP adalah:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: backend-vlan100
          default: true
    ...
    

    Jika Anda ingin mengubah jaringan yang terhubung ke VM atau menetapkan Perbarui konfigurasi jaringan di editor Anda, seperti yang ditunjukkan di contoh berikut:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: NETWORK_NAME
            ipAddresses:
              - IP_ADDRESS
          default: true
    ...
    

    Ganti NETWORK_NAME dengan nama jaringan untuk hubungkan, atau tambahkan bagian ipAddresses dan tentukan IP_ADDRESS untuk digunakan VM Anda.

  4. Simpan dan tutup manifes VM.

  5. Mulai VM yang Anda edit:

    kubectl virt start VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda edit.

  6. Periksa STATUS VM Anda:

    kubectl get gvm VM_NAME
    

    Pastikan VM dalam status Running. Jika VM Anda meminta koneksi jaringan yang tidak dapat disediakan oleh {i>host<i}, VM Anda tidak dapat dimulai. Jika VM tidak dalam status Running, periksa manifes resource VirtualMachine Anda dan dukungan jaringan {i>host<i}.

  7. Lihat informasi mendetail tentang VM yang menggunakan kubectl describe gvm:

    kubectl describe gvm VM_NAME
    

    Ganti VM_NAME dengan nama VM yang Anda edit.

    Contoh output berikut menunjukkan informasi ringkas untuk VM, dengan perubahan pada konfigurasi jaringan dan alamat IP berhasil diterapkan:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
      Interfaces:
        Name:          eth0
        Network Name:  backend-vlan200
    ...
    Status:
      ...
      Interfaces:
        Dns Config:
          Nameservers:
            8.8.8.8
        gateway4:  10.200.0.9
        Ip Addresses:
          10.200.0.22/24
        Mac Address:    22:b4:e3:d2:ef:fb
        Name:           eth0
        Resource Name:  vm1-eth0-f2468
    ...
    

Untuk informasi selengkapnya, lihat cara membuat dan mengelola jaringan virtual.

Mengonfigurasi VM agar dimulai ulang otomatis

Banyak perubahan konfigurasi VM, seperti perubahan pada setelan compute, mengharuskan VM dihentikan dan dimulai ulang agar perubahan dapat disinkronkan dengan instance VM yang sesuai (VirtualMachineInstance). VM yang berjalan di Google Distributed Cloud versi 1.13.0 atau yang lebih baru dapat dikonfigurasi untuk memulai ulang secara otomatis setiap kali Anda membuat perubahan pada konfigurasinya. Jika Anda untuk menggunakan fitur ini, Anda tidak perlu menghentikan dan memulai ulang VM saat Anda mengedit resource kustomnya. Runtime VM di GDC memantau VM dan, jika mendeteksi perubahan konfigurasi, VM akan memulai ulang secara otomatis untuk menyinkronkan perubahan.

Jika Anda menggunakan Config Sync untuk mengelola konfigurasi YAML {i>file<i}, fitur ini sangat berguna. Tanpa fitur ini, Anda harus menghentikan VM secara manual sebelum Anda membuat perubahan pada kustom VirtualMachine dan memulai VM secara manual setelah Anda menyelesaikan perubahan.

Untuk mengaktifkan mulai ulang otomatis:

  1. Gunakan kubectl untuk mengedit VM:

    kubectl edit gvm VM_NAME
    
  2. Di editor Anda, tambahkan kolom autoRestartOnConfigurationChange dan setel ke true.

    Anda dapat membuat perubahan tambahan pada VM, seperti mengupdate vcpus dengan sejumlah nilai. Jika Anda mengedit setelan compute, Runtime VM pada GDC akan dimulai ulang VM secara otomatis ketika Anda menyimpan perubahan.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      ...
      name: vm-sample-01
      namespace: default
      resourceVersion: "16711824"
      uid: ed623879-0cfa-52de-ad2c-b63308e6116c
    spec:
      autoRestartOnConfigurationChange: true
      compute:
        cpu:
          vcpus: 2
          ...
    
  3. Simpan dan tutup manifes VM.

    Jika Anda telah membuat perubahan lain pada VM yang perlu disinkronkan dengan instance VM yang sesuai, Runtime VM di GDC akan memulai ulang Pesan Suara. Jika Anda hanya melakukan perubahan untuk mengaktifkan mulai ulang otomatis, tanpa VM perlu dimulai ulang.

  4. Periksa status VM Anda:

    kubectl get gvm VM_NAME
    

    Tergantung seberapa cepat Anda mendapatkan VM, Anda mungkin melihat state: Starting sebagai VM dimulai ulang. Setelah VM berhasil dimulai ulang, Anda akan melihat state: Running. Perubahan konfigurasi berikutnya ke kustom VirtualMachine resource tidak mengharuskan Anda untuk menghentikan dan memulai VM secara manual. Setelah perubahan pada resource kustom akan ditampilkan di instance VM secara konsisten.

Perhatikan perilaku fitur situasional berikut:

  • Jika Anda menghentikan VM secara manual sebelum mengedit kustom VirtualMachine , perubahan konfigurasi tidak memicu {i>restart<i}. Yang dihentikan status VM sebelum perubahan konfigurasi dipertahankan.

  • Jika Anda telah membuat perubahan label atau penjadwalan untuk VM sebelum mengaktifkan fitur mulai ulang otomatis, menambahkan autoRestartOnConfigurationChange sekarang tanpa perubahan lain tidak memicu {i>restart<i}. Idealnya, fitur ini menjaga instance VM tetap konsisten dengan konfigurasi VM. Namun, Runtime VM di GDC tidak dapat mendeteksi inkonsistensi sebelumnya.

Langkah selanjutnya