Dokumen ini ditujukan bagi pemilik aplikasi yang menggunakan VM Runtime di GDC untuk menjalankan virtual machine (VM) dalam cluster yang dibuat dengan Google Distributed Cloud (khusus software) di bare metal. Dokumen ini menunjukkan cara mengedit VM yang berjalan di cluster bare metal. Misalnya, Anda dapat mengedit alokasi resource, seperti CPU dan memori, atau mengubah jaringan yang terhubung ke VM.
Anda dapat mengubah kolom apa pun di bagian spec dari resource VirtualMachine.
Anda juga dapat mengedit label untuk VM. Kolom lain, seperti nama VM
(metadata.name), tidak dapat diedit. Secara default, VM Anda harus dalam status Stopped
sebelum Anda mengedit resource. Namun, mulai dari
Google Distributed Cloud versi 1.13.0, Anda dapat mengonfigurasi VirtualMachine
resource agar dimulai ulang secara otomatis setiap kali Anda mengubah
konfigurasi.
Jika pengeditan Anda pada resource VirtualMachine berisi error saat Anda menyimpannya, perubahan akan ditolak dan Anda akan melihat notifikasi. Perbaiki error, lalu coba simpan resource VirtualMachine lagi. Jika VM Anda tidak
dapat dimulai setelah Anda melakukan perubahan, gunakan perintah
kubectl describe gvm VM_NAME untuk
melihat informasi pemecahan masalah dan memperbaiki error.
Sebelum memulai
Untuk menyelesaikan dokumen ini, Anda memerlukan akses ke resource berikut:
- VM yang berjalan di salah satu cluster Anda. Jika perlu, buat VM di cluster bare metal.
- Alat klien virtctldiinstal sebagai plugin untukkubectl. Jika perlu, instal alat klien virtctl.
Mengedit resource komputasi
Jika permintaan beban kerja komputasi Anda berubah, Anda dapat memperbarui jumlah CPU virtual dan jumlah memori virtual yang Anda tetapkan ke VM Anda. Untuk mengedit workload komputasi, selesaikan langkah-langkah berikut:
- Hentikan VM yang ingin Anda edit: - kubectl virt stop VM_NAME- Ganti - VM_NAMEdengan nama VM yang ingin Anda hentikan.
- Gunakan - kubectluntuk mengedit VM:- kubectl edit gvm VM_NAME- Ganti - VM_NAMEdengan nama VM yang ingin Anda edit.
- Di editor, perbarui nilai resource komputasi yang ingin Anda ubah. - Misalnya, contoh manifes - VirtualMachineberikut menunjukkan bahwa resource VM memiliki- 2vCPU 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 di editor Anda, seperti yang ditunjukkan dalam contoh berikut: - apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... compute: cpu: vcpus: 4 ...
- Simpan dan tutup manifes VM. 
- Mulai VM yang Anda edit: - kubectl virt start VM_NAME- Ganti - VM_NAMEdengan nama VM yang Anda edit.
- Periksa - STATUSVM Anda:- kubectl get gvm VM_NAME- Pastikan VM Anda dalam status - Running. Jika VM Anda meminta lebih banyak resource komputasi daripada yang dapat disediakan host, VM Anda tidak dapat dimulai. Jika VM tidak dalam status- Running, periksa manifes resource- VirtualMachinedan ketersediaan resource komputasi di host.- Contoh output berikut menunjukkan VM dalam status - Running:- NAME STATUS AGE IP vm1 Running 1m 192.168.2.72
- Melihat informasi mendetail tentang VM menggunakan - kubectl describe gvm:- kubectl describe gvm VM_NAME- Ganti - VM_NAMEdengan nama VM yang Anda edit.- Contoh output berikut menunjukkan informasi ringkas untuk VM, dengan perubahan pada 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 mengetahui informasi selengkapnya, lihat cara membuat VM dengan konfigurasi komputasi memori dan vCPU tertentu.
Mengedit resource disk
Jika persyaratan penyimpanan Anda berubah, Anda dapat menambahkan atau menghapus disk virtual ke VM. Untuk mengedit disk yang terpasang ke VM Anda, selesaikan langkah-langkah berikut:
- Hentikan VM yang ingin Anda edit: - kubectl virt stop VM_NAME- Ganti - VM_NAMEdengan nama VM yang ingin Anda hentikan.
- Gunakan - kubectluntuk mengedit VM:- kubectl edit gvm VM_NAME- Ganti - VM_NAMEdengan nama VM yang ingin Anda edit.
- Di editor, perbarui bagian - spec.disksuntuk melampirkan atau melepaskan disk.- Misalnya, contoh manifes - VirtualMachineberikut menunjukkan bahwa hanya boot disk yang 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 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_NAMEdengan nama disk yang akan dilampirkan.
- Simpan dan tutup manifes VM. 
- Mulai VM yang Anda edit: - kubectl virt start VM_NAME- Ganti - VM_NAMEdengan nama VM yang Anda edit.
- Periksa - STATUSVM Anda:- kubectl get gvm VM_NAME- Pastikan VM Anda dalam status - Running. Jika VM Anda meminta- StorageClassatau penetapan disk yang tidak dapat disediakan host, VM Anda tidak dapat dimulai. Jika VM tidak dalam status- Running, periksa manifes resource- VirtualMachinedan- VirtualMachineDiskserta dukungan penyimpanan host Anda.
- Melihat informasi mendetail tentang VM menggunakan - kubectl describe gvm:- kubectl describe gvm VM_NAME- Ganti - VM_NAMEdengan nama VM yang Anda edit.- Contoh output berikut menunjukkan informasi ringkas untuk VM, dengan perubahan pada disk terlampir yang 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 mengetahui informasi selengkapnya, lihat cara membuat dan mengelola disk.
Mengedit resource jaringan
Seiring perubahan infrastruktur, Anda mungkin ingin mengubah konfigurasi jaringan untuk VM. Misalnya, Anda mungkin ingin menghubungkan VM ke jaringan virtual lain atau menetapkan alamat IP secara manual. Untuk mengedit konfigurasi jaringan VM, selesaikan langkah-langkah berikut:
- Hentikan VM yang ingin Anda edit: - kubectl virt stop VM_NAME- Ganti - VM_NAMEdengan nama VM yang ingin Anda hentikan.
- Gunakan - kubectluntuk mengedit VM:- kubectl edit gvm VM_NAME- Ganti - VM_NAMEdengan nama VM yang ingin Anda edit.
- Di editor, perbarui setelan konfigurasi jaringan yang ingin Anda ubah. - Misalnya, manifes - VirtualMachinecontoh berikut menunjukkan bahwa VM terhubung ke jaringan bernama- backend-vlan100dan menggunakan DHCP karena tidak ada alamat IP yang ditentukan:- 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 alamat IP manual, perbarui konfigurasi jaringan di editor Anda, seperti yang ditunjukkan dalam 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_NAMEdengan nama jaringan yang akan dihubungkan, atau tambahkan bagian- ipAddressesdan tentukan- IP_ADDRESSyang akan digunakan VM Anda.
- Simpan dan tutup manifes VM. 
- Mulai VM yang Anda edit: - kubectl virt start VM_NAME- Ganti - VM_NAMEdengan nama VM yang Anda edit.
- Periksa - STATUSVM Anda:- kubectl get gvm VM_NAME- Pastikan VM Anda dalam status - Running. Jika VM Anda meminta koneksi jaringan yang tidak dapat disediakan oleh host, VM Anda tidak dapat dimulai. Jika VM tidak dalam status- Running, periksa manifes resource- VirtualMachinedan dukungan jaringan host Anda.
- Melihat informasi mendetail tentang VM menggunakan - kubectl describe gvm:- kubectl describe gvm VM_NAME- Ganti - VM_NAMEdengan nama VM yang Anda edit.- Contoh output berikut menunjukkan informasi ringkas untuk VM, dengan perubahan pada konfigurasi alamat IP dan jaringan yang 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 mengetahui informasi selengkapnya, lihat cara membuat dan mengelola jaringan virtual.
Mengonfigurasi VM untuk memulai ulang otomatis
Banyak perubahan konfigurasi VM, seperti perubahan pada setelan compute, mengharuskan VM dihentikan dan dimulai ulang agar perubahan disinkronkan dengan instance VM yang sesuai (VirtualMachineInstance). VM yang berjalan di cluster versi 1.13.0 atau yang lebih tinggi dapat dikonfigurasi untuk dimulai ulang secara otomatis setiap kali Anda membuat perubahan pada konfigurasinya. Saat mengonfigurasi VM untuk menggunakan fitur ini, Anda tidak perlu menghentikan dan memulai ulang VM saat mengedit resource kustomnya. VM Runtime di GDC memantau VM dan, jika mendeteksi perubahan konfigurasi, VM akan dimulai ulang secara otomatis untuk menyinkronkan perubahan.
Jika Anda menggunakan Config Sync untuk mengelola file konfigurasi YAML, fitur ini sangat berguna. Tanpa fitur ini, Anda harus menghentikan VM secara manual sebelum membuat perubahan pada resource kustom VirtualMachine dan memulai VM secara manual setelah menyelesaikan perubahan.
Untuk mengaktifkan mulai ulang otomatis:
- Gunakan - kubectluntuk mengedit VM:- kubectl edit gvm VM_NAME
- Di editor, tambahkan kolom - autoRestartOnConfigurationChangedan tetapkan ke- true.- Anda dapat melakukan perubahan tambahan pada VM, seperti memperbarui nilai - vcpus. Jika Anda mengedit setelan- compute, VM Runtime di GDC akan memulai ulang VM Anda secara otomatis saat 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 ...
- Simpan dan tutup manifes VM. - Jika Anda telah melakukan perubahan lain pada VM yang perlu disinkronkan dengan instance VM yang sesuai, VM Runtime di GDC akan memulai ulang VM. Jika Anda hanya melakukan perubahan untuk mengaktifkan mulai ulang otomatis, VM tidak perlu dimulai ulang. 
- Periksa - statusVM Anda:- kubectl get gvm VM_NAME- Bergantung pada seberapa cepat Anda mendapatkan VM, Anda mungkin melihat - state: Startingsaat VM dimulai ulang. Setelah VM berhasil dimulai ulang, Anda akan melihat- state: Running. Perubahan konfigurasi berikutnya pada resource kustom- VirtualMachinetidak mengharuskan Anda menghentikan dan memulai VM secara manual. Perubahan berikutnya pada resource kustom akan tercermin secara konsisten di instance VM.
Perhatikan perilaku fitur situasional berikut:
- Jika Anda menghentikan VM secara manual sebelum mengedit resource kustom - VirtualMachine, perubahan konfigurasi tidak akan memicu mulai ulang. Status VM yang dihentikan sebelum perubahan konfigurasi dipertahankan.
- Jika Anda telah membuat perubahan label atau penjadwalan untuk VM sebelum mengaktifkan fitur mulai ulang otomatis, menambahkan - autoRestartOnConfigurationChangesekarang tanpa perubahan lain tidak akan memicu mulai ulang. Idealnya, fitur ini membuat instance VM tetap konsisten dengan konfigurasi VM. Namun, VM Runtime di GDC tidak dapat mendeteksi inkonsistensi sebelumnya.