Anda dapat membuat aplikasi dengan Horizontal Pod Autoscaler (HPA) diaktifkan di konsol Alibaba Cloud Container Compute Service (ACS) atau menggunakan kubectl. Topik ini menjelaskan cara membuat aplikasi dengan HPA diaktifkan dalam kluster ACS dan cara menguji HPA.
Prasyarat
Kluster ACS telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster ACS.
Klien kubectl terhubung ke kluster. Untuk informasi lebih lanjut, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.
Buat aplikasi dengan HPA diaktifkan
Gunakan konsol ACS
Masuk ke konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri halaman detail kluster, pilih .
Di tab Deployments, klik Create from Image.
Di langkah Basic Information, masukkan nama aplikasi, atur parameter, lalu klik Next.
Parameter
Deskripsi
Namespace
Pilih namespace tempat aplikasi berada. Namespace default dipilih secara otomatis.
Nama
Masukkan nama untuk aplikasi.
Replika
Jumlah pod yang ingin Anda sediakan untuk aplikasi. Nilai default: 2.
Tipe
Tipe objek sumber daya. Nilai valid: Deployment, StatefulSet, Job, dan CronJob.
Label
Label yang ingin Anda tambahkan ke aplikasi untuk mengidentifikasi aplikasi.
Anotasi
Anotasi yang ingin Anda tambahkan ke aplikasi.
Tipe Instans
Tipe instans pod. Nilai valid: General-purpose, BestEffort, dan Performance-enhanced.
Di langkah Container, atur parameter kontainer, pilih image, lalu konfigurasikan sumber daya komputasi yang diperlukan. Klik Next. Untuk informasi lebih lanjut, lihat Konfigurasikan Kontainer.
CatatanAnda harus mengonfigurasi sumber daya komputasi yang diperlukan oleh Deployment. Jika tidak, Anda tidak dapat mengaktifkan HPA.
Di bagian Access Control dari langkah Advanced, klik Create untuk membuat Layanan. Untuk informasi lebih lanjut, lihat Pengaturan Lanjutan.
Di langkah Advanced, pilih Enable untuk HPA dan konfigurasikan ambang penskalaan serta pengaturan terkait.
Metric: Pilih Penggunaan CPU atau Penggunaan Memori. Tipe sumber daya yang dipilih harus sesuai dengan yang ditentukan di parameter Sumber Daya yang Dibutuhkan.
Condition: Tentukan ambang batas penggunaan sumber daya. HPA memicu peristiwa penskalaan ketika ambang batas terlampaui. Untuk informasi lebih lanjut tentang algoritma yang digunakan untuk melakukan penskalaan otomatis Pod horizontal, lihat Detail Algoritma.
Max. Replicas: Tentukan jumlah maksimum pod ke mana Deployment dapat diperluas.
Min. Replicas: Tentukan jumlah minimum pod ke mana Deployment dapat dikurangi.
Di pojok kanan bawah langkah Lanjutan, klik Create untuk membuat aplikasi dengan HPA diaktifkan.
Gunakan kubectl
Anda juga dapat menerapkan HPA menggunakan template orkestrasi dan mengaitkan HPA dengan Deployment tempat Anda ingin mengaktifkan HPA. Kemudian, jalankan perintah kubectl untuk mengaktifkan HPA.
Contoh berikut menunjukkan cara mengaktifkan HPA untuk aplikasi NGINX.
Buat file bernama nginx.yaml dan salin konten berikut ke file:
Contoh:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/nginx:1.7.9 # ganti dengan <image_name:tags> Anda ports: - containerPort: 80 resources: requests: ## Parameter ini diperlukan untuk menjalankan HPA. cpu: 500mJalankan perintah berikut untuk membuat aplikasi NGINX:
kubectl apply -f nginx.yamlBuat file bernama hpa.yaml dan salin konten berikut ke file:
Gunakan parameter scaleTargetRef untuk mengaitkan HPA dengan Deployment nginx.
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: nginx-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: nginx minReplicas: 1 # Jumlah minimum pod ke mana Deployment dapat dikurangi. Nilainya harus bilangan bulat lebih besar atau sama dengan 1. maxReplicas: 10 # Jumlah maksimum pod ke mana Deployment dapat diperluas. Nilainya harus lebih besar dari nilai minReplicas. metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 # Rata-rata utilisasi sumber daya, yaitu rasio antara rata-rata penggunaan sumber daya dengan jumlah sumber daya yang diminta.Jalankan perintah berikut untuk menerapkan HPA:
kubectl apply -f hpa.yamlSetelah HPA diterapkan, jalankan perintah
kubectl describe hpa <Nama HPA>lagi.Jika keluaran berikut dikembalikan, HPA berjalan sesuai harapan:
Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulRescale 4m53s horizontal-pod-autoscaler New size: 1; reason: All metrics below target
Referensi
Untuk informasi lebih lanjut tentang Cron Horizontal Pod Autoscaler (CronHPA), lihat CronHPA.