Dokumen ini menunjukkan cara mengaktifkan atau menonaktifkan Runtime VM di Google Distributed Cloud
dengan memperbarui resource kustom VMRuntime
atau menjalankan perintah bmctl
.
Sebelum memulai
Untuk mengaktifkan atau menonaktifkan Runtime VM di GDC, Anda memerlukan akses ke referensi 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 mampu menjalankan sebagian besar workload standar dan berbasis cloud. Jika diperlukan, coba Google Distributed Cloud di Compute Engine atau lihat ringkasan pembuatan cluster. - Alat command line
bmctl
. Untuk informasi selengkapnya, lihat Download dan instal alatbmctl
.
Mengaktifkan Runtime VM di GDC
Runtime VM di GDC diinstal otomatis di Google Distributed Cloud versi 1.10 atau yang lebih tinggi, tetapi dinonaktifkan secara default. Sebelum Anda dapat menjalankan VM resource 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 admin saat membuat cluster. Secara {i>default<i}, jalurnya adalah
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
.Jika Runtime VM di GDC sudah diaktifkan, perintah akan menampilkan sebuah {i>error<i}.
Setelan tambahan, seperti untuk emulasi atau format gambar, dapat dikonfigurasi
dengan mengedit resource kustom VMRuntime
.
Resource kustom
Untuk mengaktifkan runtime, update resource kustom VMRuntime
. Kustom ini
resource 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 true (benar) untuk mengaktifkan Runtime VM di GDCuseEmulation
: Jika node Anda tidak mendukung virtualisasi hardware, atau Anda tidak yakin, tetapkan nilainya ke true. Jika tersedia, hardware virtualisasi memberikan kinerja yang lebih baik daripada emulasi perangkat lunak. Tujuan Jika tidak ditentukan, kolomuseEmulation
akan ditetapkan secara default kefalse
.vmImageFormat
: Mendukung dua nilai format disk image:raw
danqcow2
. Jika Anda tidak menetapkanvmImageFormat
, VM Runtime di GDC menggunakan format disk imageraw
untuk membuat atau VM. Formatraw
dapat memberikan performa yang lebih baik selamaqcow2
, menyalin dalam format tulis, tetapi mungkin menggunakan lebih banyak {i>disk<i}. Untuk mengetahui informasi selengkapnya tentang format image untuk VM Anda. Format file gambar disk dalam dokumentasi QEMU.
Simpan resource kustom di editor Anda.
Pastikan resource kustom
VMRuntime
telah diaktifkan:kubectl describe vmruntime vmruntime
Detail resource kustom
VMRuntime
mencakup bagianStatus
. Runtime VM di GDC diaktifkan dan berfungsi saatVMRuntime.Status.Ready
ditampilkan sebagaitrue
.
Nonaktifkan Runtime VM di GDC
Jika tidak perlu lagi menggunakan 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
: Setel ketrue
untuk mengonfirmasi bahwa Anda ingin menghapus VM yang ada Google Cloud Platform. Nilai defaultnya adalahfalse
.
Resource kustom
Untuk menonaktifkan runtime, update 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 telah diupdate 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 hanya jika 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 di
Runtime VM pada resource GDC untuk menentukan perilaku saat runtime sedang
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
, Runtime VM di GDC akan mencoba
untuk melindungi VM yang berjalan. Hapus semua VM yang berjalan sebelum
Runtime VM di GDC dinonaktifkan, atau tentukan --force=true
dengan perintah bmctl disable vmruntime
seperti yang ditunjukkan dalam
bagian.
Tabel berikut menjelaskan apa yang terjadi pada VM yang berjalan saat anotasi ini
ditetapkan ke true
atau false
dan jika Anda menentukan parameter --force=true
atau
bukan:
Status cluster | --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 | Perintah untuk menghapus VM yang berjalan dan resource terkait. Saat semua berjalan VM telah dihapus, nonaktifkan Runtime VM di GDC. | |
Salah | Salah | Jangan menghapus VM yang sedang berjalan. Jangan nonaktifkan
Runtime VM di GDC. Perintah bmctl akan menampilkan
{i>error<i}. |
Runtime VM pada pemeriksaan preflight GDC
Pemeriksaan preflight VM Runtime pada GDC memvalidasi serangkaian
tentang lingkungan komputer, sebelum menggunakan
Runtime VM di GDC dan VM. Pembuatan VM diblokir jika
Runtime VM pada pemeriksaan preflight GDC gagal. Tujuan
Runtime VM pada pemeriksaan preflight GDC berjalan secara otomatis saat
spec.enabled
ditetapkan ke benar (true).
kubectl label nodes NODE_NAME "kubevm.io/VM-SkipSchedule"= --kubeconfig KUBECONFIG_PATH
Runtime VM pada pemeriksaan preflight GDC berjalan saat Anda melakukan salah satu operasi berikut:
Mengaktifkan Runtime VM di GDC
Mengaktifkan Runtime VM di fitur GDC, seperti useEmulation
Upgrade cluster
Hapus label
kubevm.io/VM-SkipSchedule
di nodeMembuat Runtime VM secara independen pada objek pemeriksaan preflight GDC dengan menjalankan perintah
bmctl check vmruntimepfc --kubeconfig KUBECONFIG_PATH
atau menerapkan Manifes YAMLVMRuntimePreflightCheck
.
Anda dapat meluncurkan VM saat Runtime VM terbaru pada pemeriksaan preflight GDC berhasil. Jika pemeriksaan preflight gagal, pembuatan VM diblokir dan Anda mendapatkan error pemeriksaan preflight.
Memverifikasi keberhasilan pemeriksaan preflight
Untuk memverifikasi apakah pemeriksaan preflight berhasil, jalankan perintah berikut:
Temukan pemeriksaan preflight terakhir yang dilakukan:
kubectl get vmruntimepfc -n vm-system --kubeconfig KUBECONFIG_PATH
Output-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 21s
Untuk menemukan status pemeriksaan preflight, 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 preflight debug gagal
Jika pemeriksaan preflight gagal, lakukan langkah-langkah berikut untuk men-debug:
Menemukan pemeriksaan preflight 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 kembali VM Runtime pada pemeriksaan preflight GDC. Tujuan berikut ini menunjukkan contoh manifes YAML VMRuntimePreflightCheck:
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntimePreflightCheck metadata: name: vmruntime-preflight-check-manual namespace: vm-system