Memulai dan menghentikan VM

Anda dapat menghentikan, memulai, dan memulai ulang VM untuk mendukung siklus proses aplikasi Anda. Misalnya, Anda mungkin ingin mengubah jumlah unit pemrosesan terpusat virtual (vCPU) yang ditetapkan atau jumlah memori yang dialokasikan ke VM. Anda harus menghentikan VM sebelum mengedit konfigurasi. Setelah selesai, Anda harus mengubah status daya untuk menerapkan perubahan. Halaman ini memberikan petunjuk untuk menghentikan, memulai, dan memulai ulang VM Anda dalam proses tersebut.

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 menggantikan MANAGEMENT_API_SERVER dalam petunjuk ini.

Jika Anda ingin meminimalkan waktu mulai VM, ikuti petunjuk di bagian Meminimalkan waktu mulai VM sebelum Anda memulai VM.

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

Menghentikan VM

Saat Anda menghentikan virtual machine (VM), hypervisor akan membatalkan alokasi semua resource yang terkait dengan instance. VM dimatikan.

Hentikan VM yang dalam status berjalan menggunakan konsol GDC atau kubectl.

Konsol

  1. Di menu navigasi, klik Virtual Machines > Instances.

  2. Dalam daftar VM, centang kotak untuk VM yang sedang berjalan yang ingin Anda hentikan.

  3. Klik Stop.

  4. Pada dialog konfirmasi, klik Berhenti.

gdcloud

Untuk menghentikan VM:

gdcloud compute instances stop VM_NAME --project PROJECT
  • Ganti VM_NAME dengan nama VM.
  • Ganti PROJECT dengan nama project GDC tempat VM berada.

kubectl

  1. Jalankan perintah berikut:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \
       -n PROJECT
    
  2. Cari kolom runningState di spec VM dan ubah nilai kolom menjadi Stopped. Jika runningState tidak ada di spec, tambahkan runningState ke spec dan tetapkan nilai ke Stopped.

    spec:
       runningState: Stopped
    
  3. Verifikasi status VM:

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

    Gunakan definisi ini untuk variabel sebelumnya.

    VariabelDefinisi
    MANAGEMENT_API_SERVER_KUBECONFIGFile kubeconfig server Management API.
    VM_NAMENama VM.
    PROJECTNama project VM.

Mulai VM

Mulai VM dari status dihentikan menggunakan konsol atau kubectl.

Konsol

  1. Di menu navigasi, klik Virtual Machines > Instances.

  2. Dalam daftar VM, centang kotak untuk VM yang dihentikan yang ingin Anda mulai.

  3. Klik Mulai.

  4. Pada dialog konfirmasi, klik Mulai.

gdcloud

Untuk memulai VM:

gdcloud compute instances start VM_NAME --project PROJECT
  • Ganti VM_NAME dengan nama VM.
  • Ganti PROJECT dengan nama project GDC tempat VM berada.

kubectl

  1. Jalankan perintah berikut:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ 
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ 
       -n PROJECT
    
  2. Cari kolom runningState di spec VM dan ubah nilai kolom menjadi Running.

    spec:
       runningState: Running
    
  3. Verifikasi status VM:

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

    Gunakan definisi ini untuk variabel dalam kode contoh.

    VariabelDefinisi
    MANAGEMENT_API_SERVER_KUBECONFIGFile kubeconfig server Management API.
    MANAGEMENT_API_SERVER_NAMENama server Management API.
    NAMESPACENamespace VM.
    VM_NAMENama VM.
    PROJECTNama project VM.

Memulai ulang VM

Saat Anda memulai ulang VM, mesin akan direset ke status awalnya dan isi memori mesin akan dihapus.

Mulai ulang VM yang dalam status berjalan menggunakan konsol atau kubectl.

Konsol

  1. Di menu navigasi, klik Virtual Machines > Instances.

  2. Dalam daftar VM, centang kotak untuk VM yang sedang berjalan yang ingin Anda mulai ulang.

  3. Klik Reset.

  4. Pada dialog konfirmasi, klik Reset.

gdcloud

Untuk mereset VM:

gdcloud compute instances reset VM_NAME --project PROJECT
  • Ganti VM_NAME dengan nama VM.
  • Ganti PROJECT dengan nama project GDC tempat VM berada.

kubectl

  1. Dapatkan data sertifikat dan kunci klien, serta server Management API. Gunakan nilai ini dalam langkah-langkah berikut:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \
       jsonpath='{.users[?(@.name =="MANAGEMENT_API_SERVER_NAME-admin")].user.client-certificate-data}' | \
       base64 -d > cert
    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \
       jsonpath='{.users[?(@.name == "MANAGEMENT_API_SERVER_NAME-admin")].user.client-key-data}' | \
       base64 -d > key
    export APISERVER=`kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       config view --raw -o \
       jsonpath='{.clusters[?(@.name == "MANAGEMENT_API_SERVER_NAME")].cluster.server}'`
    
  2. Buat permintaan API untuk memulai ulang VM menggunakan perintah wget dan tentukan sertifikat dan kunci dari langkah sebelumnya:

    wget --method=PUT -O- --no-check-certificate --certificate cert --private-key key --content-on-error=on $APISERVER/apis/virtualmachineoperations.gdc.goog/v1/namespaces/PROJECT/virtualmachines/VM_NAME/restart
    
  3. Verifikasi status VM:

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

    Gunakan definisi ini untuk variabel dalam kode contoh.

    VariabelDefinisi
    MANAGEMENT_API_SERVER_KUBECONFIGFile kubeconfig server Management API.
    MANAGEMENT_API_SERVER_NAMENama server Management API.
    NAMESPACENamespace VM.
    VM_NAMENama VM.
    PROJECTNama project VM.