Kubernetes

Autoscaler Kubernetes Horizontal Pod

Autoscaler Kubernetes Horizontal Pod
Pod boleh dibuat sebagai objek yang berdiri sendiri, atau sebagai bagian dari set replika atau penyebaran yang dapat diskalakan. Setiap dua objek terakhir digunakan untuk menyebarkan tidak hanya satu pod, tetapi banyak dari mereka. Objektifnya di sini adalah bahawa pod dapat dijangkiti jika seseorang mempunyai lalu lintas yang terlalu banyak dua lagi dapat tumbuh dan menanggung beban tambahan. Namun, satu perkara penting yang perlu diperhatikan di sini ialah kedua-dua set replika dan objek penyebaran mempunyai bilangan replika pod yang dikodekan keras yang ingin mereka jalankan.

Sekiranya jumlah replika ditetapkan ke 100, dan permintaannya terlalu sedikit, maka 100 pod akan habis dan berjalan. Ini mengakibatkan pembaziran sumber CPU dan memori. Ya, ia menawarkan kebolehpercayaan, dalam arti bahawa jika nod rosak dan pod di dalamnya mati, pengawal Set Replika akan berusaha mengembalikan bilangan pod kembali ke 100 dengan memunculkan pod di nod lain. Permohonan tetap dalam talian.

Dalam pengertian yang lebih abstrak, Set Replika akan berusaha mencapai keadaan yang diingini kluster dan akan melihat pada keadaan sekarang dan fikirkan bagaimana ia dapat mencapai keadaan yang diingini.

Namun, kami menginginkan sesuatu yang sedikit lebih sensitif terhadap permintaan dunia nyata. Masukkan Autoscaler Pod Mendatar. Ini adalah tugas Horizontal Pod Autoscaler untuk meningkatkan aplikasi apabila diperlukan dan kemudian menurunkannya kembali setelah beban kerja turun.

Mengapa menggunakan Autoscaler Pod Mendatar?

Seperti namanya, komponen ini akan menskalakan aplikasi anda secara automatik. Di awan, ini benar-benar dapat membantu anda mengurangkan perkiraan dan sumber memori yang akan dikenakan untuk anda. Oleh kerana Autoscaler peka terhadap penggunaan sumber daya, ketika melihat banyak polong hanya diam, ia akan menurunkan aplikasi dan ketika permintaan pada pod tersebut meningkat, aplikasi akan meningkatkan aplikasi dengan membuat pod baru dan beban akan diedarkan ke mereka.

Ia dapat menjimatkan masa berharga dan mengira sumber. Anda tidak perlu bimbang tentang jumlah replika untuk pod anda semasa menulis penyebaran, autoscaler akan menguruskannya untuk anda.

Persediaan Awal

Keperluan pertama dan terpenting adalah anda mempunyai kluster Kubernetes yang berjalan. Gunakan Katacoda Playground yang sangat sesuai untuk percubaan dan pembelajaran mengenai Kubernetes. Perkara seterusnya yang anda perlukan adalah pelayan metrik.

Tambahan pada sistem Kubernetes anda (ruang nama sistem kube) akan mengumpulkan metrik seperti CPU dan penggunaan memori dari dua perspektif yang berbeza:

  1. Sumber yang digunakan oleh setiap pod
  2. Sumber digunakan pada setiap nod

Metrik dari kedua perspektif sangat penting dalam membantu Autoscaler memutuskan apa langkah seterusnya. Untuk menambahkan pelayan metrik ke kluster Kubernetes anda, ikuti panduan ini. Sekarang kita bersedia untuk melihat Horizontal Pod Autoscaler beraksi.

Menggunakan Autoscaler

Untuk melihat Autoscaler berfungsi, kami memerlukan aplikasi ujian. Mari buat pelayan php-apache yang mudah dan dedahkan sebagai perkhidmatan.

$ kubectl menjalankan php-apache --image = k8s.gcr.io / hpa-contoh - permintaan = cpu = 200m - expose
--pelabuhan = 80

Gambar yang digunakan di sini adalah salah satu contoh gambar yang disediakan oleh projek Kubernetes. Ia melakukan beberapa tugas intensif CPU dan menjadikan prosesnya lebih jelas dengan melakukannya.

Untuk skala automatik penyebaran ini, kita perlu memberitahu penskala otomatis berapa jumlah minimum dan maksimum pod yang akan kita izinkan dan peratusan CPU yang mereka boleh gunakan. Terdapat banyak lagi faktor yang boleh anda pertimbangkan seperti memori, storan dan rangkaian juga.

$ kubectl autoscale deployment / php-apache --cpu-peratus = 50 --min = 1 --max = 10

Dalam keadaan sekarang, kerana tidak ada yang menggunakan perkhidmatan ini, ia paling suka tinggal pada nilai minimum. Anda boleh memeriksa keadaan semua penyebaran secara automatik di ruang nama lalai dengan menjalankan:

$ kubectl dapatkan hpa
NAMA RUJUKAN SASARAN MINPOD MAXPOD REPLIKA UMUR
php-apache Penyebaran / php-apache 0% / 50% 1 10 1 2m

Menjana Beban dan Menguji Ciri Autoskala

Anda dapat melihat bilangan replika hanya satu dan beban CPU tidak seberapa. Kami dapat membuat beban tambahan dan melihat bagaimana autoscaler bertindak balas terhadapnya. Perkhidmatan yang memaparkan pod php-apache kami tidak terdedah kepada dunia luar, jadi kami akan membuat pod sementara dan membuka sesi shell interaktif di pod itu.

Ini akan membolehkan kita berkomunikasi dengan semua perkhidmatan yang ada di kluster, termasuk perkhidmatan php-apache.

$ kubectl run -i --tty busybox --image = busybox --restart = Never - sh
/ #

Anda akan melihat bahawa permintaan akan berubah menunjukkan bahawa kita berada di dalam bekas ini. Mari sekarang cuba dan bebankan perkhidmatan kami dengan membuat permintaan berulang kali. Dalam prompt baru, mari jalankan yang berikut sambil gelung:

/ # selagi benar; lakukan wget -q -O- http: // php-apache.lalai.svc.gugusan.tempatan; selesai

Buka terminal baru, kerana kami tidak dapat membiarkan gelung ini berakhir. Setelah memeriksa autoscaler, anda akan melihat penggunaan CPU dan setelah menyenaraikan pod anda akan melihat sekarang terdapat banyak contoh pelayan php-apache,

$ kubectl dapatkan hpa
NAMA RUJUKAN SASARAN MINPOD MAXPOD REPLIKA UMUR
php-apache Penyebaran / php-apache 121% / 50% 1 10 4 1h
 
$ kubectl dapatkan pod
NAMA READY STATUS RESTARTS UMUR
kotak sibuk 1/1 Berlari 0 6m
php-apache-8699449574-7qwxd 1/1 Berlari 0 28s
php-apache-8699449574-c9v54 1/1 Berlari 0 10jam
php-apache-8699449574-h9s5f 1/1 Berlari 0 28s
php-apache-8699449574-sg4hz 1/1 Berlari 0 28s

Hentikan gelung sementara dan bilangan polong akan hilang menjadi satu dalam beberapa minit.

Kesimpulannya

Jadi itu adalah demonstrasi ringkas Horizontal Pod Autoscaler. Ingatlah untuk mempunyai pelayan metrik yang berfungsi untuk kluster anda dan semasa membuat penyebaran, pertahankan jumlah replika pada 1. Autoscaler pod mendatar akan menjaga selebihnya.

Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...
Butang tetikus tengah tidak berfungsi pada Windows 10
The butang tetikus tengah membantu anda menelusuri halaman web dan skrin yang panjang dengan banyak data. Sekiranya ia berhenti, anda akan menggunakan...
Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...