Jika pemanfaatan sumber daya aplikasi Anda menunjukkan perubahan periodik dan Anda perlu menskalakan pod berdasarkan jadwal seperti Crontab, Anda dapat menggunakan Cron Horizontal Pod Autoscaler (CronHPA) untuk mencapai penjadwalan penskalaan. CronHPA cocok untuk skenario di mana lalu lintas bisnis memiliki periode puncak yang signifikan atau aplikasi perlu menjalankan tugas pada waktu tertentu.
Tips pra-baca
Prasyarat
Sebuah kluster ACK dikelola atau kluster ACK Serverless telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster ACK Dikelola dan Buat Kluster ACK Serverless.
Klien kubectl terhubung ke kluster. Untuk informasi lebih lanjut, lihat Hubungkan ke Kluster Kubernetes Menggunakan kubectl.
Template dan parameter CronHPA
CronHPA diimplementasikan berdasarkan kubernetes-cronhpa-controller. Kubernetes-cronhpa-controller adalah pengontrol penskalaan horizontal pod berbasis waktu yang menskalakan kluster berdasarkan jadwal mirip crontab, seperti secara otomatis meningkatkan jumlah pod selama jam sibuk hari kerja dan mengurangi jumlah pod selama jam tidak sibuk. CronHPA dapat diterapkan pada objek Kubernetes apa pun yang mendukung sub-sumber daya penskalaan, seperti Deployment dan StatefulSet.
Langkah 1: Instal komponen CronHPA
Anda dapat menginstal komponen CronHPA ack-kubernetes-cronhpa-controller untuk mencapai penskalaan terjadwal beban kerja aplikasi.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.
Klik tab Manage Applications, temukan ack-kubernetes-cronhpa-controller, klik Install, dan ikuti petunjuk halaman untuk menyelesaikan instalasi komponen.
Langkah 2: Buat Tugas CronHPA
Sebelum membuat dan menjalankan CronHPA untuk aplikasi, pastikan bahwa komponen CronHPA di kluster berjalan normal dan bahwa hanya ada satu objek tugas HPA untuk aplikasi saat ini. Contoh berikut menunjukkan cara mengaktifkan CronHPA untuk aplikasi tanpa status. Langkah-langkah untuk jenis beban kerja lainnya serupa.
Buat pekerjaan CronHPA saat membuat aplikasi
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel kiri, pilih .
Pada halaman Deployments, klik Create from Image.
Pada halaman Create, ikuti petunjuk halaman untuk menyelesaikan konfigurasi informasi dasar aplikasi, konfigurasi kontainer, konfigurasi layanan, dan konfigurasi penskalaan terjadwal untuk membuat Deployment yang mendukung CronHPA.
Untuk informasi lebih lanjut tentang langkah-langkah dan parameter, lihat Buat Aplikasi Tanpa Status Menggunakan Deployment. Berikut ini hanya memperkenalkan parameter utama.
Basic Information: Konfigurasikan informasi dasar aplikasi, seperti nama dan jumlah replika.
Container: Konfigurasikan gambar, CPU, dan sumber daya memori yang diperlukan oleh kontainer.
Advanced:
Di bagian Access Control, klik Create yang sesuai dengan Service untuk mengonfigurasi layanan.
Di bagian Scaling, centang Enable untuk CronHPA, ikuti petunjuk halaman untuk menginstal komponen (abaikan jika sudah diinstal), dan kemudian konfigurasikan kondisi dan parameter untuk penskalaan terjadwal.
Job Name: Nama tugas CronHPA.
Desired Number of Replicas: Saat waktu yang dijadwalkan tercapai, jumlah replika aplikasi secara otomatis diskalakan ke nilai ini.
Scaling Schedule: Tetapkan periode penjadwalan. Untuk informasi lebih lanjut tentang menetapkan periode penjadwalan untuk pekerjaan CronHPA, lihat AliyunContainerService/kubernetes-cronhpa-controller.
Buat pekerjaan CronHPA untuk aplikasi yang ada
Buat di halaman Beban Kerja
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel kiri, pilih .
Pada halaman Deployments, klik Details di kolom Actions deployment target, lalu klik tab Pod Scaling. Di bagian CronHPA, ikuti petunjuk halaman untuk menginstal komponen CronHPA (abaikan jika sudah diinstal) dan klik Create untuk mengonfigurasi CronHPA.

Parameter
Deskripsi
Job Name
Nama pekerjaan CronHPA.
Desired Number of Replicas
Saat waktu yang dijadwalkan tercapai, jumlah replika aplikasi secara otomatis diskalakan ke nilai ini.
Scaling Schedule
Periode penjadwalan yang ditetapkan. Untuk informasi lebih lanjut tentang menetapkan periode penjadwalan untuk pekerjaan CronHPA, lihat AliyunContainerService/kubernetes-cronhpa-controller.
Buat di halaman Penskalaan Beban Kerja
Halaman Penskalaan Beban Kerja hanya tersedia untuk pengguna dalam daftar putih. Jika Anda ingin menggunakan halaman ini, ajukan tiket.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel kiri, klik Workload Scaling.
Di sudut kanan atas halaman, klik Create Auto Scaling, pilih beban kerja target, lalu centang opsi CronHPA di bawah tab Horizontal Scaling. Ikuti petunjuk halaman untuk menginstal komponen (abaikan jika sudah diinstal) dan konfigurasikan kebijakan CronHPA.
CronHPA Name: Masukkan nama CronHPA.
Job Name: Masukkan nama job CronHPA.
Desired Number of Replicas: Saat waktu yang dijadwalkan tercapai, jumlah replika aplikasi secara otomatis diskalakan ke nilai ini.
Scaling Schedule: Tetapkan periode penjadwalan. Untuk informasi lebih lanjut tentang menetapkan periode penjadwalan untuk tugas CronHPA, lihat AliyunContainerService/kubernetes-cronhpa-controller.
Operasi terkait
Lihat, tambahkan, atau modifikasi pekerjaan CronHPA
Setelah membuat pekerjaan CronHPA, Anda dapat melihat status dan daftar pekerjaan CronHPA di daftar CronHPA. Anda dapat menambahkan pekerjaan CronHPA atau memodifikasi konfigurasi CronHPA yang ada melalui titik masuk berikut.
Titik Masuk Penskalaan Beban Kerja
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel kiri, klik Workload Scaling.
Di bagian CronHPA di bawah tab Horizontal Scaling, klik Edit di kolom Actions.
Titik Masuk Beban Kerja (menggunakan aplikasi tanpa status sebagai contoh, langkah-langkah untuk jenis beban kerja lainnya serupa)
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel kiri, pilih .
Di halaman Deployments, klik Details di kolom Actions deployment target, lalu klik tab Pod Scaling. Di bagian CronHPA, klik Add or Edit Job di kolom Actions.
Implementasikan koordinasi antara CronHPA dan HPA
Cron Horizontal Pod Autoscaler (HPA) dan Horizontal Pod Autoscaler (HPA) tidak saling menyadari. Jika baik CronHPA maupun HPA dikonfigurasikan untuk aplikasi Anda, CronHPA dan HPA akan menskalakan aplikasi Anda secara terpisah. Dalam kasus ini, aktivitas penskalaan terakhir akan menimpa yang sebelumnya. Untuk menyelesaikan masalah ini, Container Service for Kubernetes (ACK) menyediakan solusi bagi CronHPA untuk berinteraksi dengan HPA tanpa konflik. Jika ACK mendeteksi bahwa baik CronHPA maupun HPA diterapkan, ACK menetapkan HPA sebagai objek penskalaan CronHPA. CronHPA memicu HPA untuk menskalakan objek yang diskalakan oleh HPA, seperti Deployment, pada waktu yang dijadwalkan.
Untuk informasi lebih lanjut, lihat Implementasikan Koordinasi Antara CronHPA dan HPA.
FAQ
Bagaimana cara menghapus ack-kubernetes-cronhpa-controller?
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel navigasi kiri, pilih .
Pada halaman Helm, periksa apakah komponen ack-kubernetes-cronhpa-controller ada.
Jika ada, klik Delete di kolom Actions di sebelah kanan komponen.
PentingMenghapus komponen melalui Helm tidak akan menghapus CRD dan sumber daya Tugas yang telah dibuat. Untuk sepenuhnya menghapus sumber daya terkait CronHPA, hapus secara manual.
Jika tidak ada, lanjutkan ke langkah berikutnya.
Di halaman detail, di panel navigasi kiri, pilih .
Pada halaman Add-ons, temukan komponen ack-kubernetes-cronhpa-controller dan klik Uninstall.