Meminimalkan waktu mulai VM

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 resource—project 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:

  1. Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.

  2. Gunakan jalur ke file kubeconfig server Management API untuk mengganti MANAGEMENT_API_SERVER dalam 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.

VariabelDefinisi
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.

  1. 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:
    '
    
  2. 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.