Anda dapat membuat image kustom dari disk sumber yang ada dan menggunakannya untuk membuat dan memulai mesin virtual (VM). Image kustom ideal untuk digunakan saat Anda telah membuat dan mengubah persistent boot disk ke status tertentu, dan perlu menyimpan status tersebut untuk membuat VM. Membuat dan menyimpan image kustom untuk digunakan sebagai image VM baru dalam pembuatan VM di masa mendatang akan mencegah duplikasi langkah-langkah penyiapan Anda nanti.
Sebelum memulai
Untuk menggunakan perintah antarmuka command line (CLI)gdcloud, pastikan Anda telah mendownload, menginstal,
dan mengonfigurasi CLI gdcloud.
Semua perintah untuk appliance GDC air-gapped menggunakan CLI gdcloud atau
kubectl, dan memerlukan lingkungan Linux.
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
Temukan nama server Management API, atau tanyakan kepada Administrator Platform (PA) Anda nama servernya.
Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.
Gunakan jalur untuk menggantikan
MANAGEMENT_API_SERVER{"</var>"}}dalam petunjuk ini.
Meminta izin dan akses
Untuk membuat image kustom, Anda harus memiliki akses image VM tingkat project. Ikuti
langkah-langkah yang diberikan untuk
Project IAM Admin Anda
guna menetapkan peran Project VirtualMachine Image Admin (project-vm-image-admin)
kepada Anda di namespace project tempat VM berada. Jika Anda menggunakan
konsol GDC atau gdcloud CLI untuk membuat image, Anda
juga memerlukan peran Project VirtualMachine Admin (project-vm-admin) dan
Project Viewer (project-viewer).
Membuat image kustom
Bagian ini menjelaskan cara membuat image kustom di VM Linux.
Menyiapkan VM untuk image
Anda dapat membuat image dari disk saat disk terpasang ke VM yang sedang berjalan. Namun, image Anda akan lebih andal jika Anda menempatkan VM ke dalam status agar image dapat diambil.
Meminimalkan penulisan data ke persistent disk
Gunakan salah satu proses berikut untuk mengurangi penulisan disk. Hentikan VM, atau minimalkan penulisan ke disk:
- Hentikan VM agar VM dapat dimatikan dan berhenti menulis data apa pun ke persistent disk.
Jika Anda tidak dapat menghentikan VM sebelum membuat image, minimalkan penulisan ke disk dan sinkronkan sistem file Anda. Untuk meminimalkan penulisan ke persistent disk, ikuti langkah-langkah berikut:
- Jeda aplikasi atau proses OS yang menulis data ke persistent disk tersebut. Jalankan penghapusan aplikasi ke disk, jika perlu. Aplikasi lain mungkin memiliki proses yang serupa.
- Hentikan aplikasi Anda agar tidak menulis ke persistent disk.
- Jalankan
sudo sync.
Buat gambar
Ikuti langkah-langkah berikut untuk membuat image disk dari persistent disk, bahkan saat disk tersebut terpasang ke VM:
Konsol
Pilih project.
Di menu navigasi, klik Virtual Machines > Images.
Klik Buat Gambar.
Masukkan nama unik untuk gambar. Nama tidak boleh lebih dari 35 karakter.
Masukkan versi yang akan ditambahkan ke nama gambar.
Di kolom Source Disk, pilih disk.
Di Minimum Disk Size field, masukkan ukuran disk.
Masukkan deskripsi gambar.
Klik Buat.
Gambar akan muncul dalam daftar gambar.
API
Mencantumkan semua objek
VirtualMachineDisk:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachinedisks.virtualmachine.gdc.goog --namespace PROJECTPilih objek
VirtualMachineDiskyang akan digunakan sebagai disk sumber untuk image baru.Periksa apakah disk VM terpasang ke VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachinedisks.virtualmachine.gdc.goog --namespace PROJECT \ DISK_NAME -o jsonpath='{.status.virtualMachineAttachments}'Contoh output yang menunjukkan bahwa disk terpasang ke VM:
[{"autoDelete":true,"nameRef":{"name":"vm1"},"uid":"...."}]- Jika output menampilkan nilai untuk
"name", disk terpasang ke VM yang ditandai dengan kolomname. Dalam output contoh ini, nilainya adalahvm1. Lanjutkan untuk memeriksa status VM yang sedang berjalan. - Jika output kosong, lanjutkan ke mendapatkan
sizedariVirtualMachineDisk.
- Periksa
status berjalan VM. Jika statusnya bukan
Stopped, Hentikan VM dan lanjutkan pembuatanVirtualMachineImage.
- Jika output menampilkan nilai untuk
Dapatkan
sizedariVirtualMachineDiskuntuk membuat gambar:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachinedisks.virtualmachine.gdc.goog --namespace PROJECT \ DISK_NAME -o jsonpath='{.spec.size}'Buat objek
VirtualMachineImageImportdi server Management API:kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -n PROJECT -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineImageImport metadata: name: VM_IMAGE_IMPORT_NAME spec: source: diskRef: name: DISK_NAME imageMetadata: name: IMAGE_NAME operatingSystem: OS_NAME minimumDiskSize: MINIMUM_DISK_SIZE EOFPastikan impor gambar telah selesai dan statusnya adalah
Ready:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimageimports.virtualmachine.gdc.goog --namespace PROJECT \ VM_IMAGE_IMPORT_NAME -o jsonpath='{.status}'Status akan terlihat seperti ini setelah impor selesai:
{ "conditions": [ { "lastTransitionTime": "", "message": "", "observedGeneration": 1, "reason": "ImportJobComplete", "status": "True", "type": "Ready" } ], "imageName": IMAGE_NAME }Pastikan image telah dibuat:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimages.virtualmachine.gdc.goog --namespace PROJECT \ CREATED_IMAGE_NAMEGanti variabel menggunakan definisi berikut.
Variabel Definisi MANAGEMENT_API_SERVERFile kubeconfigserver Management API.PROJECTProject GDC tempat membuat image. DISK_NAMENama disk sumber, seperti vm1-boot-disk.VM_IMAGE_IMPORT_NAMENama impor image VM. Nama tidak boleh lebih dari 35 karakter. IMAGE_NAMENama image yang dibuat, seperti custom-image.OS_NAMENama OS gambar harus salah satu dari tiga ini: ubuntu-2004,windows-2019, ataurhel-8.MINIMUM_DISK_SIZEUkuran disk minimum dalam impor image VM, seperti 20G:
minimumDiskSizeharus selalu lebih besar atau sama dengan ukuran boot disk sumber.CREATED_IMAGE_NAMENama gambar yang dibuat. Nama gambar yang dibuat harus unik; tidak boleh berupa nama gambar yang sudah ada dalam project.