Melakukan penskalaan otomatis grup node


Jika menggunakan sole-tenant node untuk workload, Anda dapat mengelola ukuran grup node secara otomatis menggunakan autoscaler grup node. Anda dapat mengonfigurasi penskalaan otomatis saat membuat grup node atau setelah membuat grup node.

Autoscaler dapat membantu Anda mengelola ukuran grup node sole-tenant secara otomatis dengan:

  • Meningkatkan ukuran grup node saat kapasitas tidak mencukupi untuk instance virtual machine (VM) lain pada grup node tersebut. Setelah autoscaler meningkatkan ukuran grup node, VM akan dijadwalkan secara transparan.

  • Mengurangi ukuran grup node saat ada node kosong, sehingga Anda tidak perlu membayar sole-tenant node yang tidak digunakan.

Saat menskalakan grup node, autoscaler mempertimbangkan kapasitas yang diperlukan untuk VM yang dijadwalkan, kapasitas kosong di node yang ditargetkan, dan kebijakan penskalaan otomatis grup node. Kapasitas yang diperlukan hanya berdasarkan ukuran VM. Kapasitas kosong diperkirakan berdasarkan ukuran node, VM yang sudah dijadwalkan di dalamnya, dan rasio overcommit CPU opsional.

Diagram berikut menunjukkan:

  1. Autoscaler grup node akan meningkatkan skala dengan menambahkan node baru ke grup node sebagai respons terhadap deployment VM ke grup node tanpa node kosong.

  2. Autoscaler grup node akan menurunkan skala dengan menghapus node kosong dari grup node tenant tunggal.

Autoscaler grup node yang mengelola ukuran grup node.

Mode autoscaler

Secara default, autoscaler tidak diaktifkan di grup node. Jika autoscaler tidak diaktifkan, Anda harus mengelola ukuran grup node secara manual. Jika mengaktifkan autoscaler pada grup node, Anda dapat menentukan bahwa autoscaler dapat meningkatkan dan mengurangi ukuran grup node (penyebaran skala dan penurunan skala), atau hanya meningkatkan ukuran grup (hanya penyebaran skala).

Penyebaran skala dan penurunan skala

Dalam mode ini, autoscaler grup node akan meningkatkan (penyebaran skala) dan mengurangi (penurunan skala) ukuran grup node Anda. Untuk mode ini, Anda harus menentukan ukuran maksimum dan ukuran minimum grup node. Autoscaler tidak akan menskalakan ukuran grup node di atas batas maksimum yang ditentukan atau di bawah batas minimum yang ditentukan.

Penambahan skala dipicu saat penjadwalan untuk VM gagal karena kekurangan kapasitas. Untuk mengatasi masalah ini, node baru ditambahkan ke grup dan operasi dicoba lagi.

Penskalaan ke dalam dipicu saat node tetap kosong selama jangka waktu tertentu. Node kosong adalah hasil dari VM yang dihapus atau dimigrasikan dari grup node. Jika kebijakan penskalaan otomatis grup node mengizinkannya, node kosong akan dijadwalkan untuk dihapus setelah periode stabilisasi. Periode stabilisasi memastikan bahwa node masih tersedia jika Anda perlu menggunakannya.

Hanya penyebaran skala

Dengan mode ini, autoscaler akan meningkatkan ukuran grup node sebagai respons terhadap permintaan untuk menjadwalkan VM, tetapi tidak menghapus node kosong dari grup node. Google merekomendasikan mode ini untuk workload yang meningkat secara monoton atau workload yang memerlukan afinitas server fisik, seperti workload BYOL, yang memerlukan lisensi untuk berada di server fisik yang sama.

Anda harus menggunakan mode ini jika grup node dikonfigurasi dengan kebijakan pemeliharaan Migrasi dalam grup node.

Rentang ukuran grup node

Saat mengaktifkan autoscaler, Anda dapat menetapkan rentang ukuran grup node dengan menentukan nilai minimum dan maksimum untuk ukuran grup node.

Jika Anda tidak menentukan nilai untuk ukuran minimum, autoscaler akan menetapkan ukuran minimum ke nol (0). Jika Anda menentukan nilai untuk ukuran minimum, nilai tersebut harus berupa bilangan bulat yang lebih besar dari atau sama dengan 0, dan harus kurang dari atau sama dengan ukuran maksimumnya.

Anda harus menentukan nilai untuk ukuran maksimum grup node. Nilai harus berupa bilangan bulat yang lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan 100, yang merupakan ukuran maksimum yang diizinkan untuk grup sole-tenant node, dan nilainya harus lebih dari atau sama dengan nilai minimum yang ditentukan.

Untuk mengakomodasi workload yang mungkin melebihi ukuran maksimum 100 untuk grup node, buat beberapa grup node dengan label afinitas yang cocok, misalnya workload:in:my-autoscaled-node-groups. Kemudian, jadwalkan VM menggunakan label afinitas tersebut, dan aktifkan penskalaan otomatis pada setiap grup untuk membuat grup node yang melakukan penskalaan secara dinamis.

Ketersediaan

Anda hanya dapat menggunakan autoscaler node tenant tunggal di region yang mendukung node tenant tunggal.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi 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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Mengaktifkan autoscaler grup node

Konfigurasikan penskalaan otomatis pada grup node baru.

gcloud

Contoh di bawah menunjukkan cara menggunakan perintah node-groups create untuk mengaktifkan autoscaler saat Anda membuat grup node. Untuk menambahkan autoscaler ke grup node yang ada, gunakan perintah node-groups update.

gcloud compute sole-tenancy node-groups create group-name \
    --node-template template-name \
    --target-size size \
    --maintenance-policy maintenance-policy \
    --zone zone \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Ganti kode berikut:

  • group-name: Nama grup node yang akan dibuat.
  • template-name: Nama template node tempat membuat grup node.
  • size: Menargetkan jumlah node awal pada grup node.
  • maintenance-policy: Menentukan apakah VM dimigrasikan dan apakah VM dimulai ulang selama peristiwa pemeliharaan host. Tetapkan ke salah satu nilai berikut:
    • default: VM langsung melakukan migrasi ke node baru.
    • migrate-within-node-group: VM langsung melakukan migrasi ke node lain di grup node.
    • restart-in-place: VM dimulai ulang pada node yang sama setelah dihentikan karena peristiwa pemeliharaan.
  • zone: Zona tempat untuk membuat grup node.
  • mode: Mode untuk autoscaler di grup node ini. Tetapkan ke salah satu nilai berikut:
    • off: Menonaktifkan autoscaler.
    • on: Mengaktifkan penurunan skala dan penyebaran skala.
    • only-scale-out: Hanya mengaktifkan penyebaran skala. Anda harus menggunakan mode ini jika grup node dikonfigurasi untuk memulai ulang VM yang dihosting pada server minimal.
  • max-nodes: Ukuran maksimum grup node. Tetapkan ke nilai yang kurang dari atau sama dengan 100 dan lebih besar dari atau sama dengan min-nodes.
  • min-nodes: Ukuran minimum grup node, dan harus berupa nilai bilangan bulat yang kurang dari atau sama dengan max-nodes. Nilai defaultnya adalah 0.

REST

Contoh berikut menunjukkan cara menggunakan perintah nodeGroups.insert untuk mengaktifkan autoscaler saat Anda membuat grup node. Untuk menambahkan autoscaler ke grup node yang ada, gunakan perintah nodeGroups.patch.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeGroups?initialNodeCount=initial-node-count

  {
    "name": "group-name",
    "nodeTemplate": "template-name",
    "autoscalingPolicy": {
      "mode": "mode",
      "min_nodes": min-nodes,
      "max_nodes": max-nodes
    }
    "maintenancePolicy": maintenance-policy
  }

Ganti kode berikut:

  • project-id: ID project yang akan ditambahkan grup node dengan autoscaler.
  • zone: Zona tempat untuk membuat grup node baru.
  • initial-node-count: Diperlukan saat membuat grup node. Ini menentukan jumlah node awal dalam grup node. Jika nilai min-nodes lebih besar dari jumlah node awal, ukuran grup node akan ditingkatkan ke nilai min-nodes.
  • group-name: Nama grup node baru.
  • template-name: Nama template node tempat membuat grup node.
  • mode: Mode untuk autoscaler di grup node ini. Tetapkan ke salah satu opsi berikut:
    • OFF: Menonaktifkan autoscaler.
    • ON: Mengaktifkan penurunan skala dan penyebaran skala.
    • ONLY_SCALE_OUT: Hanya mengaktifkan penyebaran skala. Anda harus menggunakan mode ini jika grup node dikonfigurasi untuk memulai ulang VM yang dihosting pada server minimal.
  • max-nodes: Ukuran maksimum grup node. Tetapkan ke nilai yang kurang dari atau sama dengan 100 dan lebih besar dari atau sama dengan min-nodes.
  • min-nodes: Ukuran minimum grup node, dan harus berupa nilai bilangan bulat yang kurang dari atau sama dengan max-nodes. Nilai defaultnya adalah 0.
  • maintenance-policy: Menentukan apakah VM dimigrasikan dan apakah VM dimulai ulang selama peristiwa pemeliharaan host. Tetapkan ini ke salah satu nilai berikut:
    • DEFAULT: VM langsung melakukan migrasi ke node baru.
    • MIGRATE_WITHIN_NODE_GROUP: VM langsung melakukan migrasi ke node lain di grup node.
    • RESTART_IN_PLACE: VM dimulai ulang pada node yang sama setelah dihentikan karena peristiwa pemeliharaan.

Memperbarui setelan autoscaler

Ubah setelan autoscaler pada grup node dengan memperbarui mode autoscaler atau dengan memperbarui ukuran minimum dan maksimum grup node.

gcloud

Contoh berikut menunjukkan cara menggunakan perintah node-groups update untuk mengubah mode autoscaler pada grup node.

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Ganti kode berikut:

  • name: Nama grup node yang akan diubah mode autoscaler-nya.
  • mode: Mode untuk autoscaler di grup node ini. Tetapkan ke salah satu opsi berikut:
    • off: Menonaktifkan autoscaler.
    • on: Mengaktifkan penurunan skala dan penyebaran skala.
    • only-scale-out: Hanya mengaktifkan penyebaran skala. Anda harus menggunakan mode ini jika grup node dikonfigurasi untuk memulai ulang VM yang dihosting pada server minimal.
  • max-nodes: Ukuran maksimum grup node. Tetapkan ke nilai yang kurang dari atau sama dengan 100 dan lebih besar dari atau sama dengan min-nodes.
  • min-nodes: Ukuran minimum grup node, dan harus berupa nilai bilangan bulat yang kurang dari atau sama dengan max-nodes. Nilai defaultnya adalah 0.

REST

Contoh berikut menunjukkan cara menggunakan perintah nodeGroups.patch untuk mengubah mode autoscaler pada grup node.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode",
    "minSize": min-nodes,
    "maxSize": max-nodes
  }
}

Ganti kode berikut:

  • project-id: ID project yang berisi grup node yang akan diubah mode autoscaler-nya.
  • group-zone: Zona yang berisi grup node yang akan diubah mode autoscaler-nya.
  • group-name: Nama grup node yang akan diubah mode autoscaler-nya.
  • template-name: Nama template node tempat grup node dibuat.
  • mode: Mode untuk autoscaler di grup node ini. Tetapkan ke salah satu opsi berikut:

    • OFF: Menonaktifkan autoscaler.
    • ON: Mengaktifkan penurunan skala dan penyebaran skala.

    • ONLY_SCALE_OUT: Hanya mengaktifkan penyebaran skala. Anda harus menggunakan mode ini jika grup node dikonfigurasi dengan kebijakan pemeliharaan Migrasi dalam grup node.

  • max-nodes: Ukuran maksimum grup node. Tetapkan ke nilai yang kurang dari atau sama dengan 100 dan lebih besar dari atau sama dengan min-nodes.

  • min-nodes: Ukuran minimum grup node, dan harus berupa nilai bilangan bulat yang kurang dari atau sama dengan max-nodes. Nilai defaultnya adalah 0.

Memperbarui ukuran grup node yang diskalakan otomatis secara manual

Jika autoscaler diaktifkan, ukuran grup node akan dikelola secara otomatis, tetapi Anda dapat menjadwalkan atau menghapus VM di grup node tersebut untuk memperbarui ukuran grup secara efektif dan manual.

Untuk mengurangi ukuran grup node yang diskalakan otomatis secara manual, hapus VM dari node hingga node kosong. Jika node kosong, autoscaler akan menghapus node kosong, sehingga akan mengurangi ukuran grup node.

Untuk meningkatkan ukuran grup node yang diskalakan otomatis secara manual, tetapkan ukuran minimum grup ke nilai yang lebih besar dari ukuran saat ini. Saat ukuran minimum grup ditetapkan ke nilai yang lebih besar dari ukuran saat ini, autoscaler akan menskalakan ukuran grup ke ukuran minimum yang baru ditentukan.

Jika grup node ditetapkan untuk hanya menyebarkan skala, autoscaler akan otomatis mengelola peningkatan ukuran grup dan menonaktifkan peningkatan ukuran grup manual. Dengan setelan ini, Anda dapat mengurangi ukuran grup dengan menghapus VM dari node hingga node tersebut kosong. Kemudian, Anda dapat menghapus node kosong tersebut.

Menonaktifkan autoscaler

Jika Anda tidak perlu lagi menggunakan autoscaler untuk mengelola ukuran grup node secara otomatis, atau jika Anda perlu mengelola ukuran grup node secara manual, nonaktifkan autoscaler.

gcloud

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode OFF

Ganti name dengan nama grup node yang kebijakan penskalaan otomatisnya akan dihapus.

REST

Contoh berikut menunjukkan cara menggunakan perintah nodeGroups.patch untuk menonaktifkan autoscaler pada grup node.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode"
  }
}

Ganti kode berikut:

  • project-id: ID project yang berisi grup node yang akan diubah mode autoscaler-nya.
  • group-zone: Zona yang berisi grup node yang akan diubah mode autoscaler-nya.
  • group-name: Nama grup node yang akan diubah mode autoscaler-nya.
  • template-name: Nama template node tempat grup node dibuat.
  • mode: Mode untuk autoscaler di grup node ini. Tetapkan ke OFF untuk menonaktifkan autoscaler di grup node ini.

Melihat aktivitas autoscaler

Di konsol Google Cloud, lihat autoscaler yang menyesuaikan ukuran grup node Anda. Konsol Google Cloud menampilkan ukuran grup node saat ini. Jika autoscaler sedang menyesuaikan ukuran grup, Anda juga dapat melihat ukuran target grup node.

Konsol

  1. Di konsol Google Cloud, buka halaman Sole-tenant nodes.

    Buka Sole-tenant nodes

  2. Klik Grup node.

  3. Lihat jumlah node di setiap grup node. Jika Compute Engine menskalakan grup node, Anda juga dapat melihat target jumlah node.

Langkah selanjutnya