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:
- Az egyes podok által használt erőforrások
- 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 = 10A 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 hpaNÉ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észNyisson 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 hpaNÉ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.