Bantu tingkatkan halaman ini
Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penskala Otomatis Pod Horizontal
KubernetesHorizontal Pod Autoscaler
Horizontal Pod AutoscalerIni adalah sumber daya API standar Kubernetes yang hanya mengharuskan sumber metrik (seperti server Kubernetes metrik) diinstal pada kluster Amazon EKS Anda agar berfungsi. Anda tidak perlu menyebarkan atau menginstal Horizontal Pod Autoscaler pada cluster Anda untuk mulai menskalakan aplikasi Anda. Untuk informasi lebih lanjut, lihat Horizontal Pod Autoscaler di Kubernetes dokumentasi.
Gunakan topik ini untuk mempersiapkan klaster Amazon EKS Anda dan untuk memverifikasi bahwa itu berfungsi dengan aplikasi sampel. Horizontal Pod Autoscaler
catatan
Topik ini didasarkan pada Horizontal Pod autoscalerpanduan
Prasyarat
-
Anda memiliki klaster Amazon EKS yang ada. Jika Anda tidak melakukannya, tinjau Memulai dengan Amazon EKS.
-
Anda telah menginstal Server Kubernetes Metrik. Untuk informasi selengkapnya, lihat Menginstal Server Kubernetes Metrik.
-
Anda menggunakan
kubectl
klien yang dikonfigurasi untuk berkomunikasi dengan klaster Amazon EKS.
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 Pod autoscaler Horizontal
Untuk menguji instalasi Penskala Otomatis Pod Horizontal
-
Deploy aplikasi web server Apache sederhana dengan perintah berikut.
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
Server web Apache Pod ini diberi batas CPU 500 millicpu dan melayani pada 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 pemanfaatan CPU untuk penyebaran, dengan minimal satu Pod dan maksimal sepuluh. Pods Ketika beban CPU rata-rata lebih rendah dari 50 persen, autoscaler mencoba mengurangi jumlah Pods dalam penyebaran, menjadi 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?
dalam 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, beban CPU saat ini adalah
0%
, karena belum ada muatan di server. PodHitungannya sudah berada pada batas terendahnya (satu), sehingga tidak dapat diskalakan. -
Membuat beban untuk web server dengan menjalankan kontainer.
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 persentase CPU sebenarnya lebih tinggi dari persentase target, maka jumlah replika meningkat, hingga 10. Dalam hal ini,
250%
, sehingga jumlahREPLICAS
terus meningkat.catatan
Butuh beberapa menit sebelum Anda melihat jumlah replika mencapai maksimum. Jika hanya 6 replika, misalnya, yang diperlukan untuk beban CPU untuk tetap atau di bawah 50%, maka beban skala tidak akan melampaui 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
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 Horizontal Pod Autoscaler dalam dokumentasi
. Kubernetes -
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