Kui koopiate arv on seatud 100-le ja nõudlust on liiga vähe, on ka siis 100 kauna töökorras. Selle tulemuseks on protsessori ja mäluressursside raiskamine. Jah, see pakub usaldusväärsust selles mõttes, et kui sõlm kukub kokku ja selles olevad kaunad surevad, püüaks Replica Set'i kontroller tuua kaunade arvu tagasi 100-ni, kudedes kaunad teistes sõlmedes. Rakendus jääb võrku.
Abstraktsemas mõttes prooviks Replica Set saavutada a soovitud olek klastri osa ja vaataks seda hetkeseis ja mõtle välja, kuidas see võib saavutada soovitud seisundi.
Soovime siiski midagi, mis on reaalses maailmas nõudluse suhtes veidi tundlikum. Sisenema Horisontaalne Pod Autoscaler. Horizontal Pod Autoscaleri ülesandeks on vajadusel rakendust suuremaks muuta ja siis, kui töökoormus langeb, tagasi alla skaleerida.
Miks kasutada horisontaalset Pod Autoscalerit?
Nagu nimigi ütleb, laiendaks see komponent teie rakendust automaatselt. Pilves aitab see tõesti vähendada arvutus- ja mäluressursse, mille eest teile arveid esitatakse. Kuna Autoscaler on ressursside kasutamise suhtes tundlik, siis kui ta näeb, et paljud kaunad lihtsalt istuvad tühikäigul, siis vähendab rakendus rakendust ja kui nende kaunade nõudlus suureneb, siis suurendatakse rakendust uute kaunade loomisega ja koormus jaotub need.
See võib säästa nii väärtuslikku aega kui ka ressursse arvutada. Juurutuse kirjutamisel ei pea te muretsema selle pärast, milline peaks olema teie kaunade koopiate arv, autoscaler haldaks seda teie eest.
Esmane seadistamine
Kõigepealt peaksite töötava Kubernetese klastri olemasolu nõudma. Kasutage Katacoda mänguväljakut, mis sobib ideaalselt katsetamiseks ja Kubernetesega tutvumiseks. Järgmine asi, mida vajate, on meetriline server.
See Kubernetes-süsteemi lisandmoodul (kube-süsteemi nimeruum) koguks selliseid mõõdikuid nagu protsessori ja mälukasutus kahest erinevast vaatenurgast:
- Iga podi kasutatav ressurss
- Igas sõlmes kulutatud ressurss
Mõlemad vaatenurgad on üliolulised, et aidata Autoscaleril otsustada, milline peaks olema selle järgmine käik. Mõõdikuserveri lisamiseks Kubernetese klastrisse järgige seda juhendit. Nüüd oleme valmis nägema Horisontaalset Pod Autoscalerit töös.
Autoskaleri kasutamine
Autoscaleri töötamise nägemiseks vajame testrakendust. Loome lihtsa php-apache serveri ja paljastame selle teenusena.
$ kubectl käivitab php-apache --image = k8s.gcr.io / hpa-näide - taotlused = cpu = 200m - eksponeerida--port = 80
Siin kasutatud pilt on üks Kubernetes projekti pakutavatest näidispildidest. See täidab mõningaid protsessori intensiivseid ülesandeid ja muudab protsessi seda tehes palju ilmsemaks.
Selle juurutamise automaatse skaala määramiseks peame automaatse skaleerijale teatama, milline on minimaalne ja maksimaalne lubatavate kaadrite arv ja protsessori protsent, mida neil on lubatud kasutada. Samuti võite kaaluda palju muid tegureid, näiteks mälu, salvestusruum ja võrk.
$ kubectl automaatse skaala juurutamine / php-apache --cpu-percent = 50 --min = 1 --max = 10Kuna keegi seda teenust ei tarbi, meeldib see praeguses olekus kõige madalamal tasemel püsida. Kõigi automaatselt skaleeritud juurutuste olekut saab kontrollida vaikenimeruumis, käivitades:
$ kubectl saada hpaNIMI VÕRDLUSSUURID MINPODID MAXPODS REPLICAS VANUS
php-apache juurutamine / php-apache 0% / 50% 1 10 1 2m
Koormuse genereerimine ja automaatse skaala funktsiooni testimine
Näete, et koopiate arv on endiselt ainult üks ja protsessori koormus on ebaoluliselt väike. Saame luua täiendavat koormust ja vaadata, kuidas autoskaler sellele reageerib. Teenus, mis paljastab meie php-apache kaunad, pole välismaailmaga kokku puutunud, seega loome ajutise podi ja avame selles podis interaktiivse shelliseansi.
See võimaldab meil suhelda kõigi klastris saadaolevate teenustega, sealhulgas teenusega php-apache.
$ kubectl run -i --tty busybox --image = busybox --restart = Never - sh/ #
Märkate, et viip muutub, mis näitab, et oleme selles konteineris. Proovime nüüd oma teenust koormata, esitades korduvalt taotlusi. Käivitame uues viites loopi ajal järgmise:
/ # tõsi; tee wget -q -O- http: // php-apache.vaikimisi.svc.klaster.kohalik; tehtudAvage uus terminal, kuna me ei saa lasta sellel silmusel veel lõppeda. Autoskaleri kontrollimisel näete protsessori kasutamist ja kaunade loendamisel näete, et nüüd on mitu php-apache serveri eksemplari,
$ kubectl saada hpaNIMI VÕRDLUSSUURID MINPODID MAXPODS REPLICAS VANUS
php-apache juurutamine / php-apache 121% / 50% 1 10 4 1h
$ kubectl saavad kaunad
NIMI VALMIS STATUS TAASALUSTAB VANUSE
busybox 1/1 Jooksmine 0 6m
php-apache-8699449574-7qwxd 1/1 töötab 0 28s
php-apache-8699449574-c9v54 1/1 töötab 0 10h
php-apache-8699449574-h9s5f 1/1 töötab 0 28s
php-apache-8699449574-sg4hz 1/1 töötab 0 28s
Lõpeta while-silmus ja kaunade arv väheneb mõne minutiga üheni.
Järeldus
Nii et see on horisontaalse Pod Autoscaleri lihtne demonstreerimine. Ärge unustage, et klastri jaoks peaks olema funktsionaalne mõõdikute server ja juurutamise loomisel hoidke koopiate arvu 1. Ülejäänu eest hoolitseb horisontaalne kauna autoskaler.