Menggunakan kebijakan penskalaan otomatis dengan banyak sinyal


Saat Anda membuat kebijakan penskalaan otomatis dengan banyak sinyal, autoscaler akan melakukan penskalaan berdasarkan sinyal yang memberikan jumlah instance virtual machine (VM) terbanyak di grup instance terkelola (MIG). Hal ini memastikan bahwa selalu ada cukup VM untuk menangani workload aplikasi Anda dan memungkinkan Anda menskalakan aplikasi dengan beberapa kemungkinan bottleneck.

Untuk mempelajari lebih lanjut berbagai jenis sinyal penskalaan otomatis, lihat Kebijakan penskalaan otomatis.

Sebelum memulai

  • Baca dasar-dasar autoscaler.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi 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

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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

Cara autoscaler menangani banyak sinyal

Autoscaler menangani banyak sinyal dengan menghitung jumlah VM yang direkomendasikan untuk setiap sinyal, lalu memilih sinyal yang menghasilkan jumlah VM terbanyak di MIG.

Autoscaler dapat menangani satu sinyal per jenis metrik, kecuali dalam kasus metrik Cloud Monitoring dan jadwal penskalaan. Anda dapat memilih maksimal 5 sinyal penskalaan otomatis untuk metrik Cloud Monitoring dan membuat hingga 128 jadwal per MIG. Misalnya, Anda dapat membuat autoscaler yang menggunakan maksimal 1 sinyal pemanfaatan CPU, maksimal 1 sinyal load balancing, maksimal 5 sinyal metrik kustom, dan maksimal 128 jadwal penskalaan.

Misalnya, Anda dapat menentukan autoscaler dengan semua sinyal berikut:

  • cpuUtilization dengan target 0.8
  • loadBalancingUtilization dengan target 0.6
  • customMetricUtilization untuk metric1 dengan target 1000
  • customMetricUtilization untuk metric2 dengan target 2000
  • scalingSchedules
    • Minimal 6 VM setiap hari Sabtu—Minggu pukul 00.00 selama 24 jam
    • Minimal 15 VM setiap Senin—Jumat pukul 09.00 selama 8 jam

Dalam contoh ini, anggaplah autoscaler mengukur rata-rata nilai pemanfaatan berikut untuk sebuah MIG yang berisi 10 VM pada saat pengukuran:

  • 0.5 untuk pemanfaatan CPU
  • 0.4 untuk pemanfaatan load balancing
  • 1100 untuk metric1
  • 2700 untuk metric2

Dengan menggunakan nilai sebelumnya, autoscaler akan menghitung jumlah VM yang direkomendasikan berdasarkan setiap sinyal:

  • 7 VM berdasarkan pemanfaatan CPU
  • 7 VM berdasarkan pemanfaatan load balancing
  • 11 VM berdasarkan metric1
  • 14 VM berdasarkan metric2
  • 6 VM setiap Sabtu—Minggu sepanjang hari berdasarkan jadwal penskalaan pertama
  • 15 VM setiap Senin—Jumat dari pukul 09.00 hingga 17.00 berdasarkan jadwal penskalaan kedua

Autoscaler mengambil sinyal yang menghasilkan jumlah VM terbanyak di MIG dan menetapkan ukuran yang direkomendasikan MIG ke nilai tersebut. Dalam hal ini, autoscaler akan mengubah ukuran MIG menjadi 15 VM jika jadwal kedua sedang aktif, atau 14 VM jika sebaliknya.

Membuat autoscaler dengan banyak sinyal

Cara membuat penskala otomatis dengan beberapa sinyal sedikit berbeda, bergantung pada apakah Anda menggunakan Konsol Google Cloud, gcloud CLI, atau REST.

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka Grup instance

  2. Klik nama MIG dari daftar. Lalu, klik Edit.

  3. Di halaman edit di bagian Autoscaling mode, aktifkan penskalaan otomatis dengan memilih On: add and remove instances to the group dari menu drop-down.

  4. Di bagian Minimum number of instances, masukkan jumlah minimum VM yang Anda inginkan untuk MIG ini. Ukuran minimum MIG ini selalu dipertahankan, terlepas dari sinyal penskalaan otomatisnya.

  5. Di bagian Maximum number of instances, masukkan jumlah maksimum VM yang Anda inginkan untuk MIG ini. Ukuran maksimum MIG ini tidak akan pernah terlampaui, terlepas dari rekomendasi ukuran yang dihasilkan oleh sinyal penskalaan otomatisnya.

  6. Untuk setiap sinyal penskalaan otomatis berbasis metrik yang ingin Anda tambahkan, di bagian Autoscaling metrics, klik Add metric.

    • Untuk membuat sinyal penskalaan otomatis berdasarkan rata-rata pemanfaatan CPU, di bagian Metric type, pilih CPU utilization dari menu drop-down. Kemudian, masukkan Target CPU utilization, lalu klik Done. Untuk informasi selengkapnya, lihat Menskalakan berdasarkan pemanfaatan CPU.
    • Untuk membuat sinyal penskalaan otomatis berdasarkan kapasitas penyaluran load balancing HTTP, di bagian Metric type pilih HTTP load balancing utilization dari menu drop-down. Selanjutnya, masukkan Target HTTP load balancing utilization, lalu klik Done. Untuk informasi selengkapnya, lihat Menskalakan berdasarkan kapasitas penyaluran load balancing.
    • Untuk membuat sinyal penskalaan otomatis berdasarkan metrik Cloud Monitoring, di bagian Metric type, pilih Cloud Monitoring metric dari menu drop-down. Kemudian, lengkapi kolom yang tersisa dan klik Done. Untuk informasi selengkapnya, lihat Menskalakan berdasarkan metrik Cloud Monitoring.
  7. Untuk setiap sinyal penskalaan otomatis berbasis jadwal yang ingin Anda tambahkan, luaskan bagian Autoscaling schedules, klik Manage schedules, lalu klik Create schedule.

  8. Di panel Create scaling schedule baru, isi kolom yang wajib diisi, lalu klik Save. Kemudian, di panel Scaling schedule, klik Done. Untuk informasi selengkapnya, lihat Menskalakan berdasarkan jadwal.

  9. Di bagian Initialization period, masukkan jumlah detik yang diperlukan aplikasi Anda untuk melakukan inisialisasi. Hal ini memungkinkan VM Anda menyelesaikan inisialisasi sebelum autoscaler menganggap data penggunaannya dapat diandalkan. Untuk informasi selengkapnya, lihat Periode inisialisasi.

  10. Opsional: untuk mengaktifkan kontrol penurunan skala, klik Scale-in controls, lalu pilih kotak centang Enable scale-in controls. Untuk mengetahui informasi selengkapnya, lihat kontrol penurunan skala

  11. Klik Simpan.

gcloud

Untuk membuat autoscaler dengan banyak sinyal, gunakan perintah set-autoscaling. Teruskan banyak spesifikasi sinyal menggunakan flag command line-terkaitnya.

Misalnya, perintah berikut akan membuat autoscaler yang menggunakan pemanfaatan CPU, kapasitas penyaluran load balancing, dua metrik kustom, dan satu jadwal penskalaan. Flag --max-num-replicas dan --min-num-replicas membatasi seberapa besar atau seberapa kecil MIG.

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
   --target-cpu-utilization=0.8 \
   --target-load-balancing-utilization=0.6 \
   --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_1,utilization-target=1000.0,utilization-target-type=GAUGE \
   --custom-metric-utilization metric=PATH_TO_CUSTOM_METRIC_2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \
   --set-schedule=workday-capacity \
   --schedule-cron="30 8 * * Mon-Fri" \
   --schedule-duration-sec=30600 \
   --schedule-min-required-replicas=10 \
   --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC" \
   --min-num-replicas=1 \
   --max-num-replicas=50

Ganti kode berikut:

  • MIG_NAME: nama MIG.
  • PATH_TO_CUSTOM_METRIC_1 dan PATH_TO_CUSTOM_METRIC_2: Opsional: jalur ke metrik kustom dengan format yang mirip dengan custom.cloudmonitoring.googleapis.com/path/to/metric1 dan custom.cloudmonitoring.googleapis.com/path/to/metric2. Untuk mengetahui informasi selengkapnya, lihat Metrik kustom.

Dengan pengecualian flag metrik kustom, Anda hanya dapat meneruskan maksimal satu flag untuk setiap jenis metrik per perintah gcloud. Untuk metrik kustom, Anda dapat memberikan sejumlah metrik kustom dalam satu perintah dengan mengulangi flag --custom-metric-utilization.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi flag untuk setiap jenis sinyal penskalaan otomatis, lihat halaman berikut:

REST

Untuk membuat autoscaler, gunakan metode autoscalers.insert untuk MIG zona atau metode regionAutoscalers.insert untuk MIG regional.

Misalnya, permintaan berikut akan membuat autoscaler yang menggunakan pemanfaatan CPU, kapasitas penyaluran load balancing, dua metrik kustom, dan dua jadwal penskalaan. Kolom maxNumReplicas dan minNumReplicas membatasi seberapa besar atau seberapa kecil MIG.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers

{
  "autoscalingPolicy" : {
    "cpuUtilization":{
      "utilizationTarget": 0.8
    },
    "loadBalancingUtilization":{
      "utilizationTarget": 0.6
    },
    "customMetricUtilizations":[
      {
        "metric": "PATH_TO_CUSTOM_METRIC_1",
        "utilizationTarget": 1000,
        "utilizationTargetType":"GAUGE"
      },
      {
        "metric": "PATH_TO_CUSTOM_METRIC_2",
        "utilizationTarget": 2000,
        "utilizationTargetType": "DELTA_PER_SECOND"
      }
    ],
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      },
      "january-30-2030-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    },
    "maxNumReplicas": 50,
    "minNumReplicas": 1
  },
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/MIG_NAME",
  "name": "MIG_NAME"
}

Ganti kode berikut:

  • PROJECT: project id Anda.
  • ZONE: zona tempat MIG Anda berada.
  • MIG_NAME: nama MIG.
  • PATH_TO_CUSTOM_METRIC_1 dan PATH_TO_CUSTOM_METRIC_2: Opsional: jalur ke metrik kustom dengan format yang mirip dengan custom.cloudmonitoring.googleapis.com/path/to/metric1 dan custom.cloudmonitoring.googleapis.com/path/to/metric2. Untuk mengetahui informasi selengkapnya, lihat Metrik kustom.

Seperti yang ditunjukkan dalam contoh ini, Anda dapat menyediakan banyak metrik kustom dan jadwal penskalaan dalam permintaan yang sama.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kolom untuk setiap jenis sinyal penskalaan otomatis, lihat halaman berikut: