Dokumen ini menjelaskan cara menghentikan virtual machine (VM) secara otomatis dalam grup instance terkelola (MIG) dengan menentukan batas waktu untuk VM. Ini juga menjelaskan cara kerja batas waktu untuk VM di MIG.
Anda dapat mengoptimalkan workload sementara dengan menentukan batas waktu untuk VM di yang unik. Ketika VM mencapai batas waktunya, MIG akan otomatis dihentikan (menghapus) VM tersebut. Membatasi waktu proses VM di MIG berdasarkan batas waktu membantu meminimalkan biaya dan mengosongkan kuota.
Untuk mempelajari cara menentukan batas waktu untuk VM mandiri, lihat Membatasi waktu proses VM. Jika Anda Anda ingin MIG otomatis menambahkan atau menghapus VM berdasarkan beban kerja Anda. Lihat Penskalaan otomatis grup instance.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Authentication adalah
proses yang digunakan untuk memverifikasi identitas Anda agar dapat mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke
Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Membatasi waktu proses VM di MIG
Anda dapat membatasi runtime VM di MIG dengan menentukan batas waktu di template instance digunakan untuk MIG. Saat MIG membuat VM berdasarkan template tersebut, batas waktu diterapkan ke setiap VM.
Anda dapat menentukan salah satu dari dua jenis batas waktu:
- Batas waktu sebagai durasi operasi
- Batas waktu sebagai waktu penghentian
Untuk menentukan batas waktu bagi VM di MIG, ikuti langkah-langkah berikut:
Membuat template instance dengan durasi pengoperasian untuk VM atau dengan waktu penghentian untuk VM.
Menggunakan template instance untuk membuat MIG atau memperbarui MIG yang ada.
Batasan
Anda harus mematuhi batasan untuk membatasi waktu proses VM mandiri.
Saat Anda membuat template instance untuk menentukan batas waktu bagi VM di MIG, batasan berikut berlaku:
- Anda tidak dapat menetapkan tindakan penghentian ke
STOP
. MIG hanya mendukungDELETE
. - Anda tidak dapat menggunakan Spot VM.
- Anda tidak dapat menetapkan tindakan penghentian ke
Anda tidak dapat membuat permintaan ubah ukuran di MIG yang menggunakan template instance yang membatasi waktu proses VM.
Anda tidak dapat membatasi waktu proses VM di MIG regional dengan target
EVEN
bentuk distribusi dan distribusi ulang instance proaktif mengaktifkan pembuatan versi.
Membuat template instance dengan durasi operasi untuk VM
Untuk menghentikan VM di MIG secara otomatis
setelah berjalan selama durasi tertentu,
Tetapkan durasi operasi maksimum (maxRunDuration
) di template instance.
Konsol
Di konsol Google Cloud, buka halaman Instance templates.
Klik Create instance template.
Pilih Lokasi sebagai berikut:
- Jika Anda ingin menggunakan template instance di seluruh region, pilih Global.
- Jika Anda ingin mengurangi dependensi lintas region, pilih Regional.
Jika Anda memilih regional, pilih Region tempat Anda ingin untuk membuat template instance.
Di bagian Kebijakan ketersediaan, luaskan Model penyediaan VM setelan lanjutan.
Centang kotak Set a time limit for the VM.
Di kolom Time limit type, pilih By hours (default) ke menentukan batas waktu sebagai durasi. Di kolom berikutnya, masukkan durasi dalam jam.
Dalam daftar On VM stopped, pilih Delete.
Untuk kolom lainnya, terima nilai default atau ubah sebagai tidak diperlukan.
Klik Create.
gcloud
Gunakan perintah instance-templates create
.
Untuk menghapus VM secara otomatis setelah durasi tertentu, sertakan
--max-run-duration
dan tetapkan flag --instance-termination-action
ke
DELETE
sebagai berikut:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --max-run-duration=DURATION \ --instance-termination-action=DELETE
Ganti kode berikut:
INSTANCE_TEMPLATE_NAME
: nama template instance.DURATION
: durasi yang Anda inginkan untuk menjalankan VM. MIG akan otomatis menghapus VM setelah durasi yang ditentukan.Format durasi sebagai jumlah hari, jam, menit, dan detik diikuti oleh
d
,h
,m
, dans
. Misalnya, sebutkan30m
selama 30 menit, atau tentukan1d2h3m4s
untuk dengan durasi 1 hari, 2 jam, 3 menit, dan 4 detik. Minimum berdurasi 30 detik (30s
) dan durasi maksimumnya adalah 120 hari (120d
).
Terraform
Untuk membuat template instance menggunakan Terraform, gunakan
Resource google_compute_instance_template
.
Untuk membuat template instance yang otomatis menghapus VM setelah
durasi tertentu, Anda harus menyertakan
Argumen max_run_duration
, lalu tetapkan
Argumen instance_termination_action
ke DELETE
.
Untuk informasi selengkapnya, lihat
Dokumentasi Terraform untuk resource google_compute_instance_template
.
REST
Gunakan metode instanceTemplates.insert
.
Untuk menghapus VM secara otomatis setelah durasi tertentu, sertakan
maxRunDuration
dan tetapkan kolom instanceTerminationAction
ke
DELETE
sebagai berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "maxRunDuration": { "seconds": DURATION }, "instanceTerminationAction": "DELETE" } } }
Ganti kode berikut:
PROJECT_ID
: ID project tempat Anda ingin membuat template instance.INSTANCE_TEMPLATE_NAME
: nama template instance.MACHINE_TYPE
: standar atau kustom untuk VM dalam grup tersebut.IMAGE_PROJECT
: project gambar yang berisi gambar; misalnyadebian-cloud
.IMAGE
atauIMAGE_FAMILY
: tentukan salah satu dari yang berikut ini:IMAGE
: versi OS image tertentu; untuk contoh,debian-10-buster-v20200309
.IMAGE_FAMILY
: kelompok image. Fungsi ini menentukan OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukanfamily/debian-10
, versi terbaru dalam kelompok image Debian 10 digunakan.
DURATION
: durasi yang Anda inginkan untuk menjalankan VM. MIG akan otomatis menghapus VM setelah durasi yang ditentukan.Format durasi sebagai jumlah hari, jam, menit, dan detik diikuti oleh
d
,h
,m
, dans
. Misalnya, sebutkan30m
selama 30 menit, atau tentukan1d2h3m4s
untuk dengan durasi 1 hari, 2 jam, 3 menit, dan 4 detik. Minimum berdurasi 30 detik (30s
) dan durasi maksimumnya adalah 120 hari (120d
).
Membuat template instance dengan waktu penghentian untuk VM
Untuk menghentikan VM di MIG secara otomatis pada waktu tertentu, setel
waktu penghentian (terminationTime
) dalam template instance. Anda dapat menyetel
tanggal dan waktu kapan Anda ingin
MIG menghentikan VM.
Konsol
Di konsol Google Cloud, buka halaman Instance templates.
Klik Create instance template.
Pilih Lokasi sebagai berikut:
- Jika Anda ingin menggunakan template instance di seluruh region, pilih Global.
- Jika Anda ingin mengurangi dependensi lintas region, pilih Regional.
Jika Anda memilih regional, pilih Region tempat Anda ingin untuk membuat template instance.
Di bagian Kebijakan ketersediaan, luaskan Model penyediaan VM setelan lanjutan.
Di kolom Time limit type, pilih By date untuk menentukan waktu sebagai waktu dan tanggal. Di kolom berikutnya, klik
Pilih tanggal dan waktu, lalu pilih tanggal, waktu, dan zona waktu untuk penghentian otomatis.Dalam daftar On VM stopped, pilih Delete.
Untuk kolom lainnya, terima nilai default atau ubah sebagai tidak diperlukan.
Klik Create.
gcloud
Gunakan perintah instance-templates create
.
Untuk menghapus VM secara otomatis pada waktu tertentu, sertakan
--termination-time
dan tetapkan flag --instance-termination-action
ke
DELETE
sebagai berikut:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --termination-time=TIME \ --instance-termination-action=DELETE
Ganti kode berikut:
INSTANCE_TEMPLATE_NAME
: nama template instance.TIME
: waktu yang Anda inginkan untuk VM ini untuk dihentikan secara otomatis. Waktu yang Anda tentukan minimal harus 30 detik di masa mendatang dan maksimum 120 hari ke depan. Format waktu sebagai stempel waktu RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Ganti properti berikut:
YYYY-MM-DD
: Tanggal dengan format 4 digit tahun, 2 digit bulan, dan 2 digit hari dalam sebulan yang dipisahkan dengan tanda hubung.HH:MM:SS
: Waktu yang diformat sebagai 2 digit jam menggunakan waktu 24 jam, 2 digit menit, dan 2 digit detik yang dipisahkan oleh titik dua.OFFSET
: Zona waktu yang diformat sebagai penyeimbang Waktu Universal Terkoordinasi (Coordinated Universal Time/UTC). Misalnya, untuk menggunakan Waktu Standar Pasifik (PST), yang 8 jam lebih awal dari UTC, menentukan-08:00
. Atau, untuk tidak menggunakan penyeimbang (UTC+0), tentukanZ
.
REST
Gunakan metode instanceTemplates.insert
.
Untuk menghapus VM secara otomatis pada waktu tertentu, sertakan
terminationTime
dan tetapkan kolom instanceTerminationAction
ke
DELETE
sebagai berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "terminationTime": TIME, "instanceTerminationAction": "DELETE" } } }
Ganti kode berikut:
PROJECT_ID
: ID project tempat Anda ingin membuat template instance.INSTANCE_TEMPLATE_NAME
: nama template instance.MACHINE_TYPE
: standar atau kustom untuk VM dalam grup tersebut.IMAGE_PROJECT
: project gambar yang berisi gambar; misalnyadebian-cloud
.IMAGE
atauIMAGE_FAMILY
: tentukan salah satu dari yang berikut ini:IMAGE
: versi OS image tertentu; untuk contoh,debian-10-buster-v20200309
.IMAGE_FAMILY
: kelompok image. Fungsi ini menentukan OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukanfamily/debian-10
, versi terbaru dalam kelompok image Debian 10 digunakan.
TIME
: Waktu Anda ingin VM ini dihentikan secara otomatis. Waktu yang Anda tentukan minimal harus 30 detik di masa mendatang dan maksimum 120 hari ke depan. Format waktu sebagai stempel waktu RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Ganti properti berikut:
YYYY-MM-DD
: Tanggal dengan format 4 digit tahun, 2 digit bulan, dan 2 digit hari dalam sebulan yang dipisahkan dengan tanda hubung.HH:MM:SS
: Waktu yang diformat sebagai 2 digit jam menggunakan waktu 24 jam, 2 digit menit, dan 2 digit detik yang dipisahkan oleh titik dua.OFFSET
: Zona waktu yang diformat sebagai penyeimbang Waktu Universal Terkoordinasi (Coordinated Universal Time/UTC). Misalnya, untuk menggunakan Waktu Standar Pasifik (PST), yang 8 jam lebih awal dari UTC, menentukan-08:00
. Atau, untuk tidak menggunakan penyeimbang (UTC+0), tentukanZ
.
Cara kerja batas waktu untuk VM di MIG
Saat Anda menentukan batas waktu untuk VM di MIG, waktu saat MIG
akan menghentikan VM secara otomatis diatur dalam stempel waktu penghentian
(terminationTimestamp
) VM.
Berdasarkan jenis batas waktu yang Anda tentukan, stempel waktu penghentian VM diatur sebagai berikut:
Batas waktu sebagai durasi berjalan (
maxRunDuration
):terminationTimestamp
VM = Waktu pembuatan atau waktu mulai VM terbaru +maxRunDuration
Saat Anda menentukan durasi, stempel waktu penghentian akan disetel sesuai waktu pembuatan atau waktu mulai VM terbaru. Jika VM dibuat ulang, dimulai ulang, dilanjutkan, atau diganti, stempel waktu penghentian akan dihitung ulang. Tujuan penghentian dapat bervariasi di seluruh VM dalam MIG berdasarkan waktu saat setiap VM terakhir dibuat atau dimulai. Misalnya, jika VM diperbaiki, stempel waktu penghentian VM dihitung ulang dengan menambahkan durasi ke waktu ketika VM dibuat ulang selama perbaikan.
Batas waktu sebagai waktu penghentian (
terminationTime
):terminationTimestamp
dari VM =terminationTime
Jika Anda menentukan waktunya, stempel waktu penghentian akan diatur ke waktu tersebut, asalkan waktu tersebut ada di masa mendatang. Jika waktu penghentian telah berlalu, Tindakan MIG yang berupaya membuat, memulai ulang, atau mengganti VM gagal dengan error. Untuk mengatasi error tersebut, Anda harus membuat template instance baru dengan masa penghentian di masa mendatang dan menerapkan template tersebut ke MIG. Jika Anda ingin menggunakan properti {i>template<i} yang ada di {i>template<i} yang baru, maka membuat template instance berdasarkan template yang ada.
Selama pemuatan ulang VM, stempel waktu penghentian tidak berubah. Misalnya,
jika Anda menyetel tingkat gangguan
untuk update pada REFRESH
, stempel waktu penghentian akan dipertahankan
kapan pun MIG memperbarui VM.
Saat Anda menangguhkan atau menghentikan VM di MIG, stempel waktu penghentian akan otomatis dihapus, jenis batas waktu. Saat Anda melanjutkan atau memulai VM, penghentian diatur lagi berdasarkan jenis batas waktu seperti yang dijelaskan sebelumnya bagian.
Cara kerja penskalaan otomatis saat batas waktu ditetapkan
Penskalaan otomatis memungkinkan MIG Anda secara otomatis menambahkan atau menghapus VM berdasarkan peningkatan berdasarkan peningkatan atau penurunan beban. Saat MIG menghapus VM yang telah mencapai penghentiannya stempel waktu, MIG membuat VM baru untuk mempertahankan ukuran yang direkomendasikan oleh autoscaler VM baru berjalan selama batas waktu yang ditentukan. Jika autoscaler sebaiknya kurangi jumlah VM, maka MIG akan menghapus VM, sebelum mencapai batas waktu.
Jika Anda telah mengonfigurasi jadwal penskalaan, VM berjalan hanya sampai akhir jadwal atau sampai VM mencapai stempel waktu penghentian, mana saja yang lebih dulu.
Langkah selanjutnya
- Pelajari skenario dasar untuk membuat MIG.
- Pelajari cara menerapkan template instance baru ke MIG yang sudah ada.