Twa Nivo Autoscaling nan Kubernetes: Ki jan yo sèvi ak yo efektivman

Twa Nivo Autoscaling nan Kubernetes: Ki jan yo sèvi ak yo efektivman
Pou metrize Kubernetes konplètman, ou bezwen konnen diferan fason pou echèl resous gwoup: pa dapre devlopè sistèm yo, sa a se youn nan travay prensipal yo nan Kubernetes. Nou te bay yon apèsi wo nivo sou oto-skalaj orizontal ak vètikal ak mekanis redimansyon gwoup, ansanm ak rekòmandasyon sou fason pou itilize yo efektivman.

Atik Kubernetes Autoscaling 101: Cluster Autoscaler, Autoscaler orizontal, ak Autoscaler pod vètikal tradui pa ekip la ki aplike otoscaling nan Kubernetes aaS soti nan Mail.ru.

Poukisa li enpòtan pou w reflechi sou dekale

Kubernetes - yon zouti pou jesyon resous ak òkestrasyon. Natirèlman, li bon pou brikole ak karakteristik yo fre nan deplwaye, siveyans, ak jere gous (yon gous se yon gwoup resipyan ki lanse nan repons a yon demann).

Sepandan, ou ta dwe reflechi tou sou kesyon sa yo:

  1. Ki jan yo echèl modil ak aplikasyon yo?
  2. Ki jan yo kenbe resipyan operasyonèl ak efikas?
  3. Ki jan yo reponn a chanjman konstan nan kòd ak chaj travay soti nan itilizatè yo?

Konfigirasyon gwoup Kubernetes pou balanse resous ak pèfòmans ka difisil epi li mande konesans ekspè nan fonksyonman anndan Kubernetes. Chaj travay aplikasyon w lan oswa sèvis yo ka varye pandan tout jounen an oswa menm sou yon èdtan, kidonk balanse pi byen konsidere kòm yon pwosesis kontinyèl.

Nivo Autoscaling Kubernetes

Autoscaling efikas mande kowòdinasyon ant de nivo:

  1. Nivo Pod, ki gen ladan orizontal (Horizontal Pod Autoscaler, HPA) ak vètikal Autoscaler (Vètikal Pod Autoscaler, VPA). Sa ap ogmante resous ki disponib pou resipyan ou yo.
  2. Nivo Cluster, ki jere pa Cluster Autoscaler (CA), ki ogmante oswa diminye kantite nœuds nan gwoup la.

Modil orizontal Autoscaler (HPA).

Kòm non an sijere, HPA balanse kantite kopi gous yo. Pifò devops itilize CPU ak chaj memwa kòm deklanche pou chanje kantite kopi. Sepandan, li posib pou echèl sistèm nan ki baze sou mezi koutim, yo konbinezon oswa menm mezi ekstèn.

Dyagram fonksyònman HPA wo nivo:

  1. HPA kontinyèlman tcheke valè metrik yo espesifye pandan enstalasyon nan yon entèval default nan 30 segonn.
  2. HPA eseye ogmante kantite modil si yo rive nan papòt espesifye a.
  3. HPA mete ajou kantite kopi ki genyen nan kontwolè deplwaman/replikasyon an.
  4. Kontwolè deplwaman/replikasyon an Lè sa a, deplwaye nenpòt modil adisyonèl ki nesesè yo.

Twa Nivo Autoscaling nan Kubernetes: Ki jan yo sèvi ak yo efektivman
HPA kòmanse pwosesis deplwaman modil la lè yo rive nan yon papòt metrik

Lè w ap itilize HPA, konsidere bagay sa yo:

  • Entèval chèk HPA default se 30 segonn. Li mete pa drapo a orizontal-gous-autoscaler-sync-peryòd nan manadjè kontwolè a.
  • Defo relatif erè a se 10%.
  • Apre dènye ogmantasyon nan kantite modil, HPA espere mezi yo estabilize nan twa minit. Se drapo a mete entèval sa a orizontal-gous-autoscaler-upscale-reta.
  • Apre dènye rediksyon nan kantite modil, HPA tann senk minit pou estabilize. Se drapo a mete entèval sa a orizontal-gous-autoscaler-downscale-reta.
  • HPA travay pi byen ak objè deplwaman olye ke kontwolè replikasyon. Autoscaling orizontal se enkonpatib ak aktyalizasyon woule, ki dirèkteman manipile kontwolè replikasyon. Avèk deplwaman, kantite kopi depann dirèkteman sou objè deplwaman yo.

Autoscaling vètikal nan gous

Vètikal autoscaling (VPA) asiyen plis (oswa mwens) tan CPU oswa memwa nan gous ki egziste deja. Apwopriye pou gous leta oswa apatrid, men sitou gen entansyon pou sèvis leta. Sepandan, ou ka itilize VPA tou pou modil apatrid si ou bezwen otomatikman ajiste kantite resous yo te resevwa okòmansman an.

VPA reponn tou a evènman OOM (pa memwa). Chanje tan CPU ak memwa mande pou rekòmanse gous yo. Lè rekòmanse, VPA a respekte bidjè alokasyon an (bidjè distribisyon gous, PDB) pou garanti minimòm kantite modil ki nesesè yo.

Ou ka mete resous minimòm ak maksimòm pou chak modil. Kidonk, ou ka limite kantite maksimòm memwa atribye ba a 8 GB. Sa a se itil si nœuds aktyèl yo definitivman pa ka asiyen plis pase 8 GB nan memwa pou chak veso. Espesifikasyon detaye ak mekanis opere yo dekri nan wiki ofisyèl VPA.

Anplis de sa, VPA gen yon fonksyon rekòmandasyon enteresan (Rekòmandasyon VPA). Li kontwole itilizasyon resous ak evènman OOM nan tout modil yo sijere nouvo memwa ak valè tan CPU ki baze sou yon algorithm entèlijan ki baze sou mezi istorik. Genyen tou yon API ki pran yon manch gous epi retounen valè resous sijere.

Li se vo anyen ke VPA Rekòmande pa swiv resous "limit". Sa ka lakòz modil la monopolize resous nan nœuds yo. Li pi bon pou mete limit la nan nivo namespace pou evite gwo memwa oswa konsomasyon CPU.

Konplo operasyon wo nivo VPA:

  1. VPA kontinyèlman tcheke valè metrik yo espesifye pandan enstalasyon nan yon entèval default nan 10 segonn.
  2. Si yo rive nan papòt ki espesifye a, VPA a eseye chanje kantite lajan yo resevwa nan resous yo.
  3. VPA a mete ajou kantite resous ki genyen nan kontwolè deplwaman/replikasyon an.
  4. Lè modil yo rekòmanse, tout nouvo resous yo aplike nan ka kreye yo.

Twa Nivo Autoscaling nan Kubernetes: Ki jan yo sèvi ak yo efektivman
VPA ajoute kantite resous ki nesesè yo

Tanpri kenbe pwen sa yo nan tèt ou lè w ap itilize VPA:

  • Echèl mande pou yon rekòmanse obligatwa nan gous la. Sa nesesè pou evite operasyon enstab apre yo fin fè chanjman. Pou fyab, modil yo rekòmanse epi distribye atravè nœuds ki baze sou resous ki fèk resevwa yo.
  • VPA ak HPA poko konpatib youn ak lòt epi yo pa ka kouri sou menm gous yo. Si w ap itilize tou de mekanis dekale nan menm gwoup la, asire w ke paramèt ou yo anpeche yo aktive sou menm objè yo.
  • VPA adapte demann veso yo pou resous ki baze sèlman sou itilizasyon tan lontan ak aktyèl yo. Li pa fikse limit itilizasyon resous yo. Ka gen pwoblèm ak aplikasyon ki pa travay kòrèkteman ak kòmanse pran sou pi plis ak plis resous, sa ap mennen nan Kubernetes fèmen gous sa a.
  • VPA toujou nan yon etap bonè nan devlopman. Prepare ke sistèm nan ka sibi kèk chanjman nan fiti prè. Ou ka li sou limit li te ye и plan devlopman. Kidonk, gen plan pou aplike operasyon an ansanm nan VPA ak HPA, osi byen ke deplwaman an nan modil ansanm ak yon politik vètikal autoscaling pou yo (pa egzanp, yon etikèt espesyal 'mande VPA').

Autoscaling yon gwoup Kubernetes

Cluster Autoscaler (CA) chanje kantite nœuds ki baze sou kantite gous ap tann yo. Sistèm nan tcheke detanzantan pou modil annatant - epi ogmante gwosè gwoup la si yo bezwen plis resous epi si gwoup la pa depase limit yo etabli. CA a kominike ak founisè sèvis nwaj la, mande lòt nœuds nan men li, oswa degaje nœuds san fè anyen konsa. Premye vèsyon an jeneral disponib nan CA te prezante nan Kubernetes 1.8.

Konplo wo nivo nan operasyon SA:

  1. CA tcheke modil annatant nan yon entèval default 10 segonn.
  2. Si youn oswa plis gous yo nan yon eta sibstiti paske gwoup la pa gen ase resous ki disponib pou asiyen yo, li eseye bay youn oswa plis nœud adisyonèl.
  3. Lè founisè sèvis nwaj la asiyen ne ki nesesè yo, li rantre nan gwoup la epi li pare pou sèvi gous yo.
  4. Planifikatè Kubernetes distribye gous annatant nan yon nouvo ne. Si apre sa kèk modil toujou rete nan yon eta ap tann, pwosesis la repete epi yo ajoute nouvo nœuds nan gwoup la.

Twa Nivo Autoscaling nan Kubernetes: Ki jan yo sèvi ak yo efektivman
Pwovizyon otomatik nan nœuds gwoup nan nwaj la

Konsidere bagay sa yo lè w ap itilize CA:

  • CA asire ke tout gous nan gwoup la gen plas pou kouri, kèlkeswa chaj CPU. Li eseye tou asire ke pa gen okenn nœuds nesesè nan gwoup la.
  • CA anrejistre bezwen nan echèl apre apeprè 30 segonn.
  • Yon fwa ke yon ne pa nesesè ankò, CA a par défaut pou tann 10 minit anvan dechaj sistèm lan.
  • Sistèm autoscaling la gen konsèp ekspansyon. Sa yo se diferan estrateji pou chwazi yon gwoup nœuds kote yo pral ajoute nouvo nœuds.
  • Sèvi ak opsyon a yon fason responsab cluster-autoscaler.kubernetes.io/safe-to-evict (vre). Si ou enstale yon anpil nan gous, oswa si anpil nan yo gaye nan tout nœuds yo, ou pral lajman pèdi kapasite nan echèl gwoup la.
  • Itilize PodDisruptionBudgetspou anpeche gous yo te efase, ki ka lakòz pati nan aplikasyon w lan kraze nèt.

Ki jan Kubernetes autoscaler kominike youn ak lòt

Pou amoni pafè, autoscaling ta dwe aplike nan nivo gous (HPA/VPA) ak nivo gwoup la. Yo kominike youn ak lòt relativman tou senpleman:

  1. HPAs oswa VPA yo mete ajou kopi gous oswa resous ki afekte nan gous ki egziste deja.
  2. Si pa gen ase nœuds pou eskalade ki te planifye a, CA a remake prezans gous yo nan yon eta ap tann.
  3. CA a asiyen nouvo nœuds.
  4. Modil yo distribye nan nouvo nœuds.

Twa Nivo Autoscaling nan Kubernetes: Ki jan yo sèvi ak yo efektivman
Kolaborasyon Kubernetes sistèm echèl-out

Erè komen nan Autoscaling Kubernetes

Gen plizyè pwoblèm komen ke devops kouri nan lè yo ap eseye aplike otoscaling.

HPA ak VPA depann sou mezi ak kèk done istorik. Si yo pa resevwa ase resous, modil yo pral minimize epi yo p ap kapab jenere mezi. Nan ka sa a, autoscaling p'ap janm rive.

Operasyon dekale nan tèt li se tan sansib. Nou vle modil yo ak gwoup yo echèl byen vit - anvan itilizatè yo remake nenpòt pwoblèm oswa echèk. Se poutèt sa, tan an mwayèn pou dekale gous ak grap la ta dwe pran an kont.

Senaryo ideyal - 4 minit:

  1. 30 segonn. Mete ajou mezi sib: 30-60 segonn.
  2. 30 segonn. HPA tcheke valè metrik: 30 segonn.
  3. Mwens pase 2 segonn. Gous yo kreye epi ale nan eta tann: 1 segonn.
  4. Mwens pase 2 segonn. CA wè modil ap tann epi voye apèl bay nœuds pwovizyon: 1 segonn.
  5. 3 minit. Founisè nwaj la asiyen nœuds. K8s tann jiskaske yo pare: jiska 10 minit (selon plizyè faktè).

Pi move ka (plis reyalis) senaryo - 12 minit:

  1. 30 segonn. Mete ajou mezi sib yo.
  2. 30 segonn. HPA tcheke valè metrik yo.
  3. Mwens pase 2 segonn. Gous yo kreye epi antre nan eta sibstiti a.
  4. Mwens pase 2 segonn. CA a wè modil ap tann yo epi li fè apèl pou bay nœuds yo.
  5. 10 minit. Founisè nwaj la asiyen nœuds. K8s ap tann jiskaske yo pare. Tan datant la depann de plizyè faktè, tankou reta machann, reta OS, ak zouti sipò.

Pa konfonn mekanis dekale founisè nwaj yo ak CA nou an. Lèt la kouri andedan yon gwoup Kubernetes, pandan y ap motè founisè nwaj la opere sou yon baz distribisyon ne. Li pa konnen sa k ap pase ak gous ou oswa aplikasyon w lan. Sistèm sa yo opere an paralèl.

Ki jan yo jere dekale nan Kubernetes

  1. Kubernetes se yon zouti jesyon resous ak òkestrasyon. Operasyon pou jere gous ak resous gwoup yo se yon etap enpòtan nan metrize Kubernetes.
  2. Konprann lojik évolutivité gous yo pran an kont HPA ak VPA.
  3. Yo ta dwe itilize CA sèlman si ou gen yon bon konpreyansyon sou bezwen gous ou yo ak resipyan yo.
  4. Pou konfigirasyon optimal yon gwoup, ou bezwen konprann ki jan diferan sistèm dekale travay ansanm.
  5. Lè w ap estime tan dekale, kenbe senaryo pi move ak pi bon ka nan tèt ou.

Sous: www.habr.com

Add nouvo kòmantè