

 **Bantu tingkatkan halaman ini** 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih **Edit halaman ini pada GitHub** tautan yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menskalakan penerapan pod dengan Horizontal Pod Autoscaler
<a name="horizontal-pod-autoscaler"></a>

Kubernetes [Horizontal Pod Autoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) secara otomatis menskalakan jumlah Pod dalam sebuah deployment, replication controller, atau replica set berdasarkan pemanfaatan CPU resource tersebut. Hal ini dapat membantu aplikasi Anda menskalakan keluar untuk memenuhi peningkatan permintaan atau penskalaan kedalam ketika sumber daya tidak diperlukan, sehingga membebaskan simpul Anda untuk aplikasi lain. Bila Anda mengatur persentase pemanfaatan CPU target, Penskala Otomatis Pod Horizontal menskalakan aplikasi Anda kedalam atau keluar untuk mencoba memenuhi target tersebut.

Penskala Otomatis Pod Horizontal adalah standar sumber daya API di Kubernetes yang hanya mengharuskan agar sumber metrik (seperti server metrik Kubernetes) diinstal pada klaster Amazon EKS Anda agar bisa bekerja. Anda tidak perlu men-deploy atau menginstal Penskala Otomatis Pod Horizontal di klaster Anda untuk mulai menskalakan aplikasi Anda. Untuk informasi selengkapnya, lihat [Penskala Otomatis Pod Horizontal](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) dalam dokumentasi Kubernetes.

Gunakan topik ini untuk mempersiapkan Penskala Otomatis Pod Horizontal untuk klaster Amazon EKS Anda dan untuk memverifikasi bahwa itu bekerja dengan contoh aplikasi.

**catatan**  
Topik ini didasarkan pada [panduan autoscaler Horizontal Pod dalam dokumentasi Kubernetes](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/).
+ Anda masih memiliki klaster Amazon EKS. Jika tidak, lihat[Memulai dengan Amazon EKS](getting-started.md).
+ Anda telah menginstal Server Metrik Kubernetes. Untuk informasi selengkapnya, tinjau [Melihat penggunaan resource dengan Kubernetes Metrics Server](metrics-server.md).
+ Anda menggunakan `kubectl` klien yang [dikonfigurasi untuk berkomunikasi dengan klaster Amazon EKS](getting-started-console.md#eks-configure-kubectl).

## Jalankan aplikasi uji Penskala Otomatis Pod Horizontal
<a name="hpa-sample-app"></a>

Dalam bagian ini, Anda men-deploy contoh aplikasi untuk memverifikasi bahwa Penskala Otomatis Pod Horizontal bekerja.

**catatan**  
Contoh ini didasarkan pada [panduan autoscaler Horizontal Pod dalam dokumentasi Kubernetes](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/).

1. Deploy aplikasi web server Apache sederhana dengan perintah berikut.

   ```
   kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
   ```

   Pod server web Apache ini diberi batas CPU 500 millicpu dan melayani pada port 80.

1. Buat sumber daya Penskala Otomatis Pod Horizontal untuk deployment `php-apache`.

   ```
   kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
   ```

   Perintah ini menciptakan autoscaler yang menargetkan 50 persen pemanfaatan CPU untuk deployment, dengan minimal satu Pod dan maksimal sepuluh Pod. Ketika beban CPU rata-rata lebih rendah dari 50 persen, autoscaler mencoba mengurangi jumlah Pod dalam penerapan, menjadi minimal satu. Ketika beban lebih besar dari 50 persen, autoscaler mencoba untuk meningkatkan jumlah Pod dalam penerapan, hingga maksimal sepuluh. Untuk informasi selengkapnya, lihat [Bagaimana cara HorizontalPodAutoscaler kerja?](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#how-does-a-horizontalpodautoscaler-work) dalam dokumentasi Kubernetes.

1. Jelaskan penskala otomatis dengan perintah berikut untuk menampilkan detailnya.

   ```
   kubectl get hpa
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME         REFERENCE               TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
   php-apache   Deployment/php-apache   0%/50%    1         10        1          51s
   ```

   Seperti yang Anda lihat, beban CPU saat ini`0%`, karena belum ada beban di server. Jumlah Pod sudah berada pada batas terendahnya (satu), sehingga tidak dapat menskalakan.

1.  Buat beban untuk server web dengan menjalankan wadah.

   ```
   kubectl run -i \
       --tty load-generator \
       --rm --image=busybox \
       --restart=Never \
       -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
   ```

1. Untuk melihat deployment menskalakan keluar, jalankan perintah berikut secara berkala di terminal yang terpisah dari terminal yang Anda jalankan dari langkah sebelumnya.

   ```
   kubectl get hpa php-apache
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME         REFERENCE               TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
   php-apache   Deployment/php-apache   250%/50%   1         10        5          4m44s
   ```

   Mungkin perlu waktu lebih dari satu menit untuk jumlah replika meningkat. Selama persentase CPU sebenarnya lebih tinggi dari persentase target, maka jumlah replika meningkat, hingga 10. Dalam hal ini, itu`250%`, sehingga jumlah `REPLICAS` terus meningkat.
**catatan**  
Butuh beberapa menit sebelum Anda melihat jumlah replika mencapai maksimum. Jika hanya 6 replika, misalnya, yang diperlukan agar beban CPU tetap pada atau di bawah 50%, maka beban tidak akan berskala melebihi 6 replika.

1. Hentikan beban. Di jendela terminal Anda menghasilkan beban, hentikan beban dengan menahan `Ctrl+C` tombol. Anda dapat melihat skala replika kembali ke 1 dengan menjalankan perintah berikut lagi di terminal tempat Anda menonton penskalaan.

   ```
   kubectl get hpa
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME         REFERENCE               TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
   php-apache   Deployment/php-apache   0%/50%    1         10        1          25m
   ```
**catatan**  
Kerangka waktu default untuk penskalaan mundur adalah lima menit, sehingga akan memakan waktu sebelum Anda melihat jumlah replika mencapai 1 lagi, bahkan ketika persentase CPU saat ini adalah 0 persen. Kerangka waktu dapat dimodifikasi. Untuk informasi selengkapnya, lihat [Penskala Otomatis Pod Horizontal](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) dalam dokumentasi Kubernetes.

1. Setelah Anda selesai bereksperimen dengan aplikasi sampel Anda, hapus sumber daya `php-apache`.

   ```
   kubectl delete deployment.apps/php-apache service/php-apache horizontalpodautoscaler.autoscaling/php-apache
   ```