Jika Anda ingin VM melakukan booting secepat mungkin, minimalkan waktu mulai mesin virtual (VM) dengan petunjuk di halaman ini. Meminimalkan waktu mulai akan mengorbankan efisiensi resourceproject Anda menggunakan resource tambahan, dan memiliki peningkatan permukaan keamanan.
Dokumen ini ditujukan untuk developer dalam grup operator aplikasi atau administrator platform yang mengonfigurasi waktu mulai instance VM di lingkungan Distributed Cloud. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.
Sebelum memulai
Untuk menggunakan perintah antarmuka command line (CLI) gdcloud, pastikan Anda telah mendownload, menginstal,
dan mengonfigurasi CLI gdcloud.
Semua perintah untuk Distributed Cloud menggunakan CLI gdcloud atau kubectl, dan memerlukan lingkungan sistem operasi (OS).
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.
Gunakan jalur ke file kubeconfig server Management API untuk mengganti
MANAGEMENT_API_SERVERdalam petunjuk ini.
Meminta peran IAM
Untuk meminimalkan waktu mulai VM, hubungi Admin IAM Project Anda untuk meminta peran Virtual Machine Project Admin (project-vm-admin).
Semua peran VM harus terikat ke namespace project tempat VM berada. Ikuti langkah-langkah untuk memverifikasi akses Anda.
Mempertahankan koneksi disk
Saat VM dimulai, memulai koneksi dari node VM ke disk VM memerlukan waktu beberapa detik. Agar VM dapat dimulai lebih cepat, koneksi disk harus tetap aktif saat VM dimatikan sehingga koneksi disk tidak dimulai ulang pada VM berikutnya. Untuk mencapainya, saat Anda menjalankan perintah untuk mengaktifkan koneksi disk keep-alive, sistem akan otomatis membuat pod dummy yang memasang semua disk VM.
Mengaktifkan koneksi disk keep-alive
Untuk mempertahankan koneksi disk untuk VM yang disebut VM_NAME di project PROJECT, jalankan perintah berikut. Saat Anda melakukannya, sistem akan otomatis membuat pod dummy:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/enable-connection-keep-alive: "true"
'
Ganti variabel di seluruh petunjuk ini, menggunakan definisi berikut.
| Variabel | Definisi |
|---|---|
MANAGEMENT_API_SERVER |
File kubeconfig server Management API. |
VM_NAME |
Nama VM. |
PROJECT |
Project GDC tempat VM berada. |
Saat koneksi disk keep-alive diaktifkan, pod bernama
disk-connection-keep-alive-VM_NAME akan dibuat di
project yang sama dengan VM. VM berikutnya dimulai ulang lebih cepat, begitu juga waktu mulai berikutnya, karena koneksi disk VM tetap aktif oleh pod.
Menyiapkan afinitas koneksi disk keep-alive
Penjadwal Kubernetes mungkin memilih node yang berbeda untuk VM saat dimulai ulang. Untuk mengurangi kemungkinan hal tersebut terjadi, konfigurasikan aturan afinitas antar-VM antara VM dan pod keep-alive. Konfigurasikan agar hal ini terjadi secara otomatis:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/add-connection-keep-alive-affinity: "true"
'
Tindakan ini akan menambahkan setelan afinitas pilihan pada VM ke pod keep-alive.
Peringatan
Ada dua peringatan yang harus diperhatikan untuk mempertahankan koneksi disk:
- Pod keep-alive akan menimbulkan penggunaan resource tambahan:
- Pod ini dihitung terhadap batas jumlah pod per node.
- Pod ini menggunakan alamat IP tambahan yang ditetapkan oleh Kubernetes.
- Pod ini menggunakan jumlah CPU dan memori tambahan yang dapat diabaikan.
- Permukaan keamanan meningkat, karena node tempat pod keep-alive berada selalu memiliki disk VM yang terpasang, bahkan saat VM dimatikan.
Menggunakan firmware BIOS
Di GDC, memulai VM dengan firmware Unified Extensible Firmware Interface (UEFI) lebih lambat daripada memulai VM dengan firmware BIOS.
Untuk memastikan waktu mulai minimal, tetapkan jenis firmware VM ke BIOS:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ -type merge --patch $' spec: firmware: type: bios enableSecureBoot: 'Jika VM berjalan, mulai ulang menggunakan petunjuk untuk memulai ulang VM.
Peringatan
Peringatan saat menggunakan firmware BIOS adalah firmware ini tidak mendukung booting aman.
Menggunakan boot disk besar
Untuk meminimalkan waktu mulai VM, lampirkan boot disk dengan ukuran 500 GB atau lebih besar ke VM.