Membatasi waktu proses VM di MIG

Dokumen ini menjelaskan cara menghentikan virtual machine (VM) secara otomatis dalam grup instance terkelola (MIG) dengan menentukan batas waktu untuk VM. Dokumen ini juga menjelaskan cara kerja batas waktu untuk VM dalam MIG.

Anda dapat mengoptimalkan workload sementara dengan menentukan batas waktu untuk VM dalam MIG. Saat VM mencapai batas waktunya, MIG akan otomatis menghentikan (menghapus) VM tersebut. Membatasi waktu berjalan VM dalam MIG berdasarkan batas waktu membantu meminimalkan biaya dan mengosongkan kuota.

Untuk mempelajari cara menentukan batas waktu untuk VM mandiri, lihat Membatasi waktu berjalan VM. Jika Anda ingin MIG menambahkan atau menghapus VM secara otomatis berdasarkan workload Anda, lihat Menskalakan otomatis grup instance.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses yang digunakan untuk memverifikasi identitas Anda untuk mengakses Trusted Cloud by S3NS layanan dan API. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init
    2. Set a default region and zone.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Trusted Cloud .

Membatasi waktu berjalan VM di MIG

Anda dapat membatasi waktu berjalan VM di MIG dengan menentukan batas waktu di template instance yang digunakan untuk MIG. Saat MIG membuat VM berdasarkan template, batas waktu diterapkan ke setiap VM.

Anda dapat menentukan salah satu dari dua jenis batas waktu:

  • Batas waktu sebagai durasi lari
  • Batas waktu sebagai waktu penghentian

Untuk menentukan batas waktu VM dalam MIG, ikuti langkah-langkah berikut:

  1. Buat template instance dengan durasi berjalan untuk VM atau dengan waktu penghentian untuk VM.

  2. Gunakan template instance untuk membuat MIG atau mengupdate MIG yang ada.

Batasan

Membuat template instance dengan durasi berjalan untuk VM

Untuk menghentikan VM secara otomatis dalam MIG setelah berjalan selama durasi tertentu, tetapkan durasi berjalan maksimum (maxRunDuration) di template instance.

Konsol

  1. Di konsol Trusted Cloud , buka halaman Instance templates.

    Buka halaman Template instance

  2. Klik Create instance template.

  3. Pilih Lokasi sebagai berikut:

    • Jika Anda ingin menggunakan template instance di seluruh region, pilih Global.
    • Jika Anda ingin mengurangi dependensi lintas region, pilih Regional.
  4. Jika Anda memilih regional, pilih Region tempat Anda ingin membuat template instance.

  5. Di bagian Kebijakan ketersediaan, luaskan Setelan lanjutan model penyediaan VM.

  6. Centang kotak Set a time limit for the VM.

  7. Di kolom Time limit type, pilih By hours (default) untuk menentukan batas waktu sebagai durasi. Di kolom berikutnya, masukkan durasi dalam jam.

  8. Dalam daftar On VM termination, pilih Delete.

  9. Untuk kolom lainnya, terima nilai default atau ubah sesuai kebutuhan.

  10. Klik Buat.

gcloud

Gunakan perintah instance-templates create. Untuk menghapus VM secara otomatis setelah durasi tertentu, sertakan flag --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 agar VM berjalan. MIG akan otomatis menghapus VM setelah durasi yang ditentukan.

    Format durasi sebagai jumlah hari, jam, menit, dan detik diikuti dengan d, h, m, dan s. Misalnya, tentukan 30m untuk durasi 30 menit, atau tentukan 1d2h3m4s untuk durasi 1 hari, 2 jam, 3 menit, dan 4 detik. Durasi minimum adalah 30 detik (30s) dan durasi maksimum 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 dan menetapkan argumen instance_termination_action ke DELETE.

Untuk mengetahui 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 kolom maxRunDuration dan tetapkan kolominstanceTerminationAction 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: jenis mesin bawaan atau kustom untuk VM dalam grup.
  • IMAGE_PROJECT: project gambar yang berisi gambar; misalnya, debian-cloud.
  • IMAGE atau IMAGE_FAMILY: tentukan salah satu opsi berikut:

    • IMAGE: versi tertentu dari image OS; misalnya, debian-10-buster-v20200309.

    • IMAGE_FAMILY: kelompok image. Tindakan ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-10, versi terbaru dalam kelompok image Debian 10 akan digunakan.

  • DURATION: durasi yang Anda inginkan agar VM berjalan. MIG akan otomatis menghapus VM setelah durasi yang ditentukan.

    Format durasi sebagai jumlah hari, jam, menit, dan detik diikuti dengan d, h, m, dan s. Misalnya, tentukan 30m untuk durasi 30 menit, atau tentukan 1d2h3m4s untuk durasi 1 hari, 2 jam, 3 menit, dan 4 detik. Durasi minimum adalah 30 detik (30s) dan durasi maksimum adalah 120 hari (120d).

Membuat template instance dengan waktu penghentian untuk VM

Untuk menghentikan VM secara otomatis di MIG pada waktu tertentu, tetapkan waktu penghentian (terminationTime) di template instance. Anda dapat menetapkan tanggal dan waktu saat Anda ingin MIG menghentikan VM.

Konsol

  1. Di konsol Trusted Cloud , buka halaman Instance templates.

    Buka halaman Template instance

  2. Klik Create instance template.

  3. Pilih Lokasi sebagai berikut:

    • Jika Anda ingin menggunakan template instance di seluruh region, pilih Global.
    • Jika Anda ingin mengurangi dependensi lintas region, pilih Regional.
  4. Jika Anda memilih regional, pilih Region tempat Anda ingin membuat template instance.

  5. Di bagian Kebijakan ketersediaan, luaskan Setelan lanjutan model penyediaan VM.

  6. Di kolom Time limit type, pilih By date untuk menentukan batas waktu sebagai waktu dan tanggal. Di kolom berikutnya, klik Pilih tanggal dan waktu, lalu pilih tanggal, waktu, dan zona waktu untuk penghentian otomatis.

  7. Dalam daftar On VM termination, pilih Delete.

  8. Untuk kolom lainnya, terima nilai default atau ubah sesuai kebutuhan.

  9. Klik Buat.

gcloud

Gunakan perintah instance-templates create. Untuk menghapus VM secara otomatis pada waktu tertentu, sertakan flag --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 Anda ingin VM ini dihentikan secara otomatis. Waktu yang Anda tentukan harus minimal 30 detik ke depan dan maksimal 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, tentukan -08:00. Atau, untuk tidak menggunakan penyeimbang (UTC+0), tentukan Z.

REST

Gunakan metode instanceTemplates.insert. Untuk menghapus VM secara otomatis pada waktu tertentu, sertakan kolom terminationTime dan tetapkan kolominstanceTerminationAction 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: jenis mesin bawaan atau kustom untuk VM dalam grup.
  • IMAGE_PROJECT: project gambar yang berisi gambar; misalnya, debian-cloud.
  • IMAGE atau IMAGE_FAMILY: tentukan salah satu opsi berikut:

    • IMAGE: versi tertentu dari image OS; misalnya, debian-10-buster-v20200309.

    • IMAGE_FAMILY: kelompok image. Tindakan ini menentukan image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-10, versi terbaru dalam kelompok image Debian 10 akan digunakan.

  • TIME: Waktu Anda ingin VM ini dihentikan secara otomatis. Waktu yang Anda tentukan harus minimal 30 detik ke depan dan maksimal 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, tentukan -08:00. Atau, untuk tidak menggunakan penyeimbang (UTC+0), tentukan Z.

Cara kerja batas waktu untuk VM di MIG

Saat Anda menentukan batas waktu untuk VM dalam MIG, waktu saat MIG akan menghentikan VM otomatis ditetapkan di kolom stempel waktu penghentian (terminationTimestamp) VM.

Berdasarkan jenis batas waktu yang Anda tentukan, stempel waktu penghentian VM ditetapkan sebagai berikut:

  • Batas waktu sebagai durasi proses (maxRunDuration):

    terminationTimestamp VM = Waktu pembuatan atau mulai VM terbaru + maxRunDuration

    Saat Anda menentukan durasi, stempel waktu penghentian ditetapkan relatif terhadap waktu pembuatan atau waktu mulai VM yang terbaru. Jika VM dibuat ulang, dimulai ulang, dilanjutkan, atau diganti, stempel waktu penghentian akan dihitung ulang. Stempel waktu penghentian dapat bervariasi di seluruh VM dalam MIG berdasarkan waktu pembuatan atau dimulainya setiap VM terakhir kali. Misalnya, jika VM diperbaiki, stempel waktu penghentian VM dihitung ulang dengan menambahkan durasi ke waktu VM dibuat ulang selama perbaikan.

  • Batas waktu sebagai waktu penghentian (terminationTime):

    terminationTimestamp VM = terminationTime

    Saat Anda menentukan waktu, stempel waktu penghentian akan disetel ke waktu tersebut, asalkan waktu tersebut ada di masa mendatang. Jika waktu penghentian telah berlalu, tindakan MIG apa pun yang mencoba membuat, memulai ulang, atau mengganti VM akan gagal dengan error. Untuk mengatasi error tersebut, Anda harus membuat template instance baru dengan waktu penghentian pada masa mendatang dan menerapkan template tersebut ke MIG. Jika Anda ingin menggunakan properti template yang ada di template baru, buat template instance berdasarkan template yang ada.

Selama refresh VM, stempel waktu penghentian tidak berubah. Misalnya, jika Anda menetapkan tingkat gangguan untuk update ke REFRESH, stempel waktu penghentian akan dipertahankan setiap kali MIG mengupdate VM.

Saat Anda menangguhkan atau menghentikan VM dalam MIG, stempel waktu penghentian akan otomatis dihapus terlepas dari jenis batas waktu. Saat Anda melanjutkan atau memulai VM, stempel waktu penghentian akan disetel lagi berdasarkan jenis batas waktu seperti yang dijelaskan sebelumnya di bagian ini.

Cara kerja penskalaan otomatis saat batas waktu ditetapkan

Penskalaan otomatis memungkinkan MIG Anda menambahkan atau menghapus VM secara otomatis berdasarkan peningkatan atau penurunan beban. Saat MIG menghapus VM yang telah mencapai stempel waktu penghentiannya, MIG akan membuat VM baru untuk mempertahankan ukuran yang direkomendasikan oleh autoscaler. VM baru berjalan selama batas waktu yang ditentukan. Jika rekomendasi autoscaler adalah mengurangi jumlah VM, MIG akan menghapus VM bahkan sebelum VM mencapai batas waktunya.

Jika Anda telah mengonfigurasi jadwal penskalaan, VM hanya berjalan hingga akhir jadwal atau hingga VM mencapai stempel waktu penghentiannya, mana saja yang tercapai terlebih dahulu.

Langkah berikutnya