Mengaktifkan penskala otomatis cluster

Halaman ini menunjukkan cara melakukan penskalaan otomatis cluster Anda. Untuk mempelajari cara kerja otomatis cluster, lihat Ringkasan penskalaan otomatis cluster.

Penskalaan otomatis cluster mengubah ukuran jumlah node dalam kumpulan node tertentu berdasarkan permintaan workload Anda. Anda menentukan nilai minReplicas dan maxReplicas untuk setiap kumpulan node di cluster Anda.

Untuk masing-masing kumpulan node, minReplicas harus ≥ 1. Namun, jumlah node cluster pengguna yang tidak diwarnai pada waktu tertentu harus setidaknya 3. Artinya, jumlah nilai minReplicas untuk semua kumpulan node yang diskalakan otomatis, ditambah jumlah nilai replicas untuk semua kumpulan node yang tidak diskalakan secara otomatis, harus minimal 3.

Membuat cluster pengguna dengan penskalaan otomatis

Untuk membuat cluster pengguna dengan penskalaan otomatis, tambahkan kolom autoscaling ke bagian nodePools di file konfigurasi cluster pengguna.

nodePools:
- name: pool‐1
  …
  replicas: 3
  ...
  autoscaling:
    minReplicas: 1
    maxReplicas: 5

Konfigurasi ini membuat kumpulan node dengan 3 replika, dan menerapkan penskalaan otomatis dengan ukuran kumpulan node minimum sebagai 1 dan ukuran kumpulan node maksimum sebagai 5.

Nilai minReplicas harus ≥ 1.

Menambahkan kumpulan node dengan penskalaan otomatis

Untuk menambahkan node pool dengan penskalaan otomatis ke cluster yang sudah ada:

  1. Edit file konfigurasi cluster pengguna untuk menambahkan kumpulan node baru, dan sertakan kolom autoscaling. Sesuaikan nilai minReplicas dan maxReplicas sesuai kebutuhan.

    nodePools:
    - name: my-new-node-pool
      …
      replicas: 3
      ...
      autoscaling:
        minReplicas: 1
        maxReplicas: 5
    
  2. Jalankan perintah berikut:

    gkectl update cluster --config USER_CLUSTER_CONFIG \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

Mengaktifkan kumpulan node yang ada untuk penskalaan otomatis

Untuk mengaktifkan penskalaan otomatis untuk kumpulan node di cluster yang ada:

  1. Mengedit nodePool tertentu dalam file konfigurasi cluster pengguna, dan menyertakan kolom autoscaling. Sesuaikan nilai minReplicas dan maxReplicas sesuai kebutuhan.

    nodePools:
    - name: my-existing-node-pool
      …
      replicas: 3
      ...
      autoscaling:
        minReplicas: 1
        maxReplicas: 5
    
  2. Jalankan perintah berikut:

    gkectl update cluster --config USER_CLUSTER_CONFIG \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

Menonaktifkan penskalaan otomatis untuk kumpulan node yang ada

Untuk menonaktifkan penskalaan otomatis bagi node pool tertentu:

  1. Edit file konfigurasi cluster pengguna dan hapus kolom autoscaling untuk kumpulan node tersebut.

  2. Jalankan perintah gkectl update cluster.

Memeriksa perilaku penskala otomatis cluster

Anda dapat menentukan apa yang dilakukan penskala otomatis cluster dengan beberapa cara.

Memeriksa log penskala otomatis cluster

Pertama, cari nama Pod penskalaan otomatis cluster. Jalankan perintah ini, dengan mengganti `USER_CLUSTER_NAME dengan nama cluster pengguna:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods -n USER_CLUSTER_NAME | grep cluster-autoscaler

Untuk memeriksa log di Pod penskalaan otomatis cluster, ganti POD_NAME dengan nama Pod:

kubectl --kubeconfig ADMIN_KUBECONFIG logs cluster-autoscaler-POD_NAME --container cluster-autoscaler -n USER_CLUSTER_NAME

Memeriksa peta konfigurasi

Autoscaler cluster memublikasikan peta konfigurasi kube-system/cluster-autoscaler-status. Untuk melihat peta ini, jalankan perintah ini:

kubectl --kubeconfig USER_KUBECONFIG get configmap cluster-autoscaler-status -n kube-system -o yaml

Periksa peristiwa penskalaan otomatis cluster.

Anda dapat memeriksa peristiwa penskalaan otomatis cluster:

  • Pada pod (khususnya yang tidak dapat dijadwalkan, atau pada node yang kurang digunakan)
  • Pada node
  • Pada peta konfigurasi kube-system/cluster-autoscaler-status.

Pemecahan masalah

Lihat informasi pemecahan masalah untuk penskala otomatis cluster berikut:

  • Anda mungkin mengalami salah satu batasan untuk penskala otomatis cluster.
  • Jika Anda mengalami masalah saat menurunkan skala cluster, lihat Penjadwalan dan gangguan Pod. Anda mungkin harus menambahkan PodDisruptionBudget untuk Pod kube-system. Untuk mengetahui informasi selengkapnya tentang menambahkan PodDisruptionBudget secara manual untuk Pod kube-system, lihat FAQ tentang penskalaan otomatis cluster Kubernetes.
  • Saat menurunkan skala, penskalaan otomatis cluster mengikuti aturan penjadwalan dan penghapusan yang ditetapkan di Pod. Pembatasan ini dapat mencegah node dihapus oleh autoscaler. Penghapusan node dapat dicegah jika berisi Pod dengan salah satu kondisi berikut:
    • Aturan afinitas atau anti-afinitas Pod mencegah penjadwalan ulang.
    • Pod memiliki penyimpanan lokal.
    • Pod tidak dikelola oleh Pengontrol seperti Deployment, StatefulSet, Job, atau ReplicaSet.

Untuk mengetahui informasi selengkapnya tentang penskalaan otomatis cluster dan cara mencegah gangguan, lihat pertanyaan berikut di FAQ tentang penskalaan otomatis cluster Kubernetes: