Dokumen ini menunjukkan cara mengaktifkan atau menonaktifkan Runtime VM di Google Distributed Cloud
dengan mengupdate resource kustom VMRuntime
atau menjalankan perintah bmctl
.
Sebelum memulai
Untuk mengaktifkan atau menonaktifkan Runtime VM 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 Runtime VM di GDC
Runtime VM di GDC diinstal secara otomatis di Google Distributed Cloud versi 1.10 atau yang lebih baru, tetapi dinonaktifkan secara default. Sebelum dapat menjalankan resource VM di Google Distributed Cloud, Anda harus mengaktifkan Runtime VM 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, jalurnya adalah
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
.Jika Runtime VM 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
: ditetapkan ke benar untuk mengaktifkan Runtime VM di GDCuseEmulation
: Jika node Anda tidak mendukung virtualisasi hardware, atau Anda tidak yakin, tetapkan nilai ke benar. Jika tersedia, virtualisasi hardware memberikan performa yang lebih baik daripada emulasi software. KolomuseEmulation
ditetapkan secara default kefalse
, jika tidak ditentukan.vmImageFormat
: Mendukung dua nilai format image disk:raw
danqcow2
. Jika Anda tidak menetapkanvmImageFormat
, Runtime VM di GDC akan menggunakan format image diskraw
untuk membuat VM. Formatraw
dapat memberikan performa yang lebih baik dibandingkanqcow2
, format copy on write, tetapi dapat menggunakan lebih banyak disk. Untuk 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
VMRuntime
diaktifkan:kubectl describe vmruntime vmruntime
Detail resource kustom
VMRuntime
menyertakan bagianStatus
. Runtime VM di GDC diaktifkan dan berfungsi saatVMRuntime.Status.Ready
ditampilkan sebagaitrue
.
Menonaktifkan Runtime VM di GDC
Jika tidak lagi memerlukan Runtime VM 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
: Tetapkan 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
Runtime VM di GDC dinonaktifkan jika hanya pod yang milik deployment
vmruntime-controller-manager
yang berjalan di namespace.
Memahami perilaku untuk menjalankan VM
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 ditetapkan ke false
, Runtime VM di GDC akan mencoba
melindungi VM yang sedang berjalan. Hapus semua VM yang berjalan sebelum Runtime VM di GDC dinonaktifkan, atau tentukan parameter --force=true
dengan perintah bmctl disable vmruntime
seperti yang ditunjukkan di bagian sebelumnya.
Tabel berikut menjelaskan hal yang terjadi pada VM yang berjalan saat anotasi ini
ditetapkan ke true
atau false
dan apakah Anda menentukan parameter --force=true
atau
tidak:
Status cluster | Parameter --force | Anotasi vmrumtime-force-disable | Perilaku |
---|---|---|---|
Tidak ada VM | T/A | T/A | Nonaktifkan Runtime VM di GDC. |
VM yang ada | Benar | Benar | Hapus semua VM yang berjalan dan resource terkait. Nonaktifkan Runtime VM di GDC. |
Benar | Salah | Hapus semua VM yang berjalan dan resource terkait. Nonaktifkan Runtime VM di GDC. | |
Salah | Benar | Permintaan untuk menghapus VM yang sedang berjalan dan resource terkait. Setelah semua VM yang berjalan dihapus, nonaktifkan Runtime VM di GDC. | |
Salah | Salah | Jangan hapus VM yang ada dan sedang berjalan. Jangan nonaktifkan Runtime VM di GDC. Perintah bmctl menampilkan error. |
Runtime VM di pemeriksaan pra-penerbangan GDC
Pemeriksaan pra-penerbangan Runtime VM di GDC memvalidasi serangkaian
prasyarat di lingkungan mesin sebelum menggunakan
Runtime VM di GDC dan VM. Pembuatan VM diblokir jika
pemeriksaan pra-penerbangan Runtime VM di GDC gagal. Pemeriksaan pra-penerbangan 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 pra-penerbangan Runtime VM di GDC berjalan saat Anda melakukan salah satu operasi berikut:
Mengaktifkan Runtime VM di GDC
Mengaktifkan Runtime VM pada fitur GDC, seperti useEmulation
Mengupgrade cluster
Menghapus label
kubevm.io/VM-SkipSchedule
di nodeBuat Runtime VM secara independen pada objek pemeriksaan pra-penerbangan GDC dengan menjalankan perintah
bmctl check vmruntimepfc --kubeconfig KUBECONFIG_PATH
atau menerapkan manifes YAMLVMRuntimePreflightCheck
.
Anda dapat meluncurkan VM saat Runtime VM terbaru pada pemeriksaan pra-penerbangan GDC berhasil. Jika pemeriksaan pra-penerbangan gagal, pembuatan VM akan diblokir dan Anda akan mendapatkan error pemeriksaan pra-penerbangan.
Memverifikasi keberhasilan pemeriksaan pra-penerbangan
Untuk memverifikasi apakah pemeriksaan pra-penerbangan 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-penerbangan, 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 ...
Pemeriksaan pra-penerbangan debug gagal
Jika pemeriksaan pra-penerbangan gagal, lakukan langkah-langkah berikut untuk men-debug:
Temukan pemeriksaan pra-penerbangan terakhir yang dilakukan.
kubectl get vmruntimepfc -n vm-system
Periksa status pemeriksaan pra-penerbangan 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 masalahnya dan jalankan Runtime VM di pemeriksaan pra-penerbangan GDC lagi. Berikut contoh manifes YAML VMRuntimePreflightCheck:
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntimePreflightCheck metadata: name: vmruntime-preflight-check-manual namespace: vm-system