Awọn ipele mẹta ti Autoscaling ni Kubernetes: Bii o ṣe le Lo Wọn Ni imunadoko

Awọn ipele mẹta ti Autoscaling ni Kubernetes: Bii o ṣe le Lo Wọn Ni imunadoko
Lati ṣakoso Kubernetes ni kikun, o nilo lati mọ awọn ọna oriṣiriṣi lati ṣe iwọn awọn orisun iṣupọ: nipasẹ gẹgẹ bi awọn olupilẹṣẹ eto, eyi jẹ ọkan ninu awọn iṣẹ-ṣiṣe akọkọ ti Kubernetes. A ti pese akopọ ipele giga ti petele ati inaro autoscaling ati awọn ọna ṣiṣe iwọn iṣupọ, ati awọn iṣeduro lori bii o ṣe le lo wọn daradara.

Abala Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, ati Inaro Pod Autoscaler tumọ nipasẹ ẹgbẹ ti o ṣe imuse autoscaling ni Kubernetes aaS lati Mail.ru.

Kini idi ti o ṣe pataki lati ronu nipa iwọn

Kubernetes - ọpa kan fun iṣakoso awọn orisun ati orchestration. Nitoribẹẹ, o dara lati tinker pẹlu awọn ẹya tutu ti gbigbe, ibojuwo, ati iṣakoso awọn adarọ-ese (podu kan jẹ ẹgbẹ awọn apoti ti o ṣe ifilọlẹ ni idahun si ibeere kan).

Sibẹsibẹ, o yẹ ki o tun ronu nipa awọn ibeere wọnyi:

  1. Bawo ni lati ṣe iwọn awọn modulu ati awọn ohun elo?
  2. Bawo ni lati tọju awọn apoti ṣiṣẹ ati ṣiṣe daradara?
  3. Bii o ṣe le dahun si awọn ayipada igbagbogbo ni koodu ati awọn iṣẹ ṣiṣe lati ọdọ awọn olumulo?

Ṣiṣeto awọn iṣupọ Kubernetes lati ṣe iwọntunwọnsi awọn orisun ati iṣẹ le jẹ nija ati nilo imọ-iwé ti awọn iṣẹ inu ti Kubernetes. Ẹru iṣẹ ti ohun elo rẹ tabi awọn iṣẹ le yipada ni gbogbo ọjọ tabi paapaa lori akoko ti wakati kan, nitorinaa iwọntunwọnsi jẹ ero ti o dara julọ bi ilana ti nlọ lọwọ.

Kubernetes autoscaling awọn ipele

Aifọwọyi adaṣe ti o munadoko nilo isọdọkan laarin awọn ipele meji:

  1. Ipele podu, pẹlu petele (Horizontal Pod Autoscaler, HPA) ati inaro autoscaler (Vertical Pod Autoscaler, VPA). Eyi n ṣe iwọn awọn orisun to wa fun awọn apoti rẹ.
  2. Ipele iṣupọ, eyiti o jẹ iṣakoso nipasẹ Cluster Autoscaler (CA), eyiti o pọ si tabi dinku nọmba awọn apa laarin iṣupọ naa.

Horizontal Autoscaler (HPA) module

Gẹgẹbi orukọ ṣe daba, HPA ṣe iwọn nọmba awọn ẹda adarọ-ese. Pupọ awọn devops lo Sipiyu ati fifuye iranti bi awọn okunfa fun iyipada nọmba awọn ẹda. Sibẹsibẹ, o ṣee ṣe lati ṣe iwọn eto ti o da lori aṣa metiriki, wọn awọn akojọpọ tabi koda ita metiriki.

Aworan ti nṣiṣẹ HPA ipele giga:

  1. HPA nigbagbogbo n ṣayẹwo awọn iye metric ti pato lakoko fifi sori ẹrọ ni aarin aiyipada ti awọn aaya 30.
  2. HPA ngbiyanju lati mu nọmba awọn modulu pọ si ti o ba ti de ẹnu-ọna kan pato.
  3. HPA n ṣe imudojuiwọn nọmba awọn ẹda ti o wa laarin imuṣiṣẹ / oludari ẹda.
  4. Oluṣakoso imuṣiṣẹ / atunda lẹhinna ran awọn afikun awọn modulu pataki.

Awọn ipele mẹta ti Autoscaling ni Kubernetes: Bii o ṣe le Lo Wọn Ni imunadoko
HPA bẹrẹ ilana imuṣiṣẹ module nigbati ala metiriki kan ba de

Nigba lilo HPA, ro awọn wọnyi:

  • Aarin ayẹwo HPA aiyipada jẹ iṣẹju-aaya 30. O ti ṣeto nipasẹ asia petele-pod-autoscaler-sync-akoko ninu oluṣakoso oludari.
  • Aṣiṣe ibatan aiyipada jẹ 10%.
  • Lẹhin ilosoke ti o kẹhin ninu nọmba awọn modulu, HPA nireti pe awọn metiriki lati duro laarin iṣẹju mẹta. Aarin yii ti ṣeto nipasẹ asia petele-pod-autoscaler-upscale-idaduro.
  • Lẹhin idinku ti o kẹhin ninu nọmba awọn modulu, HPA nduro fun iṣẹju marun lati duro. Aarin yii ti ṣeto nipasẹ asia petele-pod-autoscaler-downscale-idaduro.
  • HPA ṣiṣẹ dara julọ pẹlu awọn ohun imuṣiṣẹ kuku ju awọn olutona ẹda. Petele autoscaling ko ni ibamu pẹlu imudojuiwọn yiyi, eyiti o ṣe afọwọyi taara awọn olutọsọna ẹda. Pẹlu imuṣiṣẹ, nọmba awọn ẹda ti o da taara lori awọn nkan imuṣiṣẹ.

Inaro autoscaling ti pods

Inaro autoscaling (VPA) soto diẹ sii (tabi kere si) Sipiyu akoko tabi iranti to wa tẹlẹ pods. Dara fun awọn adarọ-ese ti ipinlẹ tabi ti ko ni ipinlẹ, ṣugbọn a pinnu ni pataki fun awọn iṣẹ ipinlẹ. Sibẹsibẹ, o tun le lo VPA fun awọn modulu ti ko ni ipinlẹ ti o ba nilo lati ṣatunṣe laifọwọyi iye awọn orisun ti a pin ni ibẹrẹ.

VPA tun dahun si awọn iṣẹlẹ OOM (ti iranti). Yiyipada akoko Sipiyu ati iranti nbeere tun awọn adarọ-ese naa bẹrẹ. Nigbati a tun bẹrẹ, VPA bọwọ fun isuna ipin (pods pinpin isuna, PDB) lati ṣe iṣeduro nọmba ti o kere julọ ti awọn modulu.

O le ṣeto awọn kere ati ki o pọju oro fun kọọkan module. Bayi, o le idinwo awọn ti o pọju iye ti soto iranti to 8 GB. Eyi wulo ti awọn apa lọwọlọwọ ko le pin diẹ sii ju 8 GB ti iranti fun eiyan. Awọn alaye ni pato ati ẹrọ ṣiṣe ni a ṣe apejuwe ninu osise VPA wiki.

Ni afikun, VPA ni iṣẹ iṣeduro ti o nifẹ (VPA Oluṣowo). O ṣe abojuto lilo awọn orisun ati awọn iṣẹlẹ OOM ti gbogbo awọn modulu lati daba iranti tuntun ati awọn iye akoko Sipiyu ti o da lori algorithm ti oye ti o da lori awọn metiriki itan. API tun wa ti o mu adarọ-ese ati da awọn iye orisun orisun ti a daba pada.

O tọ lati ṣe akiyesi pe Oluṣeduro VPA ko tọpa awọn orisun “ipin”. Eyi le ja si awọn orisun monopolizing module laarin awọn apa. O dara lati ṣeto opin ni ipele aaye orukọ lati yago fun iranti nla tabi agbara Sipiyu.

Eto iṣiṣẹ VPA giga:

  1. VPA nigbagbogbo n ṣayẹwo awọn iye metric ti pato lakoko fifi sori ẹrọ ni aarin aiyipada ti awọn aaya 10.
  2. Ti ẹnu-ọna ti a ti sọ tẹlẹ ba ti de, VPA ngbiyanju lati yi iye awọn orisun ti a sọtọ.
  3. VPA ṣe imudojuiwọn nọmba awọn orisun laarin imuṣiṣẹ / oluṣakoso ẹda.
  4. Nigbati awọn modulu ba tun bẹrẹ, gbogbo awọn orisun tuntun ni a lo si awọn iṣẹlẹ ti o ṣẹda.

Awọn ipele mẹta ti Autoscaling ni Kubernetes: Bii o ṣe le Lo Wọn Ni imunadoko
VPA ṣe afikun iye ti a beere fun awọn orisun

Jọwọ tọju awọn aaye wọnyi ni ọkan nigba lilo VPA:

  • Wiwọn nilo atunbẹrẹ dandan ti podu naa. Eyi jẹ pataki lati yago fun iṣẹ riru lẹhin ṣiṣe awọn ayipada. Fun igbẹkẹle, awọn modulu ti tun bẹrẹ ati pin kaakiri awọn apa ti o da lori awọn orisun ipin tuntun.
  • VPA ati HPA ko tii ni ibamu pẹlu ara wọn ati pe wọn ko le ṣiṣẹ lori awọn adarọ-ese kanna. Ti o ba nlo awọn ọna ṣiṣe iwọn mejeeji ni iṣupọ kanna, rii daju pe awọn eto rẹ ṣe idiwọ wọn lati muu ṣiṣẹ lori awọn nkan kanna.
  • VPA tunes awọn ibeere apoti fun awọn orisun ti o da lori iṣaju ati lilo lọwọlọwọ. Ko ṣeto awọn opin lilo awọn orisun. Awọn iṣoro le wa pẹlu awọn ohun elo ti ko ṣiṣẹ bi o ti tọ ati bẹrẹ lati gba awọn orisun diẹ sii ati siwaju sii, eyi yoo yorisi Kubernetes titan paadi yii.
  • VPA tun wa ni ipele ibẹrẹ ti idagbasoke. Ṣetan pe eto naa le gba diẹ ninu awọn ayipada ni ọjọ iwaju to sunmọ. O le ka nipa mọ idiwọn и idagbasoke eto. Nitorinaa, awọn ero wa lati ṣe imuse iṣiṣẹ apapọ ti VPA ati HPA, ati imuṣiṣẹ ti awọn modulu pẹlu eto imulo autoscaling inaro fun wọn (fun apẹẹrẹ, aami pataki kan 'nilo VPA').

Autoscaling a Kubernetes iṣupọ

Cluster Autoscaler (CA) yipada nọmba awọn apa ti o da lori nọmba awọn adarọ-ese idaduro. Eto naa ṣe ayẹwo lorekore fun awọn modulu isunmọtosi - ati pe o pọ si iwọn iṣupọ ti o ba nilo awọn orisun diẹ sii ati ti iṣupọ ko ba kọja awọn opin ti iṣeto. CA n ba olupese iṣẹ awọsanma sọrọ, beere awọn apa afikun lati ọdọ rẹ, tabi tu awọn ti ko ṣiṣẹ silẹ. Ẹya ti o wa ni gbogbogbo ti CA ni a ṣe afihan ni Kubernetes 1.8.

Eto ipele giga ti iṣẹ SA:

  1. CA sọwedowo fun awọn modulu isunmọtosi ni aarin aiyipada ti awọn aaya 10.
  2. Ti ọkan tabi diẹ ẹ sii awọn adarọ-ese ba wa ni ipo imurasilẹ nitori iṣupọ ko ni awọn orisun to wa lati pin wọn, o ngbiyanju lati pese awọn apa afikun kan tabi diẹ sii.
  3. Nigbati olupese iṣẹ awọsanma ba pin oju ipade ti o nilo, o darapọ mọ iṣupọ ati pe o ṣetan lati sin awọn adarọ-ese.
  4. Oluṣeto Kubernetes n pin awọn adarọ-ese ni isunmọtosi si ipade tuntun. Ti o ba ti lẹhin eyi diẹ ninu awọn modulu tun wa ni ipo idaduro, ilana naa yoo tun ṣe ati awọn apa tuntun ti wa ni afikun si iṣupọ.

Awọn ipele mẹta ti Autoscaling ni Kubernetes: Bii o ṣe le Lo Wọn Ni imunadoko
Ipese adaṣe ti awọn apa iṣupọ ninu awọsanma

Ro awọn wọnyi nigba lilo CA:

  • CA ṣe idaniloju pe gbogbo awọn adarọ-ese ti o wa ninu iṣupọ ni yara lati ṣiṣẹ, laibikita fifuye Sipiyu. O tun gbiyanju lati rii daju pe ko si awọn apa ti ko wulo ninu iṣupọ.
  • CA forukọsilẹ iwulo lati ṣe iwọn lẹhin isunmọ awọn aaya 30.
  • Ni kete ti a ko nilo oju ipade kan mọ, CA ṣe aipe lati duro awọn iṣẹju mẹwa 10 ṣaaju iwọn eto naa.
  • Awọn autoscaling eto ni o ni awọn Erongba ti expanders. Iwọnyi jẹ awọn ọgbọn oriṣiriṣi fun yiyan ẹgbẹ kan ti awọn apa si eyiti awọn apa tuntun yoo ṣafikun.
  • Lo aṣayan naa ni ifojusọna cluster-autoscaler.kubernetes.io/safe-to-evict (otitọ). Ti o ba fi ọpọlọpọ awọn adarọ-ese sori ẹrọ, tabi ti ọpọlọpọ ninu wọn ba tuka kaakiri gbogbo awọn apa, iwọ yoo padanu agbara pupọ lati ṣe iwọn iṣupọ naa.
  • Lo PodDisruptionBudgetslati ṣe idiwọ awọn adarọ-ese lati paarẹ, eyiti o le fa awọn apakan ti ohun elo rẹ lati fọ patapata.

Bawo ni Kubernetes autoscalers nlo pẹlu kọọkan miiran

Fun isokan pipe, autoscaling yẹ ki o lo ni ipele podu mejeeji (HPA/VPA) ati ipele iṣupọ. Wọn ṣe ajọṣepọ pẹlu ara wọn ni irọrun ni irọrun:

  1. Awọn HPA tabi VPA ṣe imudojuiwọn awọn ẹda adarọ-ese tabi awọn orisun ti a pin si awọn adarọ-ese to wa tẹlẹ.
  2. Ti ko ba si awọn apa ti o to fun iwọn igbero ti a gbero, CA ṣe akiyesi wiwa awọn adarọ-ese ni ipo iduro.
  3. CA pin awọn apa tuntun.
  4. Awọn modulu ti pin si awọn apa titun.

Awọn ipele mẹta ti Autoscaling ni Kubernetes: Bii o ṣe le Lo Wọn Ni imunadoko
Ifowosowopo Kubernetes asekale-jade eto

Awọn aṣiṣe ti o wọpọ ni Kubernetes autoscaling

Ọpọlọpọ awọn iṣoro ti o wọpọ lo wa ti awọn devops nṣiṣẹ sinu nigbati o n gbiyanju lati ṣe adaṣe adaṣe.

HPA ati VPA da lori awọn metiriki ati diẹ ninu awọn data itan. Ti a ko ba pin awọn orisun ti ko to, awọn modulu yoo dinku ati pe kii yoo ni anfani lati ṣe ina awọn metiriki. Ni idi eyi, autoscaling kii yoo ṣẹlẹ.

Išišẹ igbelosoke funrararẹ jẹ ifarabalẹ akoko. A fẹ ki awọn modulu ati iṣupọ lati ṣe iwọn ni kiakia - ṣaaju ki awọn olumulo ṣe akiyesi eyikeyi awọn iṣoro tabi awọn ikuna. Nitorinaa, apapọ akoko fun awọn adarọ-ese ti iwọn ati iṣupọ yẹ ki o ṣe akiyesi.

Oju iṣẹlẹ ti o dara julọ - Awọn iṣẹju 4:

  1. 30 aaya. Ṣe imudojuiwọn awọn metiriki ibi-afẹde: 30-60 awọn aaya.
  2. 30 aaya. HPA sọwedowo metric iye: 30 aaya.
  3. Kere ju iṣẹju-aaya 2. Pods ti wa ni ṣẹda ki o si lọ sinu idaduro ipinle: 1 iṣẹju.
  4. Kere ju iṣẹju-aaya 2. CA wo awọn modulu idaduro ati firanṣẹ awọn ipe si awọn apa ipese: 1 iṣẹju-aaya.
  5. 3 iṣẹju. Olupese awọsanma pin awọn apa. K8s duro titi ti wọn fi ṣetan: to awọn iṣẹju 10 (da lori ọpọlọpọ awọn ifosiwewe).

Oju iṣẹlẹ ti o buru julọ (ojulowo diẹ sii) oju iṣẹlẹ - iṣẹju 12:

  1. 30 aaya. Ṣe imudojuiwọn awọn metiriki ibi-afẹde.
  2. 30 aaya. HPA ṣe ayẹwo awọn iye metric.
  3. Kere ju iṣẹju-aaya 2. Awọn adarọ-ese ti ṣẹda ati tẹ ipo imurasilẹ sii.
  4. Kere ju iṣẹju-aaya 2. CA n wo awọn modulu idaduro ati pe o ṣe awọn ipe si ipese awọn apa.
  5. 10 iṣẹju. Olupese awọsanma pin awọn apa. K8s duro titi ti wọn yoo ṣetan. Akoko idaduro da lori awọn ifosiwewe pupọ, gẹgẹbi idaduro ataja, idaduro OS, ati awọn irinṣẹ atilẹyin.

Maṣe dapo awọn ọna ṣiṣe iwọn awọn olupese awọsanma pẹlu CA wa. Ikẹhin nṣiṣẹ inu iṣupọ Kubernetes kan, lakoko ti ẹrọ olupese awọsanma nṣiṣẹ lori ipilẹ pinpin ipade. Ko mọ ohun ti n ṣẹlẹ pẹlu awọn adarọ-ese tabi ohun elo rẹ. Awọn ọna ṣiṣe wọnyi ṣiṣẹ ni afiwe.

Bii o ṣe le ṣakoso iwọn ni Kubernetes

  1. Kubernetes jẹ iṣakoso awọn orisun ati ohun elo orchestration. Awọn iṣẹ ṣiṣe fun ṣiṣakoso awọn adarọ-ese ati awọn orisun iṣupọ jẹ iṣẹlẹ pataki kan ni ṣiṣakoso Kubernetes.
  2. Loye imọ-ọrọ ti iwọn iwọn podu ni akiyesi HPA ati VPA.
  3. CA yẹ ki o ṣee lo nikan ti o ba ni oye ti o dara ti awọn iwulo ti awọn adarọ-ese ati awọn apoti rẹ.
  4. Lati tunto iṣupọ kan ni aipe, o nilo lati loye bii awọn eto igbelowọn oriṣiriṣi ṣe n ṣiṣẹ papọ.
  5. Nigbati o ba n ṣe iṣiro akoko igbelowọn, tọju ọran ti o buruju ati awọn oju iṣẹlẹ ti o dara julọ ni lokan.

orisun: www.habr.com

Fi ọrọìwòye kun