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
Bagian Kubernetes Horizontal Pod Autoscaler
Bagian Horizontal Pod Autoscaler adalah sumber API daya standar di Kubernetes yang hanya membutuhkan sumber metrik (seperti Kubernetes metrics server) diinstal pada EKS cluster Amazon Anda untuk bekerja. Anda tidak perlu menggunakan atau menginstal Horizontal Pod Autoscaler di cluster Anda untuk mulai menskalakan aplikasi Anda. Untuk informasi selengkapnya, lihat Horizontal Pod Autoscaler
Gunakan topik ini untuk mempersiapkan Horizontal Pod Autoscaler untuk EKS cluster Amazon Anda dan untuk memverifikasi bahwa itu berfungsi dengan aplikasi sampel.
catatan
Topik ini didasarkan pada panduan penskalaan otomatis Horizontal Pod
-
Anda memiliki EKS cluster Amazon yang sudah ada. Jika tidak, lihatMemulai dengan Amazon EKS.
-
Anda memiliki Kubernetes Server Metrik diinstal. Untuk informasi selengkapnya, lihat Melihat penggunaan sumber daya dengan KubernetesMetrics Server.
-
Anda menggunakan
kubectl
klien yang dikonfigurasi untuk berkomunikasi dengan EKS cluster Amazon Anda.
Jalankan aplikasi uji Penskala Otomatis Pod Horizontal
Dalam bagian ini, Anda men-deploy contoh aplikasi untuk memverifikasi bahwa Penskala Otomatis Pod Horizontal bekerja.
catatan
Contoh ini didasarkan pada panduan penskalaan otomatis Horizontal Pod
-
Deploy aplikasi web server Apache sederhana dengan perintah berikut.
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
Server web Apache ini Pod diberi CPU batas 500 millicpu dan melayani di port 80.
-
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 CPU pemanfaatan untuk penerapan, dengan minimal satu Pod dan maksimal sepuluh Pods. Ketika CPU beban rata-rata lebih rendah dari 50 persen, autoscaler mencoba mengurangi jumlah Pods dalam penyebaran, minimal satu. Ketika beban lebih besar dari 50 persen, autoscaler mencoba untuk meningkatkan jumlah Pods dalam penyebaran, hingga maksimal sepuluh. Untuk informasi selengkapnya, lihat Bagaimana cara HorizontalPodAutoscaler kerja?
di Kubernetes dokumentasi. -
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, CPU beban saat ini adalah
0%
, karena belum ada beban di server. Bagian Pod hitungan sudah berada pada batas terendahnya (satu), sehingga tidak dapat menskalakan. -
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"
-
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 CPU persentase aktual lebih tinggi dari persentase target, maka jumlah replika meningkat, hingga 10. Dalam hal ini, itu
250%
, sehingga jumlahREPLICAS
terus meningkat.catatan
Butuh beberapa menit sebelum Anda melihat jumlah replika mencapai maksimum. Jika hanya 6 replika, misalnya, yang diperlukan agar CPU beban tetap pada atau di bawah 50%, maka beban tidak akan berskala melebihi 6 replika.
-
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
Jangka waktu default untuk penskalaan kembali adalah lima menit, jadi akan memakan waktu sebelum Anda melihat jumlah replika mencapai 1 lagi, bahkan ketika CPU persentase saat ini adalah 0 persen. Kerangka waktu dapat dimodifikasi. Untuk informasi selengkapnya, lihat Horizontal Pod Autoscaler
di Kubernetes dokumentasi. -
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