Maemo a mararo a Autoscaling ho Kubernetes: Mokhoa oa ho li Sebelisa ka Katleho

Maemo a mararo a Autoscaling ho Kubernetes: Mokhoa oa ho li Sebelisa ka Katleho
Ho tseba Kubernetes ka botlalo, o hloka ho tseba mekhoa e fapaneng ea ho lekanya lisebelisoa tsa sehlopha: ka ho latela baetsi ba sistimi, ena ke e 'ngoe ea mesebetsi ea mantlha ea Kubernetes. Re fane ka kakaretso ea boemo bo holimo ea mekhoa e otlolohileng le e otlolohileng ea autoscaling le mekhoa ea ho fetola boholo ba lihlopha, hammoho le likhothaletso mabapi le mokhoa oa ho li sebelisa ka nepo.

Sengoloa Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, le Vertical Pod Autoscaler e fetoletsoeng ke sehlopha se kentseng tšebetsong autoscaling ka Kubernetes aaS ho tsoa ho Mail.ru.

Hobaneng ho le bohlokoa ho nahana ka ho lekanya

Kubernetes - sesebediswa sa tsamaiso ya disebediswa le okhestra. Ehlile, ho monate ho nahana ka likarolo tse ntle tsa ho tsamaisa, ho beha leihlo, le ho laola li-pods (pod ke sehlopha sa lijana tse qalisoang ho arabela kopo).

Leha ho le joalo, o boetse o lokela ho nahana ka lipotso tse latelang:

  1. Mokhoa oa ho lekanya li-module le lits'ebetso?
  2. Joang ho boloka lijana li sebetsa ebile li sebetsa hantle?
  3. U ka arabela joang liphetohong tse sa feleng tsa khoutu le mesebetsi e tsoang ho basebelisi?

Ho hlophisa lihlopha tsa Kubernetes ho leka-lekanya lisebelisoa le ts'ebetso ho ka ba phephetso mme ho hloka tsebo ea litsebi mabapi le ts'ebetso ea kahare ea Kubernetes. Mosebetsi oa kopo kapa litšebeletso tsa hau o ka fetoha letsatsi lohle kapa esita le nakong ea hora, kahoo ho leka-lekanya ho ka nkoa e le ts'ebetso e tsoelang pele.

Maemo a autoscaling a Kubernetes

Autoscaling e sebetsang e hloka khokahano lipakeng tsa maemo a mabeli:

  1. Boemo ba Pod, ho kenyeletsoa bo otlolohileng (Horizontal Pod Autoscaler, HPA) le vertical autoscaler (Vertical Pod Autoscaler, VPA). Sena ke ho eketsa lisebelisoa tse teng bakeng sa lijana tsa hau.
  2. Boemo ba lihlopha, bo laoloang ke Cluster Autoscaler (CA), e eketsang kapa e fokotsang palo ea li-node ka har'a sehlopha.

Mojule oa Horizontal Autoscaler (HPA).

Joalo ka ha lebitso le fana ka maikutlo, HPA e lekanya palo ea likopi tsa pod. Li-devops tse ngata li sebelisa CPU le moroalo oa memori e le lisosa tsa ho fetola palo ea likopi. Leha ho le joalo, hoa khoneha ho lekanya tsamaiso e thehiloeng ho metrics e tloaelehilengba bona metsoako kapa esita le metrics ea kantle.

Setšoantšo sa tšebetso ea HPA ea boemo bo holimo:

  1. HPA e lula e lekola litekanyetso tsa metric tse boletsoeng nakong ea ho kenya ka nako e sa lekanyetsoang ea metsotsoana e 30.
  2. HPA e leka ho eketsa palo ea li-module haeba ho fihleloa moeli o boletsoeng.
  3. HPA e nchafatsa palo ea likopi ka har'a taolo ea phetisetso / phetisetso.
  4. Mookameli oa ho romela / ho pheta-pheta joale o sebelisa li-module tse ling tse hlokahalang.

Maemo a mararo a Autoscaling ho Kubernetes: Mokhoa oa ho li Sebelisa ka Katleho
HPA e qala ts'ebetso ea phepelo ea mojule ha ho fihleloa moeli oa metric

Ha u sebelisa HPA, nahana ka lintlha tse latelang:

  • Nako ea kamehla ea ho hlahloba HPA ke metsotsoana e 30. E behiloe ke folakha rapameng-pod-autoscaler-sync-nako ho mookameli oa molaoli.
  • Phoso ea kamehla e amanang le eona ke 10%.
  • Kamora keketseho ea ho qetela ea palo ea li-module, HPA e lebelletse hore metrics e tla tsitsa nakong ea metsotso e meraro. Nako ena e behiloe ke folakha tshekaletseng-pod-autoscaler-upscale-tieho.
  • Kamora ho fokotseha ha palo ea li-module tsa ho qetela, HPA e emetse metsotso e mehlano hore e tsitse. Nako ena e behiloe ke folakha tshekaletseng-pod-autoscaler-downscale-tieho.
  • HPA e sebetsa hantle ka ho fetisisa ka lintho tse romelloang ho fapana le lilaoli tsa ho pheta-pheta. Horizontal autoscaling ha e tsamaellane le rolling update, e laolang ka ho toba lilaoli tsa ho ikatisa. Ka deployment, palo ea replicas e itšetlehile ka ho toba ka lintho tse tsamaisoang.

Thepa e otlolohileng ea li-pods

Vertical autoscaling (VPA) e abela ho feta (kapa ka tlase) nako ea CPU kapa mohopolo ho li-pods tse teng. E loketse bakeng sa li-pods tsa naha kapa tse se nang naha, empa haholo-holo tse reretsoeng litšebeletso tsa naha. Leha ho le joalo, u ka sebelisa VPA bakeng sa li-module tse se nang palo haeba u hloka ho fetola ka bo eona palo ea lisebelisoa tse fanoeng qalong.

VPA e boetse e arabela liketsahalong tsa OOM (ntle le mohopolo). Ho fetola nako ea CPU le memori ho hloka ho qala li-pods hape. Ha e qala bocha, VPA e hlompha tekanyetso ea kabo (tekanyetso ea kabo ea li-pods, PDB) ho netefatsa palo e fokolang e hlokahalang ea li-module.

O ka seta lisebelisoa tse fokolang le tse phahameng haholo bakeng sa mojule ka mong. Kahoo, o ka fokotsa boholo ba memori e abetsoeng ho 8 GB. Sena se na le thuso haeba li-node tsa hajoale li ke ke tsa fana ka mohopolo o fetang 8 GB ka setshelo. Litlhaloso tse qaqileng le mokhoa oa ho sebetsa li hlalositsoe ho semmuso VPA wiki.

Ntle le moo, VPA e na le ts'ebetso e khahlisang ea khothaletso (VPA Recommender). E lekola ts'ebeliso ea lisebelisoa le liketsahalo tsa OOM tsa li-module tsohle ho fana ka maikutlo a mohopolo o mocha le boleng ba nako ea CPU bo ipapisitseng le algorithm e bohlale e ipapisitseng le metrics ea nalane. Ho boetse ho na le API e nkang letsoho la pod mme e khutlisa boleng ba lisebelisoa tse khothaletsoang.

Ke habohlokoa ho hlokomela hore VPA Recommender ha e latele "moeli" oa mohloli. Sena se ka etsa hore mojule o be le lisebelisoa tse le 'ngoe ka har'a li-node. Ho molemo ho beha moeli sebakeng sa mabitso ho qoba memori e kholo kapa ts'ebeliso ea CPU.

Sekema sa ts'ebetso ea VPA ea boemo bo holimo:

  1. VPA e lula e lekola litekanyetso tsa metric tse boletsoeng nakong ea ho kenya ka nako e sa lekanyetsoang ea metsotsoana e 10.
  2. Haeba moeli o boletsoeng o fihletsoe, VPA e leka ho fetola palo e fanoeng ea lisebelisoa.
  3. VPA e nchafatsa palo ea lisebelisoa ka har'a taolo ea phepelo / phetisetso.
  4. Ha li-module li qala hape, lisebelisoa tsohle tse ncha li sebelisoa maemong a bōpiloeng.

Maemo a mararo a Autoscaling ho Kubernetes: Mokhoa oa ho li Sebelisa ka Katleho
VPA e eketsa palo e hlokahalang ea lisebelisoa

Ka kopo hopola lintlha tse latelang ha u sebelisa VPA:

  • Ho holisa ho hloka ho qalella bocha ha pod. Sena sea hlokahala ho qoba ts'ebetso e sa tsitsang ka mor'a ho etsa liphetoho. Bakeng sa ho ts'epahala, li-module li qalisoa bocha 'me li ajoa ho pholletsa le li-node ho ipapisitsoe le lisebelisoa tse sa tsoa ajoa.
  • VPA le HPA ha li so tsamaisane 'me ha li khone ho matha ka li-pods tse tšoanang. Haeba u sebelisa mekhoa ea ho lekanya ka bobeli sehlopheng se le seng, etsa bonnete ba hore litlhophiso tsa hau li thibela hore li se ke tsa sebelisoa linthong tse tšoanang.
  • Likopo tsa setshelo sa VPA bakeng sa lisebelisoa tse ipapisitseng le ts'ebeliso ea nako e fetileng le ea hajoale. Ha e behe meeli ea tšebeliso ea lisebelisoa. Ho ka 'na ha e-ba le mathata ka likopo tse sa sebetseng hantle' me li qala ho nka lisebelisoa tse eketsehileng, sena se tla lebisa ho Kubernetes ho tima pod ena.
  • VPA e ntse e le mohatong oa pele oa nts'etsopele. Itokisetse hore tsamaiso e ka ba le liphetoho tse itseng nakong e tlang e haufi. U ka bala ka mefokolo e tsebahalang и merero ea ntlafatso. Ka hona, ho na le merero ea ho kenya ts'ebetsong ts'ebetso e kopanetsoeng ea VPA le HPA, hammoho le ho tsamaisoa ha li-modules hammoho le leano la vertical autoscaling bakeng sa bona (mohlala, lengolo le khethehileng 'le hloka VPA').

Autoscaling sehlopha sa Kubernetes

Cluster Autoscaler (CA) e fetola palo ea li-node ho latela palo ea li-pods tse emetseng. Sistimi e lula e lekola li-module tse emeng - mme e eketsa boholo ba sehlopha haeba ho hlokahala lisebelisoa tse ngata le haeba sehlopha se sa fete meeli e behiloeng. CA e buisana le mofani oa litšebeletso tsa maru, e kopa li-node tse eketsehileng ho eona, kapa e lokolla tse sa sebetseng. Mofuta oa pele o fumanehang ka kakaretso oa CA o hlahisitsoe ho Kubernetes 1.8.

Sekema se phahameng sa ts'ebetso ea SA:

  1. CA e hlahloba li-module tse emetseng ka nako e sa lekanyetsoang ea metsotsoana e 10.
  2. Haeba pola e le 'ngoe kapa tse ngata li le boemong ba standby hobane sehlopha ha se na lisebelisoa tse lekaneng ho li aba, se leka ho fana ka node e le 'ngoe kapa ho feta.
  3. Ha mofani oa litšebeletso tsa leru a fana ka node e hlokahalang, e kopanya sehlopha 'me e se e loketse ho sebeletsa li-pods.
  4. Sehlophisi sa Kubernetes se aba li-pods tse ntseng li emetse node e ncha. Haeba ka mor'a sena li-module tse ling li ntse li le boemong ba ho leta, ts'ebetso e phetoa 'me li-node tse ncha li kenngoa sehlopheng.

Maemo a mararo a Autoscaling ho Kubernetes: Mokhoa oa ho li Sebelisa ka Katleho
Ho fana ka boiketsetso ba li-cluster node marung

Nahana ka lintlha tse latelang ha u sebelisa CA:

  • CA e netefatsa hore li-pods tsohle ka har'a sehlopha li na le sebaka sa ho sebetsa, ho sa tsotelehe mojaro oa CPU. E boetse e leka ho netefatsa hore ha ho na li-node tse sa hlokahaleng sehlopheng.
  • CA e ngolisa tlhoko ea ho hola kamora metsotsoana e ka bang 30.
  • Hang ha node e se e sa hlokehe, CA e lula e emetse metsotso e 10 pele e fokotsa tsamaiso.
  • Sistimi ea autoscaling e na le mohopolo oa li-expander. Tsena ke maano a fapaneng a ho khetha sehlopha sa li-node tseo ho tla kenyelletsoa li-node tse ncha ho tsona.
  • Sebelisa khetho ka boikarabelo cluster-autoscaler.kubernetes.io/safe-to-evict (nnete). Haeba u kenya li-pods tse ngata, kapa haeba tse ngata tsa tsona li hasane hohle libakeng tsohle, u tla lahleheloa haholo ke bokhoni ba ho fokotsa sehlopha.
  • Sebelisa PodDisruptionBudgetsho thibela li-pods hore li se hlakoloe, tse ka etsang hore likarolo tsa kopo ea hau li robehe ka botlalo.

Kamoo li-autoscaler tsa Kubernetes li sebelisanang kateng

Bakeng sa kutloano e phethahetseng, autoscaling e lokela ho sebelisoa maemong a mabeli a pod (HPA/VPA) le boemo ba sehlopha. Li sebelisana ka mokhoa o bonolo:

  1. Li-HPA kapa li-VPA li ntlafatsa li-pod replicas kapa lisebelisoa tse abetsoeng li-pods tse seng li ntse li le teng.
  2. Haeba ho se na li-node tse lekaneng bakeng sa sekhahla se reriloeng, CA e hlokomela boteng ba li-pods sebakeng sa ho leta.
  3. CA e fana ka li-node tse ncha.
  4. Li-module li abeloa li-node tse ncha.

Maemo a mararo a Autoscaling ho Kubernetes: Mokhoa oa ho li Sebelisa ka Katleho
Sistimi e kopanetsoeng ea Kubernetes ho tsoa

Liphoso tse tloaelehileng ho Kubernetes autoscaling

Ho na le mathata a 'maloa a tloaelehileng ao devops a kenang ho ona ha a leka ho kenya tšebetsong autoscaling.

HPA le VPA li itšetlehile ka metrics le lintlha tse ling tsa histori. Haeba lisebelisoa tse sa lekaneng li ajoa, li-module li tla fokotsoa 'me li ke ke tsa khona ho hlahisa metrics. Tabeng ena, autoscaling e ke ke ea etsahala.

Ts'ebetso ea ho lekanya ka boeona e nka nako. Re batla hore li-module le lihlopha li hole kapele - pele basebelisi ba hlokomela mathata kapa liphoso. Ka hona, nako e tloaelehileng ea ho eketsa li-pods le sehlopha se lokela ho nkoa.

Boemo bo loketseng - metsotso e 4:

  1. metsotsoana e 30. Nchafatsa metrics e reriloeng: metsotsoana e 30−60.
  2. metsotsoana e 30. HPA e hlahloba litekanyetso tsa metric: metsotsoana e 30.
  3. Ka tlase ho metsotsoana e 2. Li-pods lia bōptjoa 'me li ea boemong ba ho leta: motsotsoana o le mong.
  4. Ka tlase ho metsotsoana e 2. CA e bona li-module tse emetseng mme e romela mehala ho li-node tsa phepelo: motsotso o le mong.
  5. Metsotso e 3. Mofani oa maru o fana ka li-node. Li-K8 li ema ho fihlela li lokile: ho fihlela metsotso e 10 (ho itšetlehile ka lintlha tse 'maloa).

Boemo bo bobe ka ho fetesisa (ka sebele) - metsotso e 12:

  1. metsotsoana e 30. Ntlafatsa litekanyetso tsa sepheo.
  2. metsotsoana e 30. HPA e hlahloba litekanyetso tsa metric.
  3. Ka tlase ho metsotsoana e 2. Li-pods li entsoe ebe li kena boemong ba standby.
  4. Ka tlase ho metsotsoana e 2. CA e bona li-module tse emetseng mme e etsa mehala ho fana ka li-node.
  5. Metsotso e 10. Mofani oa maru o fana ka li-node. Li-K8 li ema ho fihlela li lokile. Nako ea ho leta e ipapisitse le lintlha tse 'maloa, joalo ka ho lieha ha barekisi, ho lieha ha OS, le lisebelisoa tsa tšehetso.

Se ke oa ferekanya mekhoa ea ho eketsa bafani ba maru le CA ea rona. Ea morao-rao e sebetsa ka har'a sehlopha sa Kubernetes, ha enjene ea leru e sebetsa ka mokhoa oa ho fana ka li-node. Ha e tsebe se etsahalang ka li-pods kapa kopo ea hau. Litsamaiso tsena li sebetsa ka ho tšoana.

Mokhoa oa ho laola sekhahla ho Kubernetes

  1. Kubernetes ke sesebelisoa sa taolo ea lisebelisoa le sesebelisoa sa 'mino oa liletsa. Ts'ebetso ea ho laola li-pods le lisebelisoa tsa lihlopha ke mohato oa bohlokoahali oa ho tseba Kubernetes.
  2. Utloisisa mabaka a ho hlaka ha pod ho nahanela HPA le VPA.
  3. CA e lokela ho sebelisoa ha feela o na le kutloisiso e ntle ea litlhoko tsa li-pods le lijana tsa hau.
  4. Ho hlophisa sehlopha hantle, o hloka ho utloisisa hore na litsamaiso tse fapaneng tsa sekala li sebetsa hammoho joang.
  5. Ha o hakanya nako ea ho lekanya, hopola maemo a mabe ka ho fetesisa le a matle ka ho fetesisa.

Source: www.habr.com

Eketsa ka tlhaloso