Dokumen ini menunjukkan cara mengaktifkan atau menonaktifkan VM Runtime di Google Distributed Cloud
dengan memperbarui resource kustom VMRuntime atau menjalankan perintah bmctl.
Sebelum memulai
Untuk mengaktifkan atau menonaktifkan VM Runtime di GDC, Anda memerlukan akses ke resource dan alat berikut:
- Akses ke cluster Google Distributed Cloud versi 1.12.0 (
anthosBareMetalVersion: 1.12.0) atau yang lebih tinggi. Anda dapat menggunakan jenis cluster apa pun yang dapat menjalankan beban kerja. Jika diperlukan, coba Google Distributed Cloud di Compute Engine atau lihat ringkasan pembuatan cluster. - Alat command line
bmctl. Untuk mengetahui informasi selengkapnya, lihat Mendownload dan menginstal alatbmctl.
Mengaktifkan VM Runtime di GDC
VM Runtime di GDC diinstal secara otomatis di Google Distributed Cloud versi 1.10 atau yang lebih tinggi, tetapi dinonaktifkan secara default. Sebelum dapat menjalankan resource VM di Google Distributed Cloud, Anda harus mengaktifkan VM Runtime di GDC.
bmctl
Untuk mengaktifkan runtime, gunakan alat
bmctl:bmctl enable vmruntime --kubeconfig KUBECONFIG_PATHBerikan jalur ke file kubeconfig untuk cluster Anda. Google Distributed Cloud membuat file kubeconfig di workstation admin saat Anda membuat cluster. Secara default, jalur ini adalah
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.Jika VM Runtime di GDC sudah diaktifkan, perintah akan menampilkan error.
Setelan tambahan, seperti untuk emulasi atau format gambar, dapat dikonfigurasi
dengan mengedit resource kustom VMRuntime.
Resource kustom
Untuk mengaktifkan runtime, perbarui resource kustom VMRuntime. Resource kustom ini diinstal secara default.
Edit resource kustom
VMRuntime:kubectl edit vmruntimeTetapkan
enabled:truedalam spesifikasi:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true # useEmulation defaults to "false" if not set. useEmulation: true # vmImageFormat defaults to "qcow2" if not set. vmImageFormat: qcow2Di bagian
specsebelumnya, nilai berikut dapat ditetapkan:enabled: disetel ke benar (true) untuk mengaktifkan VM Runtime di GDCuseEmulation: Jika node Anda tidak mendukung virtualisasi hardware, atau Anda tidak yakin, tetapkan nilai ke benar (true). Jika tersedia, virtualisasi hardware memberikan performa yang lebih baik daripada emulasi software. KolomuseEmulationsecara default ditetapkan kefalse, jika tidak ditentukan.vmImageFormat: Mendukung dua nilai format image disk:rawdanqcow2. Jika Anda tidak menyetelvmImageFormat, VM Runtime di GDC akan menggunakan format image diskrawuntuk membuat VM. Formatrawdapat memberikan peningkatan performa dibandingkanqcow2, format salin saat menulis, tetapi dapat menggunakan lebih banyak disk. Untuk mengetahui informasi selengkapnya tentang format gambar untuk VM Anda, lihat Format file image disk dalam dokumentasi QEMU.
Simpan resource kustom di editor Anda.
Pastikan resource kustom
VMRuntimediaktifkan:kubectl describe vmruntime vmruntimeDetail resource kustom
VMRuntimemencakup bagianStatus. Runtime VM di GDC diaktifkan dan berfungsi saatVMRuntime.Status.Readyditampilkan sebagaitrue.
Menonaktifkan VM Runtime di GDC
Jika tidak perlu lagi menggunakan VM Runtime di GDC, Anda dapat menonaktifkan fitur ini.
bmctl
Untuk menonaktifkan runtime, gunakan alat
bmctl:bmctl disable vmruntime --kubeconfig KUBECONFIG_PATH \ --force=trueBerikan jalur ke file kubeconfig untuk cluster Anda dan nilai untuk opsi konfigurasi berikut:
--force: Setel ketrueuntuk mengonfirmasi bahwa Anda ingin menghapus resource VM yang ada. Nilai defaultnya adalahfalse.
Resource kustom
Untuk menonaktifkan runtime, perbarui resource kustom VMRuntime:
Edit resource kustom
VMRuntime:kubectl edit vmruntimeTetapkan
enabled:falsedalam spesifikasi:apiVersion: vm.cluster.gke.io/v1` kind: VMRuntime metadata: name: vmruntime spec: enabled: false useEmulation: true vmImageFormat: qcow2Simpan spesifikasi resource kustom yang diperbarui di editor Anda.
Untuk memverifikasi bahwa resource kustom
VMRuntimedinonaktifkan, lihat pod yang berjalan di namespacevm-system:kubectl get pods --namespace vm-systemVM Runtime di GDC dinonaktifkan jika hanya pod yang termasuk deployment
vmruntime-controller-manageryang berjalan di namespace.
Memahami perilaku untuk VM yang berjalan
Anotasi baremetal.cluster.gke.io/vmrumtime-force-disable dapat digunakan pada
VM Runtime di resource GDC untuk menentukan perilaku saat runtime dinonaktifkan
saat VM berjalan di cluster.
Contoh berikut menunjukkan bahwa nilai anotasi ini ditetapkan ke false
secara default:
// VM runtime yaml file
apiVersion: vm.cluster.gke.io/v1
kind: VMRuntime
metadata:
annotations:
baremetal.cluster.gke.io/vmrumtime-force-disable: "false"
name: vmruntime
[...]
Jika anotasi ini disetel ke false, VM Runtime di GDC akan mencoba
melindungi VM yang sedang berjalan. Hapus semua VM yang sedang berjalan sebelum
VM Runtime di GDC dinonaktifkan, atau tentukan parameter --force=true
dengan perintah bmctl disable vmruntime seperti yang ditunjukkan di bagian
sebelumnya.
Tabel berikut menjelaskan apa yang terjadi pada VM yang sedang berjalan saat anotasi ini ditetapkan ke true atau false dan jika Anda menentukan parameter --force=true atau tidak:
| Status cluster | --force parameter | Anotasi vmrumtime-force-disable | Perilaku |
|---|---|---|---|
| Tidak ada VM | T/A | T/A | Nonaktifkan VM Runtime di GDC. |
| VM yang ada | Benar | Benar | Hapus semua VM yang sedang berjalan dan resource terkait. Nonaktifkan VM Runtime di GDC. |
| Benar | Salah | Hapus semua VM yang sedang berjalan dan resource terkait. Nonaktifkan VM Runtime di GDC. | |
| Salah | Benar | Minta untuk menghapus VM yang sedang berjalan dan resource terkait. Setelah semua VM yang sedang berjalan dihapus, nonaktifkan VM Runtime di GDC. | |
| Salah | Salah | Jangan menghapus VM yang ada dan sedang berjalan. Jangan menonaktifkan
Runtime VM di GDC. Perintah bmctl menampilkan
error. |
Pemeriksaan awal VM Runtime di GDC
Pemeriksaan pra-penerbangan VM Runtime di GDC memvalidasi serangkaian prasyarat di lingkungan komputer sebelum menggunakan VM Runtime di GDC dan VM. Pembuatan VM diblokir jika pemeriksaan awal VM Runtime di GDC gagal. Pemeriksaan awal VM Runtime di GDC berjalan secara otomatis saat
spec.enabled disetel ke benar (true).
kubectl label nodes NODE_NAME "kubevm.io/VM-SkipSchedule"= --kubeconfig KUBECONFIG_PATH
Pemeriksaan pendahuluan VM Runtime di GDC berjalan saat Anda melakukan salah satu operasi berikut:
Mengaktifkan VM Runtime di GDC
Mengaktifkan fitur VM Runtime di GDC, seperti useEmulation
Mengupgrade cluster
Menghapus label
kubevm.io/VM-SkipScheduledi nodeBuat objek pemeriksaan awal GDC VM Runtime secara terpisah dengan menjalankan perintah
bmctl check vmruntimepfc --kubeconfig KUBECONFIG_PATHatau menerapkan manifes YAMLVMRuntimePreflightCheck.
Anda dapat meluncurkan VM saat pemeriksaan awal VM Runtime terbaru di GDC berhasil. Jika pemeriksaan pra-peluncuran gagal, pembuatan VM akan diblokir dan Anda akan mendapatkan error pemeriksaan pra-peluncuran.
Memverifikasi keberhasilan pemeriksaan preflight
Untuk memverifikasi apakah pemeriksaan awal berhasil, jalankan perintah berikut:
Temukan pemeriksaan pra-penerbangan terakhir yang dilakukan:
kubectl get vmruntimepfc -n vm-system --kubeconfig KUBECONFIG_PATHOutput akan terlihat seperti contoh berikut:
NAME PASS AGE vmruntime-preflight-check-6ee61513-ea5d-4340-9374-90396cac129e false 42s vmruntime-preflight-check-f8d71751-a01c-471e-bab5-3370fc2addd5 true 21sUntuk menemukan status pemeriksaan pra-peluncuran, jalankan perintah berikut:
kubectl get vmruntime vmruntime -o yaml --kubeconfig KUBECONFIG_PATH... preflightCheckSummary: preflightCheckSummary: featureStatuses: CPU: passed: true KVM: passed: true preflightCheckName: vmruntime-preflight-check-f8d71751-a01c-471e-bab5-3370fc2addd5 preflightCheckPassed: true ...
Men-debug kegagalan pemeriksaan preflight
Jika pemeriksaan awal gagal, lakukan langkah-langkah berikut untuk men-debug:
Temukan pemeriksaan pra-penerbangan terakhir yang dilakukan.
kubectl get vmruntimepfc -n vm-systemPeriksa status pemeriksaan preflight tersebut untuk mengetahui detailnya.
kubectl get vmruntimepfc -n vm-system \ vmruntime-preflight-check-6ee61513-ea5d-4340-9374-90396cac129e -o yaml \ --kubeconfig KUBECONFIG_PATH... status: checks: worker-0--52229ee15841099-22c41577139a7b8c.lab.anthos: passed: false results: - checkName: CPU passed: true - checkName: KVM message: | command terminated with exit code 1 ls: /mnt/dev/kvm: No such file or directory passed: false ...Perbaiki masalah dan jalankan pemeriksaan pra-penerbangan VM Runtime di GDC lagi. Berikut adalah contoh manifes YAML VMRuntimePreflightCheck:
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntimePreflightCheck metadata: name: vmruntime-preflight-check-manual namespace: vm-system