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:
Edit file konfigurasi cluster pengguna untuk menambahkan kumpulan node baru, dan sertakan kolom
autoscaling
. Sesuaikan nilaiminReplicas
danmaxReplicas
sesuai kebutuhan.nodePools: - name: my-new-node-pool … replicas: 3 ... autoscaling: minReplicas: 1 maxReplicas: 5
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:
Mengedit
nodePool
tertentu dalam file konfigurasi cluster pengguna, dan menyertakan kolomautoscaling
. Sesuaikan nilaiminReplicas
danmaxReplicas
sesuai kebutuhan.nodePools: - name: my-existing-node-pool … replicas: 3 ... autoscaling: minReplicas: 1 maxReplicas: 5
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:
Edit file konfigurasi cluster pengguna dan hapus kolom
autoscaling
untuk kumpulan node tersebut.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 Podkube-system
. Untuk mengetahui informasi selengkapnya tentang menambahkanPodDisruptionBudget
secara manual untuk Podkube-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:
- Bagaimana cara kerja penurunan skala?
- Apakah autoscaler Cluster dapat digunakan dengan PodDisruptionBudget dalam penurunan skala?
- Jenis Pod apa yang dapat mencegah autoscaler Cluster menghapus node?