Miyezo itatu ya Autoscaling ku Kubernetes: Momwe Mungagwiritsire Ntchito Mwachangu

Miyezo itatu ya Autoscaling ku Kubernetes: Momwe Mungagwiritsire Ntchito Mwachangu
Kuti mumvetse bwino Kubernetes, muyenera kudziwa njira zosiyanasiyana zopezera zinthu zamagulu: mwa malinga ndi opanga dongosolo, iyi ndi imodzi mwa ntchito zazikulu za Kubernetes. Tapereka chiwongolero chapamwamba cha njira zowongoka komanso zowongoka komanso zosinthira masiziliro a magulu, komanso malingaliro amomwe mungagwiritsire ntchito bwino.

Nkhani Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, ndi Vertical Pod Autoscaler kutanthauziridwa ndi gulu lomwe lidagwiritsa ntchito autoscaling Kubernetes aaS kuchokera ku Mail.ru.

Chifukwa chiyani ndikofunikira kuganizira za kukula

Kubernetes - chida choyang'anira zida ndi kuyimba. Zachidziwikire, ndikwabwino kuyang'ana zinthu zabwino zoyika, kuyang'anira, ndi kuyang'anira ma pod (pod ndi gulu la zotengera zomwe zimayambitsidwa poyankha pempho).

Komabe, muyenera kuganiziranso mafunso otsatirawa:

  1. Momwe mungakulitsire ma module ndi mapulogalamu?
  2. Momwe mungasungire zotengera kuti zigwire ntchito komanso moyenera?
  3. Momwe mungayankhire kusintha kosasintha kwa ma code ndi kuchuluka kwa ntchito kuchokera kwa ogwiritsa ntchito?

Kukonza magulu a Kubernetes kuti azitha kulinganiza zinthu ndi magwiridwe antchito kumatha kukhala kovuta ndipo kumafuna chidziwitso chaukadaulo pakugwira ntchito kwamkati kwa Kubernetes. Kuchulukitsitsa kwa ntchito yanu kapena ntchito zanu kumatha kusinthasintha tsiku lonse kapena pakadutsa ola limodzi, kotero kulinganiza kumaganiziridwa bwino ngati njira yopitilira.

Kubernetes autoscaling milingo

Kuchita bwino kwa autoscaling kumafuna kulumikizana pakati pa magawo awiri:

  1. Mulingo wa Pod, kuphatikiza yopingasa (Horizontal Pod Autoscaler, HPA) ndi vertical autoscaler (Vertical Pod Autoscaler, VPA). Uku ndikukulitsa zinthu zomwe zilipo pazotengera zanu.
  2. Cluster level, yomwe imayendetsedwa ndi Cluster Autoscaler (CA), yomwe imachulukitsa kapena kuchepetsa chiwerengero cha node mkati mwa gululo.

Module ya Horizontal Autoscaler (HPA)

Monga momwe dzinalo likusonyezera, HPA imayesa kuchuluka kwa ma pod replicas. Ma devops ambiri amagwiritsa ntchito CPU ndi kukumbukira kukumbukira ngati zoyambitsa kusintha kuchuluka kwa zobwereza. Komabe, ndizotheka kukulitsa dongosolo motengera ma metrics okhazikikaawo kuphatikiza kapena ngakhale ma metric akunja.

Chithunzi chogwiritsira ntchito chapamwamba cha HPA:

  1. HPA imayang'ana mosalekeza ma metric omwe amatchulidwa pakukhazikitsa pakanthawi kochepa kwa masekondi 30.
  2. HPA ikuyesera kuonjezera chiwerengero cha ma modules ngati malo otchulidwawo afikira.
  3. HPA imasintha kuchuluka kwa zofananira mkati mwazowongolera / zobwereza.
  4. Wowongolera / wobwerezabwereza ndiye amatumiza ma module ena ofunikira.

Miyezo itatu ya Autoscaling ku Kubernetes: Momwe Mungagwiritsire Ntchito Mwachangu
HPA imayamba njira yotumizira ma module ikafika malire a metric

Mukamagwiritsa ntchito HPA, ganizirani izi:

  • Nthawi yowunika ya HPA ndi masekondi 30. Imayikidwa ndi mbendera horizontal-pod-autoscaler-sync-nthawi mu controller manager.
  • Cholakwika chachibale chokhazikika ndi 10%.
  • Pambuyo pakuwonjezeka komaliza kwa ma module, HPA ikuyembekeza kuti ma metric akhazikika mkati mwa mphindi zitatu. Nthawi imeneyi imayikidwa ndi mbendera horizontal-pod-autoscaler-upscale-deche.
  • Pambuyo pakuchepetsa komaliza kwa ma module, HPA imadikirira mphindi zisanu kuti ikhazikike. Nthawi imeneyi imayikidwa ndi mbendera horizontal-pod-autoscaler-downscale-deche.
  • HPA imagwira ntchito bwino ndi zinthu zotumizidwa m'malo mowongolera zobwereza. Horizontal autoscaling sagwirizana ndi kusintha kosinthika, komwe kumagwiritsa ntchito owongolera obwereza. Ndi kutumizidwa, chiwerengero cha replicas chimadalira mwachindunji zinthu zomwe zimatumizidwa.

Vertical autoscaling of pods

Vertical autoscaling (VPA) imagawira nthawi yochulukirapo (kapena yochepera) ya CPU kapena kukumbukira ma pod omwe alipo. Oyenera ma pod a boma kapena osawerengeka, koma makamaka amachitira ntchito za boma. Komabe, mutha kugwiritsanso ntchito VPA pama module opanda malire ngati mukufuna kusintha zokha kuchuluka kwazinthu zomwe munapatsidwa poyamba.

VPA imayankhanso ku zochitika za OOM (zosakumbukira). Kusintha nthawi ya CPU ndi kukumbukira kumafuna kuyambitsanso ma pod. Ikayambiranso, VPA imalemekeza bajeti yogawa (bajeti yogawa ma pod, PDB) kutsimikizira kuchuluka kwa ma module ofunikira.

Mutha kukhazikitsa zochepera komanso zochulukirapo pagawo lililonse. Chifukwa chake, mutha kuchepetsa kuchuluka kwa kukumbukira komwe kumaperekedwa ku 8 GB. Izi ndizothandiza ngati ma node apano sangathe kugawira kukumbukira kwa 8 GB pachidebe chilichonse. Mafotokozedwe atsatanetsatane ndi makina ogwiritsira ntchito akufotokozedwa mu official VPA wiki.

Kuphatikiza apo, VPA ili ndi ntchito yosangalatsa (VPA Recommender). Imayang'anira kagwiritsidwe ntchito kazinthu ndi zochitika za OOM zamamodule onse kuti ziwonetsere kukumbukira kwatsopano ndi nthawi ya CPU kutengera algorithm yanzeru yotengera ma metric akale. Palinso API yomwe imatenga chogwirira cha pod ndikubwezeretsanso zomwe zaperekedwa.

Ndizofunikira kudziwa kuti VPA Recommender samatsata "malire" azinthu. Izi zitha kupangitsa kuti ma module azikhala okhawo omwe ali mu node. Ndi bwino kuyika malire pamlingo wa namespace kuti mupewe kukumbukira kwakukulu kapena kugwiritsa ntchito CPU.

Pulogalamu yapamwamba ya VPA:

  1. VPA imayang'ana mosalekeza ma metric omwe amatchulidwa pakukhazikitsa pafupipafupi masekondi 10.
  2. Ngati malire otchulidwawo afikira, VPA imayesa kusintha kuchuluka kwazinthu zomwe zaperekedwa.
  3. VPA imasintha kuchuluka kwazinthu zomwe zili mkati mwa wowongolera / wobwerezabwereza.
  4. Pamene ma module ayambiranso, zida zonse zatsopano zimagwiritsidwa ntchito pazomwe zidapangidwa.

Miyezo itatu ya Autoscaling ku Kubernetes: Momwe Mungagwiritsire Ntchito Mwachangu
VPA imawonjezera kuchuluka kwazinthu zofunikira

Chonde kumbukirani mfundo zotsatirazi mukamagwiritsa ntchito VPA:

  • Kukulitsa kumafuna kuyambiranso kovomerezeka kwa pod. Izi ndi zofunika kupewa ntchito yosakhazikika mutasintha. Kuti akhale odalirika, ma module amayambidwanso ndikugawidwa m'malo onse kutengera zomwe zaperekedwa kumene.
  • VPA ndi HPA sizigwirizana ndipo sizitha kuthamanga pamapodi amodzi. Ngati mukugwiritsa ntchito njira zonse zokulira pagulu limodzi, onetsetsani kuti makonda anu amawalepheretsa kuti ayambitsenso zinthu zomwezo.
  • VPA imayimba zopempha zotengera zinthu zomwe zimagwiritsidwa ntchito m'mbuyomu komanso zamakono. Sichimayika malire ogwiritsira ntchito zinthu. Pakhoza kukhala mavuto ndi mapulogalamu osagwira ntchito bwino ndikuyamba kutenga zowonjezera zowonjezera, izi zidzatsogolera Kubernetes kuzimitsa pod iyi.
  • VPA idakali pachiyambi cha chitukuko. Khalani okonzeka kuti dongosololi likhoza kusintha zina posachedwa. Mutha kuwerenga za zolephera zodziwika ΠΈ mapulani a chitukuko. Choncho, pali ndondomeko zogwiritsira ntchito mgwirizano wa VPA ndi HPA, komanso kutumizira ma modules pamodzi ndi ndondomeko ya autoscaling yowongoka kwa iwo (mwachitsanzo, chizindikiro chapadera 'chimafunika VPA').

Autoscaling gulu la Kubernetes

Cluster Autoscaler (CA) imasintha kuchuluka kwa ma node kutengera kuchuluka kwa ma pod akudikirira. Dongosolo limayang'ana nthawi ndi nthawi ma module omwe akudikirira - ndikuwonjezera kukula kwa masango ngati zofunikira zambiri zikufunika komanso ngati gulu silikupitilira malire omwe adakhazikitsidwa. CA imalankhulana ndi wothandizira pamtambo, imapempha ma node ena kuchokera kwa iwo, kapena kumasula opanda pake. Mtundu woyamba wa CA womwe umapezeka nthawi zambiri udayambitsidwa Kubernetes 1.8.

Ndondomeko yapamwamba ya ntchito ya SA:

  1. CA imayang'ana ma module omwe akudikirira panthawi yokhazikika ya masekondi 10.
  2. Ngati poto imodzi kapena zingapo zili moyimilira chifukwa gululi lilibe zinthu zokwanira kuti liwagawire, limayesetsa kupereka mfundo imodzi kapena zingapo zowonjezera.
  3. Pamene wothandizira pamtambo agawira node yofunikira, imagwirizanitsa gululo ndipo ili wokonzeka kutumikira ma pod.
  4. Wokonza Kubernetes amagawira ma pods omwe akudikirira kumalo atsopano. Ngati izi zitatha ma modules ena akadalibe podikirira, ndondomekoyi imabwerezedwa ndipo ma node atsopano amawonjezeredwa kumagulu.

Miyezo itatu ya Autoscaling ku Kubernetes: Momwe Mungagwiritsire Ntchito Mwachangu
Kupereka kwachangu kwa ma cluster node mumtambo

Ganizirani zotsatirazi mukamagwiritsa ntchito CA:

  • CA imawonetsetsa kuti ma pod onse omwe ali mgululi ali ndi malo oti ayendetse, mosasamala kanthu za kuchuluka kwa CPU. Imayesanso kuwonetsetsa kuti palibe node zosafunikira mgululi.
  • CA imalembetsa kufunikira kokulira pambuyo pa masekondi pafupifupi 30.
  • Node ikadzasowanso, CA imasintha kudikirira mphindi 10 isanatulutse dongosolo.
  • Dongosolo la autoscaling lili ndi lingaliro la zowonjezera. Izi ndi njira zosiyana posankha gulu la mfundo zomwe zatsopano zidzawonjezedwa.
  • Gwiritsani ntchito njirayo moyenera cluster-autoscaler.kubernetes.io/safe-to-evict (zoona). Mukayika ma pod ambiri, kapena ngati ambiri amwazikana m'malo onse, mudzataya mwayi wokulitsa masango.
  • Gwiritsani ntchito PodDisruptionBudgetskuteteza ma pod kuti achotsedwe, zomwe zingapangitse kuti magawo a pulogalamu yanu aphwanyike.

Momwe Kubernetes autoscalers amalumikizirana wina ndi mnzake

Kuti mugwirizane bwino, kuwerengetsa kwa autoscaling kuyenera kugwiritsidwa ntchito pamlingo wa pod (HPA/VPA) ndi mulingo wamagulu. Amalumikizana mophweka:

  1. Ma HPA kapena ma VPA amasinthitsa ma pod kapena zinthu zomwe zaperekedwa ku ma pod omwe alipo.
  2. Ngati palibe ma node okwanira pakukweza kokonzekera, CA imazindikira kukhalapo kwa ma pods akudikirira.
  3. CA imagawa ma node atsopano.
  4. Ma modules amagawidwa ku node zatsopano.

Miyezo itatu ya Autoscaling ku Kubernetes: Momwe Mungagwiritsire Ntchito Mwachangu
Mgwirizano wa Kubernetes scale-out system

Zolakwitsa wamba mu Kubernetes autoscaling

Pali zovuta zingapo zomwe devops amakumana nazo poyesa kukhazikitsa autoscaling.

HPA ndi VPA zimadalira ma metrics ndi mbiri yakale. Ngati zinthu zosakwanira ziperekedwa, ma modules adzachepetsedwa ndipo sangathe kupanga ma metric. Pankhaniyi, autoscaling sichidzachitika.

Ntchito yokulitsa yokha imakhala yovuta nthawi. Tikufuna kuti ma module ndi magulu azikula mwachangu - ogwiritsa ntchito asanazindikire zovuta zilizonse ndi zolephera. Chifukwa chake, nthawi yapakati yokulitsa ma pod ndi tsango liyenera kuganiziridwa.

Nthawi yabwino - Mphindi 4:

  1. 30 masekondi. Sinthani ma metric omwe mukufuna: 30βˆ’60 masekondi.
  2. 30 masekondi. HPA imayang'ana ma metric values: 30 masekondi.
  3. Pasanathe 2 masekondi. Ma pods amapangidwa ndikudikirira: 1 sekondi.
  4. Pasanathe 2 masekondi. CA ikuwona ma module odikirira ndikutumiza mafoni ku ma node: 1 sekondi.
  5. 3 mphindi. Wopereka mtambo amagawa ma node. Ma K8 amadikirira mpaka atakonzeka: mpaka mphindi 10 (kutengera zinthu zingapo).

Zochitika zoyipa kwambiri (zowona) - mphindi 12:

  1. 30 masekondi. Sinthani ma metric omwe mukufuna.
  2. 30 masekondi. HPA imayang'ana ma metric values.
  3. Pasanathe 2 masekondi. Ma pod amapangidwa ndikulowa mu standby state.
  4. Pasanathe 2 masekondi. CA ikuwona ma module odikirira ndikuyimba foni kuti ipereke ma node.
  5. Mphindi 10. Wopereka mtambo amagawa ma node. Ma K8 amadikirira mpaka atakonzeka. Nthawi yodikirira imadalira zinthu zingapo, monga kuchedwa kwa ogulitsa, kuchedwa kwa OS, ndi zida zothandizira.

Osasokoneza makulitsidwe a opereka mtambo ndi CA yathu. Zomalizazi zimayenda mkati mwa gulu la Kubernetes, pomwe injini yopereka mtambo imagwira ntchito mogawa node. Sichidziwa zomwe zikuchitika ndi ma pod kapena ntchito yanu. Machitidwewa amagwira ntchito limodzi.

Momwe mungasamalire makulitsidwe ku Kubernetes

  1. Kubernetes ndi chida choyang'anira zida ndi orchestration. Ntchito zoyang'anira ma pod ndi zida zamagulu ndizofunikira kwambiri pakuzindikira Kubernetes.
  2. Mvetsetsani malingaliro a pod scalability poganizira HPA ndi VPA.
  3. CA iyenera kugwiritsidwa ntchito ngati mukumvetsetsa bwino zosowa za makoko anu ndi zotengera zanu.
  4. Kuti mukonze masango bwino, muyenera kumvetsetsa momwe masikelo osiyanasiyana amagwirira ntchito limodzi.
  5. Poyerekeza nthawi yokulirapo, ganizirani zochitika zoyipa kwambiri komanso zabwino kwambiri.

Source: www.habr.com

Kuwonjezera ndemanga