Matanho matatu eAutoscaling muKubernetes: Mashandisiro Awo Zvinobudirira

Matanho matatu eAutoscaling muKubernetes: Mashandisiro Awo Zvinobudirira
Kuti unyatsogona Kubernetes, iwe unofanirwa kuziva nzira dzakasiyana dzekuyera zviwanikwa zvemasumbu: ne maererano nevagadziri vehurongwa, iri ndiro rimwe remabasa makuru eKubernetes. Isu takapa mucherechedzo wepamusoro-soro weyakachinjika uye yakatwasuka autoscaling uye cluster resizing michina, pamwe nekurudziro yekuti ingashandise sei nemazvo.

Article Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, uye Vertical Pod Autoscaler yakaturikirwa nechikwata chakashandisa autoscaling mukati Kubernetes aaS kubva kuMail.ru.

Sei zvakakosha kufunga nezvekuyera

Kubernetes - chishandiso chekutonga zviwanikwa uye orchestration. Ehe, zvakanaka kutarisisa nezvinhu zvinotonhorera zvekutumira, kutarisa, uye kutonga mapodhi (podhi iboka remidziyo inotangwa mukupindura chikumbiro).

Nekudaro, iwe unofanirwa zvakare kufunga nezve inotevera mibvunzo:

  1. Maitiro ekuyera mamodule uye maapplication?
  2. Nzira yekuchengetedza sei midziyo ichishanda uye inobudirira?
  3. Nzira yekupindura sei kune nguva dzose kuchinja kwekodhi uye basa rekushanda kubva kuvashandisi?

Kugadzirisa masumbu eKubernetes kuenzanisa zviwanikwa uye kuita kunogona kuve kwakaoma uye kunoda ruzivo rwehunyanzvi hwekushanda kwemukati kweKubernetes. Basa rekushanda kwechikumbiro chako kana masevhisi rinogona kuchinjika muzuva rose kana kunyange mukati meawa, saka kuenzanisa kunonyanya kufungidzirwa senzira inoenderera.

Kubernetes autoscaling mazinga

Kushanda autoscaling kunoda kurongeka pakati pematanho maviri:

  1. Pod level, kusanganisira yakachinjika (Horizontal Pod Autoscaler, HPA) uye yakatwasuka autoscaler (Vertical Pod Autoscaler, VPA). Uku kuri kuwedzera zviwanikwa zvemidziyo yako.
  2. Cluster level, iyo inotungamirirwa neCluster Autoscaler (CA), iyo inowedzera kana kuderedza nhamba yemanodhi mukati meboka.

Horizontal Autoscaler (HPA) module

Sezvinoratidzwa nezita racho, HPA inoyera huwandu hwepod replicas. Mazhinji ma devops anoshandisa CPU uye ndangariro mutoro sezvinokonzeresa zvekuchinja huwandu hwema replicas. Nekudaro, zvinokwanisika kuyera sisitimu yakavakirwa pa custom metrics, yavo misanganiswa kana kunyange zvekunze metrics.

Yakakwira-level HPA inoshanda dhizaini:

  1. Iyo HPA inoramba ichitarisa iyo metric kukosha yakatsanangurwa panguva yekumisikidzwa panguva yekumisikidzwa kwemasekonzi makumi matatu.
  2. Iyo HPA inoedza kuwedzera huwandu hwemamodule kana iyo yakatsanangurwa chikumbaridzo chasvika.
  3. Iyo HPA inogadziridza iyo nhamba ye replicas mukati mekutumira / kudzokorora controller.
  4. Iyo yekuendesa / kudzokorora controller inozoisa chero inodiwa mamwe mamodule.

Matanho matatu eAutoscaling muKubernetes: Mashandisiro Awo Zvinobudirira
HPA inotanga iyo module yekuendesa maitiro kana metric chikumbaridzo chasvika

Paunenge uchishandisa HPA, funga zvinotevera:

  • Iyo yakasarudzika HPA yekutarisa nguva ndeye 30 masekondi. Inoiswa nemureza horizontal-pod-autoscaler-sync-period mune mutungamiriri maneja.
  • The default hama kukanganisa ndeye 10%.
  • Mushure mekuwedzera kwekupedzisira kwenhamba yemamodule, HPA inotarisira kuti metrics idzikame mukati memaminitsi matatu. Iyi nguva inotarwa nemureza horizontal-pod-autoscaler-upscale-kunonoka.
  • Mushure mekupedzisira kudzikiswa kwehuwandu hwemamodule, iyo HPA inomirira kwemaminitsi mashanu kuti igadzikane. Iyi nguva inotarwa nemureza horizontal-pod-autoscaler-downscale-kunonoka.
  • HPA inoshanda zvakanyanya nezvinhu zvekutumira pane kudzokorodza zvinodzora. Horizontal autoscaling haienderane ne rolling update, iyo inobata zvakananga zvidzori zvekudzokorora. Nekutumirwa, huwandu hwema replicas hunoenderana zvakananga pazvinhu zvekutumira.

Vertical autoscaling yemapods

Vertical autoscaling (VPA) inogovera yakawanda (kana zvishoma) CPU nguva kana ndangariro kune aripo pods. Inokodzera mapodhi ehurumende kana asina nyika, asi zvakanyanya kuitirwa masevhisi ehurumende. Nekudaro, iwe unogona zvakare kushandisa VPA kune stateless module kana iwe uchifanira kugadzirisa otomatiki huwandu hwekutanga hwakapihwa zviwanikwa.

VPA inopindurawo kune OOM (kunze kwekuyeuka) zviitiko. Kuchinja CPU nguva uye ndangariro zvinoda kutangazve mapodhi. Kana yatangwazve, VPA inoremekedza bhajeti rekugovera (pods kugovera bhajeti, PDB) kuvimbisa hushoma hunodiwa nhamba yemamodule.

Iwe unogona kuseta hushoma uye hwakanyanya zviwanikwa kune yega yega module. Saka, iwe unogona kudzikamisa huwandu hwakanyanya hwekugoverwa memory kusvika ku8 GB. Izvi zvinobatsira kana node dzazvino haugone kugovera zvinopfuura 8 GB yendangariro pamudziyo. Tsanangudzo dzakadzama uye maitiro ekushandisa anotsanangurwa mukati official VPA wiki.

Mukuwedzera, VPA ine inonakidza kurudziro basa (VPA Recommender). Inotarisisa mashandisirwo ezviwanikwa uye zviitiko zveOOM zveese mamodule kuratidza ndangariro nyowani uye CPU nguva kukosha kwakavakirwa pahungwaru algorithm yakavakirwa panhoroondo metrics. Kune zvakare API inotora mubato wepodhi uye inodzosera yakakurudzirwa zviwanikwa.

Izvo zvakakosha kuti uzive kuti VPA Recommender haiteedzere sosi "muganhu". Izvi zvinogona kukonzera kuti module monopolizing zviwanikwa mukati menode. Zviri nani kuseta muganho padanho rezita kuti udzivise ndangariro hombe kana CPU kushandiswa.

High-level VPA operation scheme:

  1. VPA inoramba ichitarisa iyo metric kukosha yakatsanangurwa panguva yekumisikidza panguva yakasarudzika yemasekonzi gumi.
  2. Kana chikumbaridzo chakatarwa chasvika, VPA inoedza kushandura huwandu hwakagoverwa hwezviwanikwa.
  3. Iyo VPA inogadziridza huwandu hwezviwanikwa mukati meiyo deployment / replication controller.
  4. Kana ma module anotangwazve, zviwanikwa zvese zvitsva zvinoshandiswa kune akagadzirwa zviitiko.

Matanho matatu eAutoscaling muKubernetes: Mashandisiro Awo Zvinobudirira
VPA inowedzera huwandu hunodiwa hwezviwanikwa

Ndapota chengeta pfungwa dzinotevera mupfungwa paunenge uchishandisa VPA:

  • Kuyera kunoda kusungirwa kutangazve kwepodhi. Izvi zvinodiwa kudzivirira kushanda kusina kugadzikana mushure mekuita shanduko. Kuti avimbike, mamodule anotangwazve uye anogovaniswa munzvimbo dzese zvichienderana nezviwanikwa zvichangobva kupihwa.
  • VPA neHPA hazvisati zvanyatsoenderana uye hazvigone kumhanya pamapodhi mamwe chete. Kana iwe uri kushandisa ese ari maviri machira ekuyera musumbu rimwe chete, ita shuwa kuti zvigadziriso zvako zvinodzivirira kuti zvisaitwe pachinhu chimwe chete.
  • VPA tunes zvikumbiro zvemidziyo yezviwanikwa zvinoenderana chete nekare uye yazvino mashandisiro. Iyo haiise miganho yekushandisa zviwanikwa. Panogona kunge paine matambudziko nemaapplication asiri kushanda nemazvo uye kutanga kutora zviwanikwa zvakawanda, izvi zvinotungamira Kubernetes kudzima iyi pod.
  • VPA ichiri padanho rekutanga rebudiriro. Iva wakagadzirira kuti sisitimu inogona kuita shanduko munguva pfupi iri kutevera. Unogona kuverenga nezvazvo zvinozivikanwa zvisingakwanisi ΠΈ zvirongwa zvebudiriro. Nokudaro, pane zvirongwa zvekushandisa kushanda pamwe chete kweVPA neHPA, pamwe nekutumirwa kwemamodules pamwe chete nemutemo wekutsvaga autoscaling kwavari (somuenzaniso, chinyorwa chakakosha 'chinoda VPA').

Autoscaling a Kubernetes cluster

Cluster Autoscaler (CA) inoshandura huwandu hwemanodhi zvichienderana nehuwandu hwemapodhi akamirira. Iyo sisitimu nguva nenguva inotarisa kune akamirira mamodule - uye inowedzera saizi yesumbu kana zvimwe zviwanikwa zvichidikanwa uye kana sumbu racho rikasapfuura miganhu yakatarwa. Iyo CA inotaurirana neyegore sevhisi inopa, inokumbira mamwe manode kubva kwairi, kana kuburitsa zvisina basa. Yekutanga inowanikwa inowanikwa yeCA yakaunzwa muKubernetes 1.8.

High-level scheme yeSA kushanda:

  1. CA inotarisa mamodules akamirira panguva yakatarwa yemasekonzi gumi.
  2. Kana imwe kana akawanda mapodhi ari munzvimbo yakamira nekuti sumbu racho harina zvakakwana zvekushandisa kuti rigovere, rinoedza kupa imwe kana mamwe mamwe manodhi.
  3. Kana mupi webasa wegore akagovera node inodiwa, inobatana nesumbu uye yakagadzirira kushandira mapods.
  4. Iyo Kubernetes scheduler inogovera mapodhi akamirira kune imwe node itsva. Kana mushure meizvi mamwe ma modules achiri kuramba ari mukumirira, maitiro anodzokororwa uye node nyowani dzinowedzerwa kusumbu.

Matanho matatu eAutoscaling muKubernetes: Mashandisiro Awo Zvinobudirira
Kupa otomatiki kwemasumbu emapoka ari mugore

Funga zvinotevera paunenge uchishandisa CA:

  • CA inova nechokwadi chekuti mapodhi ese ari musumbu ane nzvimbo yekumhanya, zvisinei neCPU mutoro. Inoedzawo kuona kuti hapana node dzisina kufanira musumbu.
  • CA inonyoresa kudiwa kwekuyera mushure memasekondi angangoita makumi matatu.
  • Kana imwe node isingachadiwi, iyo CA inomira kumirira maminetsi gumi isati yaburitsa system.
  • Iyo autoscaling system ine pfungwa yekuwedzera. Aya ndiwo marongero akasiyana ekusarudza boka remanodhi umo mazondo matsva achawedzerwa.
  • Shandisa sarudzo zvine musoro cluster-autoscaler.kubernetes.io/safe-to-evict (chokwadi). Kana iwe ukaisa akawanda mapodhi, kana mazhinji acho akapararira munzvimbo dzese, iwe unozorasikirwa nekukwanisa kuyera sumbu.
  • Shandisa PodDisruptionBudgetskudzivirira mapodhi kubva pakudzimwa, izvo zvinogona kuita kuti zvikamu zvekushandisa kwako zvityoke zvachose.

Maitiro eKubernetes autoscalers anodyidzana nemumwe

Kuti kuwirirane kwakaringana, autoscaling inofanirwa kuiswa pane ese ari maviri pod level (HPA/VPA) uye chikamu chesumbu. Ivo vanodyidzana nemumwe zviri nyore:

  1. HPAs kana VPAs inogadziridza pod replicas kana zviwanikwa zvakagoverwa kune aripo pods.
  2. Kana pasina ma node akakwana ekuyera kwakarongwa, CA inocherechedza kuvapo kwemapodhi munzvimbo yakamirira.
  3. Iyo CA inogovera node nyowani.
  4. Mamodule akagoverwa kune itsva node.

Matanho matatu eAutoscaling muKubernetes: Mashandisiro Awo Zvinobudirira
Kudyidzana Kubernetes scale-out system

Kukanganisa kwakajairika muKubernetes autoscaling

Kune akati wandei matambudziko akajairika ayo devops anopinda mukati kana achiedza kuita autoscaling.

HPA neVPA zvinoenderana nemametrics uye imwe nhoroondo data. Kana zviwanikwa zvisina kukwana zvakagoverwa, ma modules anozoderedzwa uye haazokwanisi kugadzira metrics. Muchiitiko ichi, autoscaling haizomboitike.

The scaling operation pachayo inobata nguva. Tinoda kuti ma module uye sumbu rikure nekukurumidza - vashandisi vasati vaona chero matambudziko kana kutadza. Naizvozvo, avhareji yekuyera nguva yepods uye sumbu inofanira kuverengerwa.

Yakanaka mamiriro - 4 maminetsi:

  1. 30 seconds. Gadziridza chinangwa chemetrics: 30βˆ’60 masekonzi.
  2. 30 seconds. HPA inotarisa metric kukosha: 30 masekondi.
  3. Pasina 2 seconds. Mapodhi anogadzirwa uye anoenda mukumirira: 1 sekondi.
  4. Pasina 2 seconds. CA inoona mamodule ekumirira uye inotumira mafoni kune yekupa node: 1 sekondi.
  5. 3 maminitsi. Mupi wegore anogovera node. K8s inomirira kusvika yagadzirira: kusvika kumaminitsi gumi (zvichienderana nezvimwe zvinhu).

Nyaya yakaipisisa (yakanyanya kuitika) mamiriro - 12 maminetsi:

  1. 30 seconds. Gadzirisa chinangwa chemetrics.
  2. 30 seconds. HPA inotarisa zviyero zvemetric.
  3. Pasina 2 seconds. Mapodhi anogadzirwa uye anopinda mune yekumira.
  4. Pasina 2 seconds. Iyo CA inoona mamodule ekumirira uye inotumira mafoni kupa node.
  5. Maminitsi gumi. Mupi wegore anogovera node. MaK10 anomirira kusvika agadzirira. Nguva yekumirira inotsamira pazvinhu zvakati wandei, sekunonoka kwemutengesi, kunonoka kweOS, uye maturusi ekutsigira.

Usapesanise makore evanopa kuyera maitiro neCA yedu. Iyo yekupedzisira inomhanya mukati meKubernetes cluster, nepo gore rekupa injini inoshanda pane node yekugovera hwaro. Izvo hazvizive zviri kuitika nemapods ako kana application. Aya masisitimu anoshanda mukuwirirana.

Maitiro ekugadzirisa kuyera muKubernetes

  1. Kubernetes chishandiso manejimendi uye orchestration chishandiso. Mashandiro ekugadzirisa mapodhi uye zviwanikwa zvemasumbu chiitiko chakakosha mukugona Kubernetes.
  2. Nzwisisa pfungwa yepod scalability uchifunga nezveHPA neVPA.
  3. CA inofanira kushandiswa chete kana iwe uine nzwisiso yakanaka yezvinodiwa zvemapods ako nemidziyo.
  4. Kuti unyatso gadzirisa cluster, unofanirwa kunzwisisa kuti akasiyana masisitimu ekuyera anoshanda pamwechete.
  5. Paunenge uchifungidzira kuyera nguva, chengeta zvakanyanya-zvakanyanya uye zvakanakisa-zviitiko mupfungwa.

Source: www.habr.com

Voeg