Jei replikų skaičius nustatytas į 100, o paklausa yra per maža, net tada 100 ankščių bus ir veikia. Dėl to eikvojami procesoriaus ir atminties ištekliai. Taip, jis siūlo patikimumą ta prasme, kad jei mazgas sugenda ir jame esančios ankštys žūva, „Replica Set“ valdiklis bandytų sugrąžinti ankščių skaičių iki 100, neršdamas ankštis kituose mazguose. Programa lieka internete.
Abstraktesne prasme „Replikų rinkinys“ bandytų pasiekti a norima būsena klasterio ir pažvelgtų į dabartinė būsena ir išsiaiškinti, kaip tai gali pasiekti norimą būseną.
Tačiau norėtume kažko šiek tiek jautresnio realaus pasaulio poreikiams. Įveskite Horizontalusis „Pod Autoscaler“. „Horizontal Pod Autoscaler“ darbas yra išplėsti programą, kai to reikia, o tada sumažinti atgal, kai sumažėja darbo krūvis.
Kodėl verta naudoti „Horizontal Pod Autoscaler“?
Kaip rodo pavadinimas, šis komponentas automatiškai padidins jūsų programą. Debesyje tai tikrai gali padėti sumažinti skaičiavimo ir atminties išteklius, už kuriuos būsite apmokėti. Kadangi „Autoscaler“ jautriai reaguoja į išteklių naudojimą, matydamas, kad daugybė ankščių tiesiog sėdi tuščiąja eiga, ji sumažina programą, o kai padidėja šių ankščių paklausa, ji padidėja, sukurdama naujas dėžutes ir apkrova paskirstoma tie.
Tai gali padėti sutaupyti brangaus laiko ir apskaičiuoti išteklius. Rašydami diegimą, jums nereikės jaudintis dėl to, koks turėtų būti jūsų kopijų skaičius. Autoscaler tai jums valdys.
Pradiniai nustatymai
Pirmiausia jums reikės turėti veikiantį „Kubernetes“ klasterį. Naudokitės „Katacoda“ žaidimų aikštele, kuri puikiai tinka eksperimentuoti ir sužinoti apie „Kubernetes“. Kitas dalykas, ko jums reikia, yra metrinis serveris.
Šis jūsų „Kubernetes“ sistemos priedas („kube-system“ vardų sritis) iš dviejų skirtingų perspektyvų surinks tokią metriką kaip procesoriaus ir atminties naudojimas:
- Ištekliai, kuriuos naudoja kiekvienas pod
- Ištekliai, sunaudoti kiekviename mazge
Metrika iš abiejų perspektyvų yra labai svarbi padedant „Autoscaler“ nuspręsti, koks turėtų būti kitas jo žingsnis. Norėdami pridėti metrinį serverį prie savo „Kubernetes“ sankaupos, vadovaukitės šiuo vadovu. Dabar esame pasirengę pamatyti, kaip veikia horizontalusis „Pod Autoscaler“.
„Autoscaler“ naudojimas
Norint pamatyti, kaip veikia „Autoscaler“, reikia bandomosios programos. Sukurkime paprastą php-apache serverį ir parodykime jį kaip paslaugą.
$ kubectl paleisti php-apache --image = k8s.gcr.io / hpa-example --prašymai = cpu = 200m --paveikti--uostas = 80
Čia naudojamas vaizdas yra vienas iš Kubernetes projekto pateiktų pavyzdinių vaizdų. Tai atlieka kai kurias intensyvias procesoriaus užduotis ir tai daro procesą daug akivaizdesnį.
Norėdami pakeisti šio diegimo mastelį, turime informuoti automatinį keitiklį, koks yra mažiausias ir didžiausias leidžiamų naudoti tinklų skaičius ir procentas, kurį jiems leidžiama naudoti. Yra daug daugiau veiksnių, kuriuos galite apsvarstyti, pvz., Atmintis, saugykla ir tinklas.
$ kubectl automatinio mastelio diegimas / php-apache --cpu-procentas = 50 - min = 1 - max = 10Esant dabartinei būsenai, kadangi niekas nenaudoja šios paslaugos, jai labiausiai patiks išlaikyti minimalią vertę. Paleisdami galite patikrinti visos automatinio mastelio diegimo būseną numatytojoje vardų srityje:
$ kubectl gauti hpaPAVADINIMO NUORODOS TIKSLAI MINPODAI MAXPODS REPLICAS AMŽIAUS
php-apache diegimas / php-apache 0% / 50% 1 10 1 2m
Apkrovos generavimas ir automatinio mastelio funkcijos testavimas
Galite pamatyti, kad replikų skaičius vis dar yra tik vienas, o procesoriaus apkrova yra nežymiai maža. Galime sukurti papildomą apkrovą ir pamatyti, kaip į ją reaguoja autoskaleris. Paslauga, atskleidžianti mūsų php-apache pods, nėra veikiama išorinio pasaulio, todėl mes sukursime laikiną pod ir atidarysime interaktyvų apvalkalo seansą tame pod.
Tai leis mums bendrauti su visomis klasterio paslaugomis, įskaitant „php-apache“ paslaugą.
$ kubectl run -i --tty busybox --image = busybox --restart = Never - sh/ #
Pastebėsite, kad raginimas pasikeis nurodant, kad esame šio konteinerio viduje. Pabandykime dabar pasikrauti mūsų paslaugą pakartotinai pateikdami užklausas. Naujoje eilutėje vykdykime šiuos veiksmus, kol ciklas:
/ # nors tiesa; darykite wget -q -O- http: // php-apache.numatytas.svc.klasteris.vietinis; padarytaAtidarykite naują terminalą, nes kol kas negalime leisti, kad ši kilpa nutrūktų. Apžiūrėję automatinį keitiklį pamatysite procesoriaus naudojimą, o išvardinę ankštis pamatysite, kad dabar yra keli php-apache serverio atvejai,
$ kubectl gauti hpaPAVADINIMO NUORODOS TIKSLAI MINPODAI MAXPODS REPLICAS AMŽIAUS
php-apache diegimas / php-apache 121% / 50% 1 10 4 1h
$ kubectl gauna ankštis
PAVADINIMAS PARUOŠTAS BŪKLĖ PAGAL PALEIDIMĄ AMŽIAUS
autobusų dėžė 1/1 Bėgimas 0 6m
php-apache-8699449574-7qwxd 1/1 Veikia 0 28s
php-apache-8699449574-c9v54 1/1 Veikia 0 10h
php-apache-8699449574-h9s5f 1/1 Veikia 0 28s
php-apache-8699449574-sg4hz 1/1 Veikia 0 28s
Nutraukite „while“ kilpą ir ankštys sumažės iki vienos per kelias minutes.
Išvada
Taigi tai yra paprastas „Horizontal Pod Autoscaler“ demonstravimas. Nepamirškite turėti savo grupei funkcinės metrikos serverio ir kurdami diegimą išlaikykite 1 replikų skaičių. Likusia dalimi pasirūpins horizontalusis ankštinis autoskaleris.