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 workload. 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 otomatis diinstal 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 format emulasi atau 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:truedi spec: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: ditetapkan ke true untuk mengaktifkan VM Runtime di GDCuseEmulation: Jika node Anda tidak mendukung virtualisasi hardware, atau Anda tidak yakin, tetapkan nilainya ke true. Jika tersedia, virtualisasi hardware memberikan performa yang lebih baik daripada emulasi software. KolomuseEmulationditetapkan kefalsesecara default, jika tidak ditentukan.vmImageFormat: Mendukung dua nilai format image disk:rawdanqcow2. Jika Anda tidak menetapkanvmImageFormat, VM Runtime di GDC akan menggunakan format image diskrawuntuk membuat VM. Formatrawdapat memberikan performa yang lebih baik daripadaqcow2, format salin saat tulis, tetapi dapat menggunakan lebih banyak disk. Untuk mengetahui informasi selengkapnya tentang format image 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. VM Runtime di GDC diaktifkan dan berfungsi saatVMRuntime.Status.Readyditampilkan sebagaitrue.
Menonaktifkan VM Runtime di GDC
Jika tidak lagi perlu 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: Tetapkan 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:falsedi spec: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 dalam deployment
vmruntime-controller-manageryang berjalan di namespace.
Memahami perilaku untuk menjalankan VM
Anotasi baremetal.cluster.gke.io/vmrumtime-force-disable dapat digunakan pada resource VM Runtime di 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 ditetapkan 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 | Parameter --force | Anotasi vmrumtime-force-disable | Perilaku |
|---|---|---|---|
| Tidak ada VM | T/A | T/A | Menonaktifkan VM Runtime di GDC. |
| VM yang ada | Benar | Benar | Menghapus semua VM yang sedang berjalan dan resource terkait. Menonaktifkan the VM Runtime di GDC. |
| Benar | Salah | Menghapus semua VM yang sedang berjalan dan resource terkait. Menonaktifkan the VM Runtime di GDC. | |
| Salah | Benar | Meminta untuk menghapus VM yang sedang berjalan dan resource terkait. Setelah semua VM yang sedang berjalan dihapus, nonaktifkan VM Runtime di GDC. | |
| Salah | Salah | Jangan hapus VM yang ada dan sedang berjalan. Jangan nonaktifkan the
VM Runtime di GDC. Perintah bmctl menampilkan
error. |
Pemeriksaan awal VM Runtime di GDC
Pemeriksaan awal VM Runtime di GDC memvalidasi serangkaian prasyarat di lingkungan mesin 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 ditetapkan ke true.
kubectl label nodes NODE_NAME "kubevm.io/VM-SkipSchedule"= --kubeconfig KUBECONFIG_PATH
Pemeriksaan awal 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 nodeMembuat objek pemeriksaan awal VM Runtime di GDC secara independen dengan menjalankan perintah
bmctl check vmruntimepfc --kubeconfig KUBECONFIG_PATHatau menerapkan manifes YAMLVMRuntimePreflightCheck.
Anda dapat meluncurkan VM saat pemeriksaan awal VM Runtime di GDC terbaru berhasil. Jika pemeriksaan awal gagal, pembuatan VM akan diblokir dan Anda akan mendapatkan error pemeriksaan awal.
Memverifikasi keberhasilan pemeriksaan awal
Untuk memverifikasi apakah pemeriksaan awal berhasil, jalankan perintah berikut:
Temukan pemeriksaan awal terakhir yang dilakukan:
kubectl get vmruntimepfc -n vm-system --kubeconfig KUBECONFIG_PATHOutput-nya 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 awal, 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 awal
Jika pemeriksaan awal gagal, lakukan langkah-langkah berikut untuk men-debug:
Temukan pemeriksaan awal terakhir yang dilakukan.
kubectl get vmruntimepfc -n vm-systemPeriksa status pemeriksaan awal 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 awal VM Runtime di GDC lagi. Berikut menunjukkan contoh manifes YAML VMRuntimePreflightCheck:
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntimePreflightCheck metadata: name: vmruntime-preflight-check-manual namespace: vm-system