Dokumen ini menjelaskan cara memulai, menghentikan, dan memulai ulang instance virtual machine (VM) yang terisolasi dari internet di Google Distributed Cloud (GDC).
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.
Dokumen ini ditujukan bagi developer dalam grup administrator platform atau operator aplikasi yang perlu memulai, menghentikan, dan memulai ulang 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 menggantikan
MANAGEMENT_API_SERVERdalam petunjuk ini.
Jika Anda ingin meminimalkan waktu mulai VM, ikuti petunjuk di bagian Meminimalkan waktu mulai VM sebelum Anda memulai VM.
Meminta peran IAM
Hubungi Admin IAM Project Anda untuk meminta peran berikut di project Anda:
Admin Project Virtual Machine (
project-vm-admin): membuat, mengubah, mencantumkan, dan menghapus VM di namespace project.Project Viewer(
project-viewer): melihat semua resource dalam namespace project.
Semua peran VM harus terikat ke namespace project tempat VM berada. Ikuti langkah-langkah untuk memverifikasi akses Anda.
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
Di menu navigasi, klik Virtual Machines > Instances.
Dalam daftar VM, centang kotak untuk VM yang sedang berjalan yang ingin Anda hentikan.
Klik Stop.
Pada dialog konfirmasi, klik Berhenti.
gdcloud
Untuk menghentikan VM:
gdcloud compute instances stop VM_NAME \
--project PROJECT
- Ganti
VM_NAMEdengan nama VM. - Ganti
PROJECTdengan nama project GDC tempat VM berada.
kubectl
Jalankan perintah berikut:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMECari kolom
runningStatedispecVM dan ubah nilai kolom menjadiStopped. JikarunningStatetidak ada dispec, tambahkanrunningStatekespecdan tetapkan nilai keStopped.spec: runningState: StoppedVerifikasi status VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEGunakan definisi ini untuk variabel sebelumnya.
Variabel Definisi 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
Di menu navigasi, klik Virtual Machines > Instances.
Dalam daftar VM, centang kotak untuk VM yang dihentikan yang ingin Anda mulai.
Klik Mulai.
Pada dialog konfirmasi, klik Mulai.
gdcloud
Untuk memulai VM:
gdcloud compute instances start VM_NAME --project PROJECT
- Ganti
VM_NAMEdengan nama VM. - Ganti
PROJECTdengan nama project GDC tempat VM berada.
kubectl
Jalankan perintah berikut:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMECari kolom
runningStatedispecVM dan ubah nilai kolom menjadiRunning.spec: runningState: RunningVerifikasi status VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEGunakan definisi ini untuk variabel dalam contoh kode.
Variabel Definisi MANAGEMENT_API_SERVER_KUBECONFIGFile kubeconfig server Management API. MANAGEMENT_API_SERVER_NAMENama server Management API. 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
Di menu navigasi, klik Virtual Machines > Instances.
Dalam daftar VM, centang kotak untuk VM yang sedang berjalan yang ingin Anda mulai ulang.
Klik Reset.
Pada dialog konfirmasi, klik Reset.
gdcloud
Untuk mereset VM:
gdcloud compute instances reset VM_NAME --project PROJECT
- Ganti
VM_NAMEdengan nama VM. - Ganti
PROJECTdengan nama project GDC tempat VM berada.
kubectl
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}'`Buat permintaan API untuk memulai ulang VM menggunakan perintah
wgetdan 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/restartVerifikasi status VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAMEGunakan definisi ini untuk variabel dalam kode contoh.
Variabel Definisi MANAGEMENT_API_SERVER_KUBECONFIGFile kubeconfig server Management API. MANAGEMENT_API_SERVER_NAMENama server Management API. VM_NAMENama VM. PROJECTNama project VM.