Sê Asta Xweseriya Xweseriya Kubernetes: Meriv Çawa Wan Bi bandor bikar bîne

Sê Asta Xweseriya Xweseriya Kubernetes: Meriv Çawa Wan Bi bandor bikar bîne
Ji bo ku hûn Kubernetes bi tevahî serdest bibin, hûn hewce ne ku awayên cûda zanibin ku hûn çavkaniyên komê pîvandin: ji hêla li gorî pêşdebirên pergalê, ev yek ji karên sereke yên Kubernetes e. Me li ser mekanîzmayên veguheztina mezinahiya komê û pîvandina otomatîkî ya horizontî û vertîkal, û her weha pêşniyarên li ser çawaniya karanîna wan bi bandor çawanek ast bilind pêşkêşî kir.

Tişt Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, and Vertical Pod Autoscaler ji hêla tîmê ku otoscaling tê de bicîh kiriye ve hatî wergerandin Kubernetes aaS ji Mail.ru.

Çima girîng e ku meriv li ser pîvanê bifikire

Kubernetes - amûrek ji bo rêveberiya çavkaniyê û orkestrasyonê. Bê guman, xweş e ku meriv bi taybetmendiyên xweş ên danîn, çavdêrîkirin û birêvebirina podan ve mijûl bibe (pod komek konteyneran e ku di bersiva daxwazekê de têne destpêkirin).

Lêbelê, divê hûn li ser pirsên jêrîn jî bifikirin:

  1. Meriv çawa modul û sepanan pîvan dike?
  2. Meriv çawa konteyneran xebitî û bikêr bihêle?
  3. Meriv çawa bersivê dide guhertinên domdar ên kod û bargiraniyên bikarhêneran?

Veavakirina komên Kubernetes ji bo hevsengkirina çavkaniyan û performansê dikare dijwar be û hewceyê zanîna pispor a karên hundurîn ên Kubernetes hewce dike. Karê serîlêdan an karûbarên we dikare di nav rojê de an jî di nav saetekê de biguhere, ji ber vê yekê hevsengkirin wekî pêvajoyek domdar çêtirîn tête fikirîn.

Astên otoscaling Kubernetes

Xweseriya bi bandor bi hevrêziya di navbera du astan de hewce dike:

  1. Asta Pod, di nav de horîzontal (Horizontal Pod Autoscaler, HPA) û otoscaler a vertîkal (Vertical Pod Autoscaler, VPA). Ev ji bo konteynerên we çavkaniyên berdest mezin dike.
  2. Asta komê, ku ji hêla Cluster Autoscaler (CA) ve tê rêvebirin, ku hejmara girêkên di nav komê de zêde dike an kêm dike.

Modula Horizontal Autoscaler (HPA).

Wekî ku ji navê xwe diyar dike, HPA hejmara kopiyên pod pîvan dike. Piraniya devops CPU û barkirina bîranînê wekî teşqele ji bo guheztina hejmara kopiyan bikar tînin. Lêbelê, gengaz e ku pergalê li ser bingehê pîvandinê bike metrîkên xwerûwan combinations an jî jî metrîkên derve.

Diagrama xebitandina HPA ya asta bilind:

  1. HPA bi domdarî nirxên metrîkî yên ku di dema sazkirinê de hatine destnîşan kirin di navberek xwerû ya 30 çirkeyan de kontrol dike.
  2. HPA hewl dide ku hejmara modulan zêde bike ger ku sînorê diyarkirî bigihîje.
  3. HPA hejmara kopiyan di nav kontrolkera veqetandin/veberdanê de nûve dike.
  4. Dûv re kontrolkera veqetandin/veberdanê her modulên pêvek ên pêwîst bi cîh dike.

Sê Asta Xweseriya Xweseriya Kubernetes: Meriv Çawa Wan Bi bandor bikar bîne
HPA gava ku bendek metrîk bigihîje dest bi pêvajoya bicîhkirina modulê dike

Dema ku HPA bikar bînin, jêrîn bifikirin:

  • Navbera kontrolkirina HPA ya xwerû 30 saniye ye. Ew bi alayê ve hatî danîn horizontal-pod-autoscaler-senkronîze-dem di rêveberê kontrolker de.
  • Çewtiya nisbî ya xwerû %10 e.
  • Piştî zêdebûna paşîn a hejmara modulan, HPA li bendê ye ku metrîk di nav sê hûrdeman de aram bibe. Ev navber ji aliyê ala ve hatiye danîn horizontal-pod-autoscaler-upscale-dereng.
  • Piştî kêmkirina paşîn a hejmara modulan, HPA pênc hûrdeman li bendê dimîne ku aram bibe. Ev navber ji aliyê ala ve hatiye danîn horizontal-pod-autoscaler-downscale-dereng.
  • HPA ji bilî kontrolkerên dubarekirinê bi hêmanên bicîhkirinê re çêtirîn dixebite. Pîvana otomatîkî ya asoyî bi nûvekirina gerokê re, ku rasterast kontrolkerên replikasyonê manîpule dike, naguncîne. Bi bicihkirinê re, hejmara kopiyan rasterast bi tiştên vekêşanê ve girêdayî ye.

Vebijandina otomatîkî ya potan

Veguheztina otomatîkî ya vertîkal (VPA) zêdetir (an kêmtir) dem an bîranîna CPU-yê ji podên heyî re vediqetîne. Ji bo podên dewletparêz an bêdewlet maqûl e, lê bi giranî ji bo karûbarên dewletparêz têne armanc kirin. Lêbelê, hûn dikarin VPA-yê ji bo modulên bêdewlet jî bikar bînin heke hûn hewce ne ku bixweber mîqdara çavkaniyên veqetandî yên destpêkê rast bikin.

VPA jî bersivê dide bûyerên OOM (ji bîranînê). Guhertina dem û bîranîna CPU hewce dike ku pod ji nû ve dest pê bike. Dema ku ji nû ve dest pê kir, VPA ji budceya veqetandinê rêz digire (budceya belavkirina pods, PDB) ji bo garantiya herî kêm hejmara modulên pêwîst.

Hûn dikarin ji bo her modulê çavkaniyên herî kêm û herî zêde saz bikin. Bi vî rengî, hûn dikarin mîqdara herî zêde ya bîranîna veqetandî bi 8 GB sînordar bikin. Ev bikêr e ger girêkên heyî bê guman nikanin ji 8 GB bîra ji her konteynerê re veqetînin. Taybetmendiyên berfireh û mekanîzmaya xebitandinê di nav de têne diyar kirin fermî VPA wiki.

Wekî din, VPA fonksiyonek pêşniyarek balkêş heye (Pêşniyar VPA). Ew karanîna çavkaniyê û bûyerên OOM-ê yên hemî modulan dişopîne da ku nirxên nû yên bîranîn û dema CPU-yê li ser bingeha algorîtmayek aqilmend ku li ser bingeha metrîkên dîrokî ve girêdayî ye pêşniyar bike. Di heman demê de API-yek jî heye ku destekek pod digire û nirxên çavkaniya pêşniyarkirî vedigerîne.

Hêjayî gotinê ye ku Pêşniyarê VPA çavkaniyê "sînor" naşopîne. Ev dibe ku bibe sedem ku modul çavkaniyan di nav girêkan de yekdestdar bike. Çêtir e ku meriv di asta cîhê navan de sînor destnîşan bike da ku ji bîranîna mezin an karanîna CPU-yê dûr bisekine.

Plana xebata VPA-a asta bilind:

  1. VPA bi domdarî nirxên metrîkî yên ku di dema sazkirinê de hatine destnîşan kirin di navberek xwerû ya 10 çirkeyan de kontrol dike.
  2. Ger sînorê diyarkirî bigihîje, VPA hewl dide ku mîqdara veqetandî ya çavkaniyan biguhezîne.
  3. VPA hejmara çavkaniyan di hundurê kontrolkerê veguheztinê / dubarekirinê de nûve dike.
  4. Dema ku modul ji nû ve têne destpêkirin, hemî çavkaniyên nû li ser mînakên hatine afirandin têne sepandin.

Sê Asta Xweseriya Xweseriya Kubernetes: Meriv Çawa Wan Bi bandor bikar bîne
VPA mîqdara pêdivî ya çavkaniyan zêde dike

Ji kerema xwe gava ku VPA bikar tînin van xalên jêrîn ji bîr mekin:

  • Scaling ji nû ve destpêkirina mecbûrî ya pod hewce dike. Ev pêdivî ye ku ji operasyona bêîstîqrar piştî guhertinan dûr bixin. Ji bo pêbaweriyê, modul li ser bingeha çavkaniyên nû hatine veqetandin ji nû ve têne destpêkirin û li ser nokan têne belav kirin.
  • VPA û HPA hîna bi hev re ne lihevhatî ne û nekarin li ser heman podan bimeşin. Ger hûn her du mekanîzmayên pîvandinê di heman komê de bikar tînin, pê ewle bin ku mîhengên we pêşî li çalakkirina wan li ser heman tiştan digirin.
  • VPA daxwazên konteynerê ji bo çavkaniyan tenê li ser bingeha karanîna paşîn û heyî ye. Ew sînorên karanîna çavkaniyê destnîşan nake. Dibe ku pirsgirêk bi serîlêdanan re hebin ku rast naxebitin û dest bi girtina her û bêtir çavkaniyan dikin, ev ê bibe sedem ku Kubernetes vê podê qut bike.
  • VPA hîn di qonaxek destpêkê ya pêşveçûnê de ye. Amade bin ku dibe ku di demek nêzîk de pergal bikeve hin guhertinan. Hûn dikarin li ser bixwînin sînorên naskirî и planên pêşveçûnê. Ji ber vê yekê, plan hene ku operasyona hevpar a VPA û HPA-yê bicîh bikin, û hem jî bi cîhkirina modulan re digel polîtîkayek otoscaling vertîkal ji bo wan (mînakî, nîşanek taybetî 'pêdivî VPA' ye).

Xweserkirina komek Kubernetes

Cluster Autoscaler (CA) hejmara girêkan li ser bingeha jimara pêlên li bendê diguhezîne. Pergal bi awayekî periyodîk ji bo modulên li bendê kontrol dike - û heke bêtir çavkaniyan hewce bike û heke kom ji sînorên destnîşankirî derbas nebe mezinahiya komê zêde dike. CA bi dabînkerê karûbarê cloudê re têkilî datîne, girêkên zêde jê daxwaz dike, an yên bêkar berdide. Yekem guhertoya gelemperî ya CA-yê di Kubernetes 1.8 de hate destnîşan kirin.

Plana asta bilind a operasyona SA:

  1. CA modulên li bendê di navberek xwerû ya 10 çirkeyan de kontrol dike.
  2. Ger yek an jî çend pod di rewşek standby de bin ji ber ku komê têra çavkaniyên berdest tune ku wan veqetîne, ew hewl dide ku yek an çend girêkên din peyda bike.
  3. Gava ku peydakerê karûbarê ewr girêka pêwîst veqetîne, ew tevlî komê dibe û amade ye ku ji bo pods xizmet bike.
  4. Plansazkerê Kubernetes podên li bendê li girêka nû belav dike. Ger piştî vê yekê hin modul hîn jî di rewşek li bendê de bimînin, pêvajo tê dubare kirin û girêkên nû li komê têne zêdekirin.

Sê Asta Xweseriya Xweseriya Kubernetes: Meriv Çawa Wan Bi bandor bikar bîne
Dabînkirina otomatîkî ya girêkên komê di ewr de

Dema ku CA-ê bikar bînin, jêrîn bifikirin:

  • CA piştrast dike ku hemî podên di komê de cîhê xebitandinê heye, bêyî barkirina CPU. Di heman demê de ew hewl dide ku pê ewle bibe ku di komê de girêkên nehewce tune ne.
  • CA piştî nêzîkê 30 çirkeyan hewcedariya pîvandinê tomar dike.
  • Dema ku nodek êdî hewce nebe, CA-yê xwerû 10 hûrdeman li bendê dimîne berî ku pergalê bihejîne.
  • Pergala otoscaling têgeha berfirehkeran heye. Vana stratejiyên cûda ne ji bo hilbijartina komek girêkan ku dê girêkên nû lê zêde bibin.
  • Vebijêrk bi berpirsiyarî bikar bînin cluster-autoscaler.kubernetes.io/safe-to-evict (rast). Ger hûn gelek potan saz bikin, an heke gelek ji wan li hemî girêkan belav bibin, hûn ê bi giranî şiyana mezinkirina komê winda bikin.
  • Bikar bînin PodDisruptionBudgetsji bo pêşîgirtina jêbirina pods, ku dibe sedema ku beşên serîlêdana we bi tevahî bişkînin.

Çawa Kubernetes autoscalers bi hevûdu re têkilî dikin

Ji bo ahengek bêkêmasî, divê pîvandina otomatîkî hem di asta pod (HPA/VPA) û hem jî di asta komê de were sepandin. Ew bi hevûdu re bi hêsanî re têkilî dikin:

  1. HPA an VPA kopiyên pod an çavkaniyên ku ji podên heyî re hatine veqetandin nûve dikin.
  2. Ger ji bo pîvandina plansazkirî girêk têr nebin, CA hebûna potan di rewşek li bendê de dibîne.
  3. CA girêkên nû vediqetîne.
  4. Modul li girêkên nû têne belav kirin.

Sê Asta Xweseriya Xweseriya Kubernetes: Meriv Çawa Wan Bi bandor bikar bîne
Pergala pîvanê ya Kubernetes a hevkar

Çewtiyên hevpar ên di pîvandina otomatîkî ya Kubernetes de

Gelek pirsgirêkên hevpar hene ku dema ku hewl didin ku pîvandina otomatîkî bicîh bikin dikevin nav wan.

HPA û VPA bi metrics û hin daneyên dîrokî ve girêdayî ye. Ger çavkaniyên têra xwe neyên veqetandin, dê modul kêm bibin û dê nikaribin metrîkan çêbikin. Di vê rewşê de, autoscaling dê qet nebe.

Operasyona pîvandinê bixwe wextê hesas e. Em dixwazin ku modul û kom bi lez mezin bibin - berî ku bikarhêner pirsgirêk an têkçûn bibînin. Ji ber vê yekê, dema pîvandina navînî ya ji bo pod û komê divê were hesibandin.

Senaryoya îdeal - 4 hûrdem:

  1. 30 seconds. Metrîkên armancê nûve bikin: 30−60 çirke.
  2. 30 seconds. HPA nirxên metrîkê kontrol dike: 30 çirke.
  3. Kêmtir ji 2 seconds. Pod têne afirandin û diçin rewşa bendê: 1 çirke.
  4. Kêmtir ji 2 seconds. CA modulên li bendê dibîne û bangan ji girêkên dabînkirinê re dişîne: 1 çirke.
  5. 3 deqîqe. Pêşkêşvanê ewr girêkan veqetîne. K8s li bendê ye heya ku ew amade ne: heya 10 hûrdeman (li gorî çend faktoran ve girêdayî ye).

Senaryoya herî xirab (realîsttir) - 12 hûrdem:

  1. 30 seconds. Metrîkên armancê nûve bikin.
  2. 30 seconds. HPA nirxên metrîk kontrol dike.
  3. Kêmtir ji 2 seconds. Pod têne çêkirin û dikevin rewşa standby.
  4. Kêmtir ji 2 seconds. CA modulên li bendê dibîne û banga peydakirina girêkan dike.
  5. 10 deqîqe. Pêşkêşvanê ewr girêkan veqetîne. K8s li benda amade ne. Dema bendê bi çend faktoran ve girêdayî ye, wekî derengiya firoşkar, derengiya OS, û amûrên piştgirî.

Mekanîzmayên pîvandinê yên pêşkêşkerên ewr bi CA-ya me re tevlihev nekin. Ya paşîn di hundurê komek Kubernetes de dimeşe, dema ku motora peydakerê ewr li ser bingehek belavkirina nodê dixebite. Ew nizane ka çi bi pods an serîlêdana we diqewime. Ev sîstem bi awayekî paralel dixebitin.

Meriv çawa di Kubernetes de pîvanê birêve dibe

  1. Kubernetes amûrek rêveberiya çavkaniyê û orkestrasyonê ye. Operasyonên ji bo birêvebirina pod û çavkaniyên komê di serweriya Kubernetes de qonaxek bingehîn e.
  2. Mantiqa mezinbûna pod li gorî HPA û VPA-yê fêm bikin.
  3. Pêdivî ye ku CA tenê were bikar anîn heke hûn têgihîştinek baş a hewcedariyên pod û konteynerên xwe hebin.
  4. Ji bo ku hûn komek bi rengek çêtirîn mîheng bikin, hûn hewce ne ku fêm bikin ka pergalên pîvandinê yên cihêreng bi hev re çawa dixebitin.
  5. Dema ku dema pîvandinê texmîn dikin, senaryoyên rewşa herî xirab û çêtirîn li ber çavan bigirin.

Source: www.habr.com

Add a comment