Kubernetes

Kubernetes Horizontal Pod Autoscaler

Kubernetes Horizontal Pod Autoscaler
A hüvelyek létrehozhatók önálló objektumként, vagy méretezhető replikakészlet vagy telepítés részeként. Az utóbbi két objektum mindegyikét nemcsak egy hüvely, hanem azok sokaságának telepítésére használják. A cél itt az, hogy a hüvelyek cserélhetőek legyenek, ha az ember túl nagy forgalommal rendelkezik, kettő további nőhet fel és vállalhatja a plusz terhet. Fontos megjegyezni azonban, hogy mind a replika készlet, mind a telepítési objektumok keményen kódolt számú pod replikával rendelkeznek, amelyeket futtatni szándékoznak.

Ha a replikaszám 100-ra van állítva, és a kereslet túl kevés, akkor is a 100 hüvely fel fog működni. Ez a CPU és a memória erőforrásainak pazarlását eredményezi. Igen, megbízhatóságot nyújt abban az értelemben, hogy ha egy csomópont összeomlik és a belsejében lévő hüvelyek elpusztulnak, a Replica Set vezérlő megpróbálja visszahozni a hüvelyek számát 100-ra azáltal, hogy más csomópontokban ívja a hüvelyeket. Az alkalmazás online marad.

Absztraktabb értelemben a Replika Készlet megpróbálná elérni a kívánt állapot a klasztert, és megnézné a jelen állapot és kitalálni, hogyan érheti el a kívánt állapotot.

Szeretnénk azonban egy kicsit érzékenyebbet a valós igényekre. Belép Vízszintes Pod Autoscaler. A Horizontal Pod Autoscaler feladata az alkalmazás méretének növelése, amikor arra szükség van, majd a munkaterhelés csökkenése után visszaléptetés.

Miért érdemes használni a Horizontal Pod Autoscaler-t?

Ahogy a neve is mutatja, ez a komponens automatikusan méretezné az alkalmazást. A felhőben ez valóban segíthet csökkenteni a számítási és memória erőforrásokat, amelyekért számlázni kell. Mivel az Autoscaler érzékeny az erőforrás-felhasználásra, amikor látja, hogy sok hüvely csak tétlenül ül, kicsinyíti az alkalmazást, és amikor az ezekre a hüvelyekre növekszik a kereslet, új hüvelyek létrehozásával felnövekszik az alkalmazás, és a terhelés eloszlik azok.

Megtakaríthat értékes időt és számítási erőforrásokat egyaránt. A telepítés írásakor nem kell aggódnia, hogy mi legyen a replika száma a hüvelyeinek, az autoscaler kezelné ezt az Ön számára.

Kezdeti beállítás

Első és legfontosabb követelmény az, hogy működjön egy Kubernetes-fürt. Használja a Katacoda Playground játékteret, amely tökéletes a kísérletezéshez és a Kubernetes megismeréséhez. A következő dologra egy metrikus szerverre lenne szüksége.

Ez a kiegészítő a Kubernetes rendszerhez (kube-system névtér) két különböző szempontból gyűjtené az olyan mutatókat, mint a CPU és a memóriahasználat:

  1. Az egyes podok által használt erőforrások
  2. Az egyes csomópontoknál felhasznált erőforrás

A mérőszámok mindkét szempontból döntő fontosságúak abban, hogy az Autoscaler eldönthesse, mi legyen a következő lépése. Metrikus kiszolgáló hozzáadásához a Kubernetes-fürthöz kövesse ezt az útmutatót. Most készen állunk a Horizontal Pod Autoscaler működésére.

Az Autoscaler használata

Ahhoz, hogy lássuk az Autoscaler működését, szükségünk van egy tesztalkalmazásra. Hozzunk létre egy egyszerű php-apache szervert, és tegyük ki szolgáltatásként.

$ kubectl futtassa a php-apache --image = k8s fájlt.gcr.io / hpa-example --kérelmek = cpu = 200m --expose
--port = 80

Az itt használt kép a Kubernetes projekt egyik mintaképe. Néhány CPU-intenzív feladatot hajt végre, és ezáltal sokkal nyilvánvalóbbá teszi a folyamatot.

A központi telepítés automatikus méretezéséhez tájékoztatnunk kell az autoszkálázót arról, hogy mi az a minimális és maximális számú pod, amelyet engedélyezünk, és a CPU százalékos aránya, amelyet használhatnak. Sokkal több olyan tényező van, amelyet figyelembe vehet, például a memória, a tárhely és a hálózat is.

$ kubectl automatikus skálázási telepítések / php-apache --cpu-percent = 50 --min = 1 --max = 10

A jelenlegi állapotban, mivel senki sem fogyasztja ezt a szolgáltatást, leginkább a minimális értéken marad. A futtatással ellenőrizheti az alapértelmezett névtér összes automatikus skálázásának központi telepítését:

$ kubectl kap hpa
NÉV REFERENCIA CÉLOK MINPODOK MAXPODS REPLICAS AGE
php-apache Telepítés / php-apache 0% / 50% 1 10 1 2m

Terhelés előállítása és az automatikus skálázás tesztelése

Láthatja, hogy a replikák száma még mindig csak egy, és a CPU terhelése jelentéktelenül alacsony. További terhelést hozhatunk létre, és megnézhetjük, hogyan reagál rá az autoscaler. A php-apache podjainkat kiszolgáltató szolgáltatás nincs kitéve a külvilágnak, ezért létrehozunk egy ideiglenes pod-ot és interaktív shell munkamenetet nyitunk meg abban a podban.

Ez lehetővé teszi számunkra, hogy kommunikáljunk a fürtben elérhető összes szolgáltatással, beleértve a php-apache szolgáltatást is.

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

Észre fogja venni, hogy a prompt megváltozik, jelezve, hogy ebben a tárolóban vagyunk. Most próbálkozzunk azzal, hogy megterheljük szolgáltatásunkat azzal, hogy ismételten kéréseket teszünk. Az új parancssorban futtassuk a következő while ciklust:

/ # igaz; do wget -q -O- http: // php-apache.alapértelmezett.svc.fürt.helyi; Kész

Nyisson meg egy új terminált, mivel még nem hagyhatjuk, hogy ez a hurok véget érjen. Az autoscaler átvizsgálásakor látni fogja a CPU kihasználtságát, és a podok felsorolásakor látni fogja, hogy a php-apache szervernek több példánya van,

$ kubectl kap hpa
NÉV REFERENCIA CÉLOK MINPODOK MAXPODS REPLICAS AGE
php-apache telepítés / php-apache 121% / 50% 1 10 4 1h
 
$ kubectl kap hüvelyeket
NÉV KÉSZ ÁLLAPOT ÚJRA KEZDIK
busybox 1/1 Futás 0 6m
php-apache-8699449574-7qwxd 1/1 0 28s futtatása
php-apache-8699449574-c9v54 1/1 Futás 0 10h
php-apache-8699449574-h9s5f 1/1 0 28s futtatása
php-apache-8699449574-sg4hz 1/1 0 28s futtatása

Szüntesse meg a while ciklust, és a hüvelyek száma néhány perc alatt eggyé csökken.

Következtetés

Tehát ez a Horizontal Pod Autoscaler egyszerű bemutatása. Ne felejtsen el funkcionális metrikaszerverrel rendelkeznie a fürtjéhez, és a telepítés létrehozása közben tartsa a replikaszámot 1-nél. A vízszintes hüvelyes autoszkáláló gondoskodik a többiről.

Az egér és az érintőpadok görgetési irányának megfordítása a Windows 10 rendszerben
Egér és Érintőpads nemcsak a számítást könnyűvé, de hatékonyabbá és kevésbé időigényessé is teszi. Nem tudunk elképzelni egy életet ezek nélkül az esz...
Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...
Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...