Jika penggunaan resource aplikasi Anda mengikuti pola berulang yang dapat diprediksi, Anda dapat menggunakan CronHPA (Cron Horizontal Pod Autoscaler) untuk menskalakan Pod sesuai jadwal. CronHPA ideal untuk skenario dengan puncak traffic yang dapat diprediksi atau untuk menjalankan tugas terjadwal.
Sebelum memulai
Container Service for Kubernetes (ACK) menyediakan beberapa solusi untuk workload scaling (pada lapisan penjadwalan) dan node scaling (pada lapisan resource). Sebelum memulai, baca auto scaling untuk memahami kasus penggunaan dan keterbatasan masing-masing solusi.
Templat dan parameter CronHPA
CronHPA diimplementasikan oleh kubernetes-cronhpa-controller, yaitu autoscaler Pod berbasis waktu. CronHPA menggunakan sintaks mirip cron untuk mengonfigurasi kebijakan penskalaan terjadwal, sehingga Anda dapat menyesuaikan resource secara dinamis untuk workload dengan fluktuasi traffic periodik. CronHPA dapat diterapkan pada objek Kubernetes apa pun yang mendukung scale subresource, seperti Deployments dan StatefulSets.
Langkah 1: Instal add-on CronHPA
-
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons .
Klik tab Application Management, temukan ack-kubernetes-cronhpa-controller, lalu ikuti petunjuk di layar untuk menginstal add-on tersebut.
Langkah 2: Buat tugas CronHPA
Sebelum membuat tugas CronHPA, pastikan add-on CronHPA sedang berjalan di kluster Anda dan aplikasi target hanya memiliki satu objek HPA. Contoh berikut menunjukkan cara membuat tugas CronHPA untuk aplikasi tanpa status. Prosedurnya serupa untuk jenis workload lainnya.
Saat membuat aplikasi
-
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Di halaman Deployments, klik Create from Image.
Di halaman Create, konfigurasikan informasi dasar, kontainer, layanan, dan pengaturan penskalaan terjadwal untuk membuat Deployment yang mendukung CronHPA.
Untuk petunjuk detail dan deskripsi parameter, lihat Create a stateless workload (Deployment). Parameter utama dijelaskan di bawah ini.
Basic Information: Konfigurasikan nama aplikasi dan jumlah replika.
Container: Konfigurasikan image dan tentukan resource CPU serta memori yang dibutuhkan untuk kontainer.
Advanced:
Di bagian Scaling, centang kotak Enable untuk CronHPA. Jika add-on belum diinstal, ikuti prompt untuk menginstalnya. Lalu, konfigurasikan kondisi dan parameter penskalaan terjadwal.
Scheduled Task Name: Nama tugas CronHPA.
Desired Number of Replicas: Jumlah replika target untuk aplikasi pada waktu yang dijadwalkan.
Scaling Schedule: Jadwal untuk tugas penskalaan. Untuk informasi selengkapnya, lihat Kubernetes CronHPA Controller.
Untuk aplikasi yang sudah ada
Dari halaman Workloads
-
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Klik nama workload target, lalu klik tab Pod Scaling. Di bagian CronHPA, klik Create dan konfigurasikan tugas CronHPA.
Parameter
Deskripsi
Job Name
Nama tugas CronHPA.
Desired Number of Replicas
Jumlah replika yang menjadi target penskalaan aplikasi pada waktu yang dijadwalkan.
Scaling Schedule
Jadwal untuk tugas penskalaan. Untuk informasi selengkapnya tentang cara menetapkan jadwal untuk tugas CronHPA, lihat AliyunContainerService/kubernetes-cronhpa-controller.
Halaman Workload Scaling
Halaman ini hanya tersedia untuk pengguna yang masuk daftar allowlist. Untuk meminta akses, submit a ticket.
-
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workload Scaling.
Di pojok kanan atas halaman, klik Create Auto Scaling.
Klik tab HPA and CronHPA, Select Workload, lalu centang kotak CronHPA di bagian Configure Auto Scaling Policy.
Anda dapat menambahkan beberapa tugas CronHPA. Konfigurasikan kebijakan CronHPA sesuai petunjuk, lalu klik OK.
CronHPA Task Name: Nama kustom untuk objek CronHPA.
Job Name: Nama kustom untuk tugas CronHPA.
Desired Number of Replicas: Jumlah replika target untuk aplikasi pada waktu yang dijadwalkan.
Scaling Schedule: Jadwal untuk tugas penskalaan. Untuk informasi selengkapnya, lihat Kubernetes CronHPA Controller.
Menggunakan kubectl
Buat file bernama
cronhpa.yamldan salin konten berikut ke dalamnya.apiVersion: autoscaling.alibabacloud.com/v1beta1 kind: CronHorizontalPodAutoscaler metadata: name: cronhpa-sample namespace: default spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: nginx-deployment-basic excludeDates: - "* * * 15 11 *" - "* * * * * 5" jobs: - name: "scale-down" schedule: "30 */1 * * * *" targetSize: 1 runOnce: false - name: "scale-up" schedule: "0 */1 * * * *" targetSize: 3 runOnce: trueJalankan perintah berikut untuk membuat tugas CronHPA untuk workload yang sudah ada:
kubectl apply -f cronhpa.yamlOutput yang diharapkan:
cronhorizontalpodautoscaler.autoscaling.alibabacloud.com/cronhpa-sample created
Operasi terkait
Kelola tugas CronHPA
Setelah membuat tugas CronHPA, Anda dapat melihat statusnya di daftar CronHPA. Untuk menambahkan tugas baru atau mengubah tugas yang sudah ada, gunakan salah satu metode berikut:
Dari halaman Workload Scaling
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workload Scaling.
Klik tab CronHPA. Di kolom Actions untuk tugas CronHPA target, klik Edit.
-
Dari halaman Workloads (menggunakan Deployment sebagai contoh)
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
Di halaman Deployments, klik Details untuk Deployment target di kolom Actions, lalu klik tab Pod Scaling. Di kolom Actions bagian CronHPA, klik Add or Modify Job.
-
Gunakan CronHPA bersama HPA
Untuk informasi selengkapnya, lihat Make CronHPA compatible with HPA.