Dokumen ini menjelaskan penskala otomatis cluster, yang secara otomatis mengontrol ukuran kumpulan node Anda. Autoscaler cluster diaktifkan saat Anda menentukan nilai minimum dan maksimum untuk jumlah node dalam kumpulan node. Anda menentukan nilai tersebut saat Membuat kumpulan node atau Memperbarui kumpulan node.
Menskalakan kumpulan node secara otomatis
Autoscaler cluster otomatis mengubah ukuran jumlah node dalam kumpulan node tertentu, berdasarkan permintaan workload Anda. Anda tidak perlu menambahkan atau menghapus node secara manual atau menyediakan node pool secara berlebihan. Sebagai gantinya, Anda akan menentukan ukuran minimum dan maksimum untuk kumpulan node, dan sisanya akan bersifat otomatis.
Jika resource perlu dihapus atau dipindahkan saat melakukan penskalaan otomatis pada cluster, workload Anda mungkin akan mengalami gangguan sementara. Misalnya, jika beban kerja Anda terdiri dari pengontrol dengan satu replika, Pod replika tersebut dapat dijadwalkan ulang ke node yang berbeda jika node-nya saat ini dihapus. Oleh karena itu, Anda harus mendesain workload untuk menoleransi potensi gangguan atau memastikan bahwa Pod yang penting tidak terganggu.
Cara kerja penskala otomatis cluster
Autoscaler cluster bekerja berdasarkan kumpulan per node. Ketika menggunakan autoscaler cluster untuk mengonfigurasi kumpulan node, Anda menentukan ukuran minimum dan maksimum kumpulan node. Anda dapat mengubah ukuran minimum dan maksimum saat Membuat kumpulan node atau Memperbarui kumpulan node.
Autoscaler cluster akan meningkatkan atau menurunkan ukuran kumpulan node secara otomatis, berdasarkan permintaan resource (bukan penggunaan resource yang sebenarnya) di kumpulan node tersebut. Autoscaler cluster menambahkan node jika objek Pod tidak dapat dijadwalkan dan kapasitas di kumpulan node tidak cukup untuk memenuhi permintaan.
Autoscaler cluster juga menghapus node jika kurang dimanfaatkan dan semua objek Pod dapat dijadwalkan pada jumlah node yang lebih kecil. Jika node tidak dapat dihabiskan dengan lancar setelah 10 menit, node akan dihentikan secara paksa. Periode ini tidak dapat dikonfigurasi.
Jika Pod meminta terlalu sedikit resource (misalnya, jika setelan default tidak memadai), penskalaan otomatis cluster tidak dapat memperbaiki situasi ini. Anda dapat membantu memastikan bahwa penskalaan otomatis cluster berfungsi seakurat mungkin dengan membuat permintaan resource yang memadai untuk semua workload Anda. Untuk mengetahui informasi selengkapnya, baca bagian Mengelola resource untuk container.
Kriteria pengoperasian
Autoscaler cluster membuat asumsi berikut saat mengubah ukuran kumpulan node:
- Semua objek Pod yang direplikasi dapat dimulai ulang pada beberapa node lain, dan kemungkinan menyebabkan gangguan singkat. Jika workload Anda tidak menoleransi gangguan, konfigurasikan workload untuk dijalankan di kumpulan node dengan penskalaan otomatis dinonaktifkan. Untuk mengetahui informasi selengkapnya, lihat Mengontrol penjadwalan dengan taint node.
- Autoscaler cluster dapat mengganti operasi pengelolaan node manual apa pun yang Anda lakukan.
- Semua node dalam satu kumpulan node memiliki kumpulan label yang sama.
- Autoscaler cluster memilih grup node yang memiliki CPU yang paling tidak nonaktif atau memori yang tidak terpakai setelah menaikkan skala. Perilaku ini memengaruhi kumpulan node mana yang ditingkatkan skalanya jika Anda memiliki ukuran node yang berbeda (misalnya, CPU tinggi atau node memori tinggi) di cluster yang sama.
Ukuran kumpulan node minimum dan maksimum
Anda dapat menentukan ukuran minimum dan maksimum untuk setiap kumpulan node dalam cluster
dengan tanda min-nodes
dan max-nodes
. Untuk menonaktifkan penskalaan otomatis, tetapkan
min-nodes
dan max-nodes
ke jumlah yang sama. Autoscaler cluster membuat
keputusan penskalaan dalam batas ukuran ini.
Saat menetapkan ukuran maksimum node pool, pastikan ukuran maksimum node pool cukup besar untuk menjalankan semua workload Anda. Jika kumpulan node dalam cluster Anda tidak memiliki cukup memori dan CPU yang tersedia untuk menjalankan semua beban kerja Anda, pemadaman layanan dapat terjadi.
Menggunakan PodDisruptionBudget
untuk melindungi workload
Anda dapat mengonfigurasi GKE di AWS agar terlindung dari gangguan workload dengan PodDisruptionBudget
. Saat membuat PodDisruptionBudget
, Anda menentukan jumlah minimum replika Pod yang harus tersedia atau jumlah maksimum replika Pod yang dapat menjadi tidak tersedia pada waktu tertentu. Untuk informasi
selengkapnya, lihat
Menentukan Anggaran Gangguan untuk Aplikasi.
Tingkatkan skala dari nol node
Dimulai dengan GKE di versi AWS berikut, penskala otomatis cluster mendukung peningkatan skala kumpulan node dari nol node:
- Versi 1.29 dan yang lebih baru
- Versi 1.28 dari 1.28.8-gke.800 dan yang lebih baru
- Versi 1.27 dari 1.27.12-gke.800 dan yang lebih baru
Jika menggunakan versi sebelumnya, Anda harus mengupgrade cluster ke salah satu versi ini untuk menggunakan fitur ini. Untuk mengaktifkan fitur ini untuk cluster yang ada, update cluster Anda ke versi yang didukung, lalu lakukan update berkelanjutan untuk node pool dengan mengupdate versi Kubernetes-nya. Untuk mengetahui informasi selengkapnya tentang cara mengupdate node pool, lihat Mengupdate kumpulan node.
Autoscaler cluster mengikuti label dan taint yang Anda tentukan pada kumpulan node saat membuat keputusan penskalaan, meskipun tidak ada node yang tersedia untuk referensi. GKE di AWS secara otomatis menetapkan label dan tag taint yang diperlukan pada grup Auto Scaling AWS yang mendasarinya pada kumpulan node. Untuk mengetahui informasi selengkapnya tentang tag ini, lihat bagian Penyiapan Penemuan Otomatis di halaman GitHub yang menjelaskan konfigurasi autoscaler cluster untuk AWS.
Dengan menetapkan tag label dan taint ini, GKE di AWS memungkinkan cluster autoscaler membuat template node yang akurat. Template node adalah representasi virtual node yang menyertakan konfigurasi node, label, dan taint yang benar, meskipun tidak ada node fisik di kumpulan node. Dengan adanya template node yang akurat, penskala otomatis cluster dapat membuat keputusan peningkatan skala yang benar.
Saat mengonfigurasi taint di kumpulan node, perhatikan bahwa grup Penskalaan Otomatis AWS memiliki batasan: jika Anda menerapkan beberapa taint dengan kunci yang sama, tetapi kombinasi efek nilainya berbeda, hanya taint yang terakhir diterapkan dengan kunci duplikat yang akan dipertimbangkan oleh penskala otomatis cluster.