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_PATH
Berikan 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 vmruntime
Tetapkan
enabled:true
dalam 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: qcow2
Di bagian
spec
sebelumnya, 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. KolomuseEmulation
secara default ditetapkan kefalse
, jika tidak ditentukan.vmImageFormat
: Mendukung dua nilai format image disk:raw
danqcow2
. Jika Anda tidak menyetelvmImageFormat
, VM Runtime di GDC akan menggunakan format image diskraw
untuk membuat VM. Formatraw
dapat 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
VMRuntime
diaktifkan:kubectl describe vmruntime vmruntime
Detail resource kustom
VMRuntime
mencakup bagianStatus
. Runtime VM di GDC diaktifkan dan berfungsi saatVMRuntime.Status.Ready
ditampilkan 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=true
Berikan jalur ke file kubeconfig untuk cluster Anda dan nilai untuk opsi konfigurasi berikut:
--force
: Setel ketrue
untuk 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 vmruntime
Tetapkan
enabled:false
dalam spesifikasi:apiVersion: vm.cluster.gke.io/v1` kind: VMRuntime metadata: name: vmruntime spec: enabled: false useEmulation: true vmImageFormat: qcow2
Simpan spesifikasi resource kustom yang diperbarui di editor Anda.
Untuk memverifikasi bahwa resource kustom
VMRuntime
dinonaktifkan, lihat pod yang berjalan di namespacevm-system
:kubectl get pods --namespace vm-system
VM Runtime di GDC dinonaktifkan jika hanya pod yang termasuk deployment
vmruntime-controller-manager
yang 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-SkipSchedule
di nodeBuat objek pemeriksaan awal GDC VM Runtime secara terpisah dengan menjalankan perintah
bmctl check vmruntimepfc --kubeconfig KUBECONFIG_PATH
atau 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_PATH
Output 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 21s
Untuk 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-system
Periksa 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