Buat dan mulai instance VM

Halaman ini memberikan petunjuk untuk membuat instance virtual machine (VM) menggunakan boot disk image atau snapshot boot disk.

Anda dapat membuat VM dengan satu atau beberapa disk. Anda juga dapat menambahkan disk ke VM setelah pembuatan. Perangkat Google Distributed Cloud (GDC) dengan air gap otomatis memulai instance VM setelah pembuatan.

Anda dapat menambahkan skrip startup ke VM, baik sebelum maupun setelah pembuatan. Untuk membaca lebih lanjut skrip startup, lihat halaman Menggunakan skrip startup dengan instance VM.

Sebelum memulai

Untuk menggunakan perintah antarmuka command line (CLI) gdcloud, pastikan Anda telah mendownload, menginstal, dan mengonfigurasi CLI gdcloud. Semua perintah untuk appliance air-gapped GDC 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. Temukan nama server Management API, atau tanyakan kepada Administrator Platform (PA) Anda nama servernya.

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

  3. Gunakan jalur untuk menggantikan MANAGEMENT_API_SERVER{"</var>"}} dalam petunjuk ini.

Meminta izin dan akses

Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran Project VirtualMachine Admin. Ikuti langkah-langkah untuk memverifikasi atau meminta Admin IAM Project memberi Anda peran Project VirtualMachine Admin (project-vm-admin) di namespace project tempat VM berada.

Untuk operasi VM menggunakan konsol GDC atau gdcloud CLI, minta Admin IAM Project Anda untuk memberi Anda peran Project VirtualMachine Admin dan peran Project Viewer (project-viewer).

Membuat VM instance dari image

Bagian ini menunjukkan cara membuat VM dari OS image yang disediakan GDC atau dari OS image kustom.

Melihat daftar image yang disediakan GDC yang tersedia

Sebelum membuat VM menggunakan image yang disediakan GDC, tinjau daftar image yang tersedia.

gdcloud

Mencantumkan semua image yang tersedia dan ukuran disk minimumnya:

gdcloud compute images list

Perintah ini mencakup gambar yang disediakan GDC dan gambar kustom. Pilih salah satu gambar di namespace vm-system.

API

  1. Mencantumkan semua image yang disediakan GDC yang tersedia:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
    
  2. Dapatkan minimumDiskSize untuk gambar tertentu yang disediakan GDC:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Ganti kode berikut:

    • MANAGEMENT_API_SERVER dengan kubeconfig untuk server Management API.
    • BOOT_DISK_IMAGE_NAME dengan nama image.

Membuat instance VM dari image yang disediakan GDC

Secara default, semua project GDC dapat membuat VM dari image OS yang disediakan GDC.

gdcloud

Pilih image yang disediakan GDC untuk membuat instance VM:

gdcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
    --boot-disk-size=BOOT_DISK_SIZE \
    --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE

Ganti kode berikut:

VariabelDefinisi
VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
NO_BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan kebalikan dari apakah boot disk otomatis dihapus saat instance VM dihapus.
MACHINE_TYPE Jenis mesin standar untuk VM baru. Untuk memilih jenis mesin yang tersedia, jalankan perintah ini:
gdcloud compute machine-types list

API

  1. Pilih image yang disediakan oleh appliance GDC yang terisolasi dari internet untuk membuat instance VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Ganti kode berikut:

    VariabelDefinisi
    MANAGEMENT_API_SERVER Jalur server Management API kubeconfig.
    PROJECT Project perangkat dengan air gap GDC untuk membuat VM.
    VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
    VM_BOOT_DISK_NAME Nama boot disk VM baru.
    BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
    BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
    Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
    BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan apakah boot disk otomatis dihapus saat instance VM dihapus.
    MACHINE_TYPE Jenis mesin standar untuk VM baru. Untuk memilih jenis mesin yang tersedia, jalankan perintah ini:
    gdcloud compute machine-types list
  2. Pastikan VM dibuat dan tunggu hingga VM menunjukkan bahwa VM berada dalam status Running. Status Running tidak menunjukkan bahwa OS sudah siap dan dapat diakses sepenuhnya.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    Ganti VM_NAME dan PROJECT dengan nama dan project VM. VM_NAME hanya boleh berisi karakter alfanumerik dan tanda hubung.

    Untuk menambahkan skrip startup ke pembuatan instance VM, ikuti langkah-langkah yang diberikan di halaman Menggunakan skrip startup dengan instance VM. Pastikan Anda mematikan VM sebelum menambahkan skrip.

Membuat instance VM dari image kustom

Image kustom hanya berada di dalam project Anda. Untuk membuat VM dengan image kustom, Anda harus membuat image kustom terlebih dahulu dalam project yang sama jika Anda belum memilikinya.

gdcloud

  1. Mencantumkan semua gambar kustom:

    gdcloud compute images list --no-standard-images=true
    
  2. Membuat instance VM:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Ganti kode berikut:

    VariabelDefinisi
    VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
    BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
    BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
    Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
    NO_BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan kebalikan dari apakah boot disk otomatis dihapus saat instance VM dihapus.
    MACHINE_TYPE Jenis mesin standar untuk VM baru. Untuk memilih jenis mesin yang tersedia, jalankan perintah ini:
    gdcloud compute machine-types list

API

  1. Mencantumkan semua gambar kustom:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
    

    Dapatkan minimumDiskSize image tertentu untuk membuat instance VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Ganti kode berikut:

    VariabelDefinisi
    MANAGEMENT_API_SERVER Jalur server Management API kubeconfig.
    BOOT_DISK_IMAGE_NAME Nama gambar yang dipilih dari perintah ke list all custom images.
    PROJECT Project gambar.
  2. Membuat instance VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Ganti variabel menggunakan definisi berikut:

    VariabelDefinisi
    MANAGEMENT_API_SERVER File kubeconfig server Management API.
    PROJECT Project perangkat dengan air gap GDC untuk membuat VM.
    VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
    VM_BOOT_DISK_NAME Nama boot disk VM baru.
    BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
    BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
    Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
    BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan apakah boot disk otomatis dihapus saat instance VM dihapus.
    MACHINE_TYPE Jenis mesin standar untuk VM baru. Untuk memilih jenis mesin yang tersedia, jalankan perintah ini:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
  3. Pastikan VM dibuat dan tunggu hingga VM menunjukkan bahwa VM berada dalam status Running. Status Running tidak menunjukkan bahwa OS sudah siap dan dapat diakses sepenuhnya.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    Ganti VM_NAME dan PROJECT dengan nama dan project VM. VM_NAME hanya boleh berisi karakter alfanumerik dan tanda hubung.

Membuat instance VM dengan non-boot disk tambahan

Anda dapat membuat disk non-boot saat membuat VM. Setiap disk tambahan dapat menentukan sumber image atau tidak. Kasus terakhir adalah untuk membuat disk kosong.

gdcloud

  1. Membuat disk dari image:

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
        --size=NON_BOOT_DISK_SIZE \
        --image=NON_BOOT_DISK_IMAGE_NAME \
        --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  2. Membuat disk dari image kosong:

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
        --size=NON_BOOT_BLANK_DISK_SIZE \
    
  3. Buat instance dengan disk dari langkah sebelumnya:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
        --disk=name=NON_BOOT_DISK_FROM_IMAGE \
        --disk=name=NON_BOOT_BLANK_DISK
    

    Ganti kode berikut:

    VariabelDefinisi
    VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
    BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
    BOOT_DISK_IMAGE_NAMESPACE Namespace image yang akan digunakan untuk boot disk VM baru. Gunakan vm-system untuk gambar yang disediakan GDC, atau biarkan kolom kosong untuk gambar kustom.
    BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
    Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
    NO_BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan kebalikan dari apakah boot disk otomatis dihapus saat instance VM dihapus.
    MACHINE_TYPE Jenis mesin standar untuk VM baru. Untuk memilih jenis mesin yang tersedia, jalankan perintah ini:
    gdcloud compute machine-types list

    Untuk disk tambahan, ganti opsi berikut ini:

    • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: nama disk tambahan.
    • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: ukuran disk tambahan, misalnya, 20G.
    • NON_BOOT_DISK_IMAGE_NAME: nama image yang akan digunakan sebagai non-boot disk.
    • NON_BOOT_DISK_IMAGE_NAMESPACE: namespace image yang akan digunakan sebagai non-boot disk. Gunakan vm-system untuk gambar yang disediakan GDC, atau biarkan kolom kosong untuk gambar kustom.

API

  1. Buat VM dengan non-boot disk:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
    apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_DISK_FROM_IMAGE
spec:
  source:
    image:
      name: NON_BOOT_DISK_IMAGE_NAME
      namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
  size: NON_BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_BLANK_DISK
spec:
  size: NON_BOOT_BLANK_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: VM_BOOT_DISK_NAME
spec:
  source:
    image:
      name: BOOT_DISK_IMAGE_NAME
      namespace: BOOT_DISK_IMAGE_NAMESPACE
  size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
  name: VM_NAME
spec:
  compute:
    virtualMachineType: MACHINE_TYPE
  disks:
    - virtualMachineDiskRef:
        name: VM_BOOT_DISK_NAME
      boot: true
      autoDelete: BOOT_DISK_AUTO_DELETE
    - virtualMachineDiskRef:
        name: NON_BOOT_DISK_FROM_IMAGE
    - virtualMachineDiskRef:
        name: NON_BOOT_BLANK_DISK
EOF

Ganti kode berikut:

VariabelDefinisi
MANAGEMENT_API_SERVER Jalur server Management API kubeconfig.
PROJECT Project GDC tempat Anda ingin membuat VM.
VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
VM_BOOT_DISK_NAME Nama boot disk VM baru.
BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
BOOT_DISK_IMAGE_NAMESPACE Namespace image yang akan digunakan untuk boot disk VM baru. Gunakan namespace vm-system untuk gambar yang disediakan GDC, atau kosong untuk gambar kustom.
BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan apakah boot disk otomatis dihapus saat instance VM dihapus.
MACHINE_TYPE Jenis mesin standar untuk VM baru. Untuk memilih jenis mesin yang tersedia, jalankan perintah ini:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system

Untuk disk tambahan, ganti opsi berikut ini:

  • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK: nama disk tambahan.
  • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE: ukuran disk tambahan, misalnya, 20G.
  • NON_BOOT_DISK_IMAGE_NAME: nama image yang ingin Anda gunakan sebagai non-boot disk.
  • NON_BOOT_DISK_IMAGE_NAMESPACE: namespace image yang ingin Anda gunakan sebagai non-boot disk. Gunakan namespace vm-system untuk gambar yang disediakan GDC, atau kosong untuk gambar kustom.

Format dan pasang disk sebelum menggunakannya.

Membuat VM dari snapshot atau cadangan

Anda dapat membuat VM yang baru dari snapshot dengan cara berikut:

  • Memulihkan boot disk VM: Jika Anda mencadangkan boot disk VM dengan snapshot, gunakan snapshot tersebut untuk membuat VM baru. Lihat Memulihkan snapshot.
  • Memulihkan non-boot disk: Jika Anda mencadangkan non-boot disk dengan snapshot, Anda juga dapat memulihkan snapshot ke non-boot disk baru saat membuat VM, menggunakan petunjuk yang sama.

Untuk membuat lebih dari satu VM dengan boot disk yang sama, lakukan hal berikut:

  1. Buat gambar kustom.
  2. Buat VM dari image tersebut tanpa menggunakan snapshot.

Membuat VM tanpa menggunakan jenis mesin

Perangkat air-gapped GDC menawarkan jenis mesin yang telah ditentukan yang dapat Anda gunakan saat membuat instance VM. Jenis mesin yang telah ditetapkan memiliki jumlah vCPU dan memori yang telah diatur.

Jika VM yang telah ditetapkan tidak sesuai dengan kebutuhan Anda, buat instance VM dengan setelan hardware virtual kustom.

VM kustom ideal dalam skenario berikut:

  • Workload yang tidak berlaku untuk jenis VM yang telah ditetapkan.
  • Workload yang memerlukan daya pemrosesan atau memori lebih besar, tetapi tidak memerlukan semua upgrade yang disediakan oleh jenis mesin tingkat berikutnya.

gdcloud

  1. Buat VM dengan jenis mesin yang Anda tentukan:

    gdcloud compute instances create VM_NAME \
        --custom-cpu=NUM_VCPU \
        --custom-memory=MEMORY
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Ganti kode berikut:

    VariabelDefinisi
    VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
    BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
    BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
    Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
    NO_BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan kebalikan dari apakah boot disk otomatis dihapus saat instance VM dihapus.
    NUM_VCPU Jumlah vCPU. Jumlah maksimum vCPU yang didukung adalah 192.
    MEMORY Ukuran memori, seperti 8G. Ukuran memori maksimum adalah satu terabyte (TB).

API

  1. Buat VM dengan jenis mesin yang Anda tentukan:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        vcpus: NUM_VCPU
        memory: MEMORY
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Ganti kode berikut:

    VariabelDefinisi
    MANAGEMENT_API_SERVER Jalur server Management API kubeconfig.
    PROJECT Project perangkat dengan air gap GDC untuk membuat VM.
    VM_NAME Nama VM baru. Nama hanya boleh berisi karakter alfanumerik dan tanda hubung, serta tidak boleh lebih dari 53 karakter.
    VM_BOOT_DISK_NAME Nama boot disk VM baru.
    BOOT_DISK_IMAGE_NAME Nama image yang akan digunakan untuk boot disk VM baru.
    BOOT_DISK_SIZE Ukuran boot disk, seperti 20G.
    Nilai ini harus selalu lebih besar dari atau sama dengan minimumDiskSize dari image disk booting.
    BOOT_DISK_AUTO_DELETE true atau false, yang menunjukkan apakah boot disk otomatis dihapus saat instance VM dihapus.
    NUM_VCPU Jumlah vCPU. Jumlah maksimum vCPU yang didukung adalah 192.
    MEMORY Ukuran memori, seperti 8G. Ukuran memori maksimum adalah satu TB.