Peb theem ntawm Autoscaling hauv Kubernetes: Yuav Siv Lawv Li Cas

Peb theem ntawm Autoscaling hauv Kubernetes: Yuav Siv Lawv Li Cas
Txhawm rau kom ua tiav Kubernetes, koj yuav tsum paub ntau txoj hauv kev los ntsuas cov peev txheej pawg: los ntawm raws li qhov system developers, qhov no yog ib lub luag haujlwm tseem ceeb ntawm Kubernetes. Peb tau muab cov ntsiab lus siab ntawm kab rov tav thiab ntsug autoscaling thiab pawg resizing mechanisms, nrog rau cov lus pom zoo yuav siv lawv li cas.

Kab lus Kubernetes Autoscaling 101: Cluster Autoscaler, Kab rov tav Autoscaler, thiab Vertical Pod Autoscaler txhais los ntawm pab neeg uas siv autoscaling nyob rau hauv Kubernetes aaS los ntawm Mail.ru.

Yog vim li cas nws tseem ceeb heev uas yuav tau xav txog scaling

Kubernetes - ib lub cuab yeej rau kev tswj cov peev txheej thiab orchestration. Tau kawg, nws yog qhov zoo rau tinker nrog cov yam ntxwv txias ntawm kev xa tawm, saib xyuas, thiab tswj cov pods (ib lub plhaub taum yog ib pawg ntawm cov thawv uas tau tsim los teb rau qhov kev thov).

Txawm li cas los xij, koj yuav tsum xav txog cov lus nug hauv qab no:

  1. Yuav ua li cas ntsuas modules thiab daim ntawv thov?
  2. Yuav ua li cas khaws cov ntim khoom ua haujlwm thiab ua haujlwm tau zoo?
  3. Yuav ua li cas teb rau cov kev hloov pauv tas li hauv cov lej thiab cov haujlwm ua haujlwm los ntawm cov neeg siv?

Kev teeb tsa Kubernetes pawg kom sib npaug cov peev txheej thiab kev ua haujlwm tuaj yeem nyuaj thiab xav tau cov kws tshaj lij kev paub txog kev ua haujlwm sab hauv ntawm Kubernetes. Kev ua haujlwm ntawm koj daim ntawv thov lossis cov kev pabcuam tuaj yeem hloov pauv txhua hnub lossis txawm tias dhau ib teev, yog li kev sib npaug yog qhov zoo tshaj plaws xav tias yog txheej txheem txuas ntxiv.

Kubernetes autoscaling qib

Zoo autoscaling yuav tsum muaj kev sib koom tes ntawm ob theem:

  1. Pod qib, suav nrog kab rov tav (Horizontal Pod Autoscaler, HPA) thiab ntsug autoscaler (Vertical Pod Autoscaler, VPA). Qhov no yog ntsuas cov peev txheej muaj rau koj cov ntim khoom.
  2. Cluster theem, uas yog tswj los ntawm Cluster Autoscaler (CA), uas nce los yog txo tus naj npawb ntawm cov nodes hauv pawg.

Kab rov tav Autoscaler (HPA) module

Raws li lub npe qhia, HPA ntsuas tus naj npawb ntawm cov pod replicas. Feem ntau cov devops siv CPU thiab lub cim xeeb thauj khoom raws li qhov ua rau hloov pauv tus lej. Txawm li cas los xij, nws tuaj yeem ntsuas qhov system raws li kev cai metrics, lawv kev sib xyaws los sis txawm kev ntsuas sab nraud.

High-level HPA daim duab ua haujlwm:

  1. HPA tsis tu ncua xyuas qhov ntsuas qhov ntsuas tau teev tseg thaum lub sijhawm teeb tsa ntawm lub sijhawm ua ntej ntawm 30 vib nas this.
  2. HPA sim ua kom tus lej ntawm cov modules yog tias qhov chaw pib mus txog.
  3. HPA hloov kho tus lej ntawm cov khoom siv rov ua dua nyob rau hauv kev xa tawm / rov ua dua tshiab.
  4. Kev xa tawm / replication maub los ces deploys tej yam tsim nyog ntxiv modules.

Peb theem ntawm Autoscaling hauv Kubernetes: Yuav Siv Lawv Li Cas
HPA pib cov txheej txheem xa tawm module thaum mus txog qhov ntsuas qhov ntsuas

Thaum siv HPA, xav txog cov hauv qab no:

  • Lub sijhawm HPA kuaj lub sijhawm yog 30 vib nas this. Nws yog teem los ntawm tus chij kab rov tav-pod-autoscaler-sync-lub sijhawm nyob rau hauv tus tswj tswj.
  • Lub neej ntawd txheeb ze yuam kev yog 10%.
  • Tom qab qhov kawg ntawm cov modules nce, HPA cia siab tias cov metrics yuav ruaj khov nyob rau hauv peb feeb. Lub caij no yog teem los ntawm tus chij kab rov tav-pod-autoscaler-upscale-delay.
  • Tom qab qhov kawg txo tus naj npawb ntawm modules, HPA tos tsib feeb kom ruaj khov. Lub caij no yog teem los ntawm tus chij kab rov tav-pod-autoscaler-downscale-delay.
  • HPA ua haujlwm zoo tshaj plaws nrog cov khoom xa tawm es tsis yog cov tswj kev rov ua dua. Kab rov tav autoscaling yog incompatible nrog dov hloov tshiab, uas ncaj qha manipulates replication controllers. Nrog rau kev xa tawm, tus naj npawb ntawm replicas nyob ncaj qha rau ntawm cov khoom xa tawm.

Vertical autoscaling ntawm pods

Vertical autoscaling (VPA) faib ntau (lossis tsawg) CPU sijhawm lossis nco rau cov pods uas twb muaj lawm. Haum rau lub xeev lossis tsis muaj lub xeev cov pods, tab sis feem ntau yog npaj rau cov kev pabcuam hauv xeev. Txawm li cas los xij, koj tseem tuaj yeem siv VPA rau cov qauv tsis muaj lub xeev yog tias koj xav tau hloov kho tus nqi pib faib cov peev txheej.

VPA kuj teb rau OOM (tsis nco qab) cov xwm txheej. Hloov lub sijhawm CPU thiab lub cim xeeb yuav tsum rov pib dua lub pods. Thaum rov pib dua, VPA hwm cov nyiaj faib nyiaj (pods distribution budget, PDB) kom lav qhov tsawg kawg nkaus uas yuav tsum tau muaj cov modules.

Koj tuaj yeem teeb tsa qhov tsawg kawg nkaus thiab qhov siab tshaj plaws rau txhua qhov module. Yog li, koj tuaj yeem txwv qhov siab tshaj plaws ntawm kev faib lub cim xeeb rau 8 GB. Qhov no muaj txiaj ntsig yog tias cov nodes tam sim no tsis tuaj yeem faib ntau dua 8 GB ntawm lub cim xeeb rau ib lub thawv. Cov ncauj lus kom ntxaws specifications thiab kev khiav hauj lwm mechanism yog piav nyob rau hauv official VPA wiki.

Tsis tas li ntawd, VPA muaj cov lus pom zoo txaus siab (VPA Recommender). Nws saib xyuas kev siv peev txheej thiab OOM cov xwm txheej ntawm txhua lub modules los qhia txog lub cim xeeb tshiab thiab CPU lub sijhawm muaj nuj nqis raws li kev txawj ntse algorithm raws li keeb kwm ntsuas. Kuj tseem muaj ib qho API uas siv lub plhaub taum thiab xa rov qab cov peev txheej pom zoo.

Nws tsim nyog sau cia tias VPA Cov Neeg Pom Zoo tsis taug qab cov peev txheej "tso cai". Qhov no yuav ua rau lub module monopolizing cov peev txheej hauv cov nodes. Nws yog qhov zoo dua los teeb tsa qhov txwv ntawm qib namespace kom tsis txhob nco lossis CPU noj.

Cov txheej txheem ua haujlwm siab VPA:

  1. VPA tsis tu ncua xyuas qhov ntsuas qhov ntsuas tau teev tseg thaum lub sijhawm teeb tsa ntawm lub sijhawm ua ntej ntawm 10 vib nas this.
  2. Yog hais tias qhov chaw pib mus txog, VPA sim hloov cov peev txheej faib.
  3. VPA hloov kho cov naj npawb ntawm cov peev txheej hauv kev xa tawm / rov ua dua tshiab.
  4. Thaum cov modules rov pib dua, tag nrho cov peev txheej tshiab raug siv rau cov qauv tsim.

Peb theem ntawm Autoscaling hauv Kubernetes: Yuav Siv Lawv Li Cas
VPA ntxiv cov peev txheej uas xav tau

Thov nco ntsoov cov ntsiab lus hauv qab no thaum siv VPA:

  • Scaling yuav tsum tau rov pib dua ntawm lub pod. Qhov no yog qhov tsim nyog kom tsis txhob ua haujlwm tsis ruaj khov tom qab hloov pauv. Rau kev ntseeg tau, modules tau rov pib dua thiab faib thoob cov nodes raws li kev faib cov peev txheej tshiab.
  • VPA thiab HPA tseem tsis tau sib haum thiab tsis tuaj yeem khiav ntawm tib lub pods. Yog tias koj siv ob qho tib si scaling mechanisms hauv tib pawg, nco ntsoov tias koj qhov chaw tiv thaiv lawv los ntawm kev qhib rau tib yam khoom.
  • VPA tunes thawv thov rau cov peev txheej raws li kev siv yav dhau los thiab tam sim no. Nws tsis teev cov kev txwv kev siv. Tej zaum yuav muaj teeb meem nrog cov ntawv thov tsis ua haujlwm kom raug thiab pib siv ntau thiab ntau cov peev txheej, qhov no yuav ua rau Kubernetes tua lub pod no.
  • VPA tseem nyob rau theem pib ntawm kev txhim kho. Npaj siab tias lub kaw lus yuav raug hloov pauv rau yav tom ntej. Koj tuaj yeem nyeem txog paub cov kev txwv ΠΈ kev npaj kho mob. Yog li, muaj cov phiaj xwm los siv kev sib koom ua haujlwm ntawm VPA thiab HPA, nrog rau kev xa tawm cov qauv nrog rau txoj cai ntsug autoscaling rau lawv (piv txwv li, daim ntawv tshwj xeeb 'yuav tsum tau VPA').

Autoscaling ib Kubernetes pawg

Cluster Autoscaler (CA) hloov cov naj npawb ntawm cov nodes raws li tus naj npawb ntawm tos pods. Lub kaw lus tshawb xyuas cov modules tsis tu ncua - thiab ua kom cov pawg loj dua yog tias xav tau cov peev txheej ntxiv thiab yog tias pawg tsis tshaj qhov kev txwv. Lub CA sib txuas lus nrog cov chaw muab kev pabcuam huab, thov cov nodes ntxiv los ntawm nws, lossis tso tawm qhov tsis ua haujlwm. Thawj feem ntau muaj version ntawm CA tau qhia hauv Kubernetes 1.8.

Cov txheej txheem siab ntawm SA kev ua haujlwm:

  1. CA kuaj xyuas cov modules tseem nyob ntawm lub sijhawm ua ntej ntawm 10 vib nas this.
  2. Yog hais tias ib los yog ntau lub pods nyob rau hauv ib tug standby lub xeev vim hais tias cov pawg tsis muaj txaus muaj peev xwm los faib lawv, nws sim muab ib los yog ntau tshaj nodes ntxiv.
  3. Thaum tus neeg muab kev pabcuam huab faib cov node xav tau, nws koom nrog pawg thiab npaj ua haujlwm rau cov pods.
  4. Kubernetes tus teem sijhawm faib cov pods tseem tos rau cov node tshiab. Yog tias tom qab qhov no qee cov modules tseem nyob hauv lub xeev tos, cov txheej txheem rov ua dua thiab cov nodes tshiab ntxiv rau pawg.

Peb theem ntawm Autoscaling hauv Kubernetes: Yuav Siv Lawv Li Cas
Tsis siv neeg muab cov pawg nodes hauv huab

Xav txog cov hauv qab no thaum siv CA:

  • CA xyuas kom meej tias tag nrho cov pods hauv pawg muaj chaw khiav, tsis hais CPU load. Nws kuj tseem sim xyuas kom meej tias tsis muaj cov nodes tsis tsim nyog hauv pawg.
  • CA sau npe qhov yuav tsum tau ntsuas tom qab kwv yees li 30 vib nas this.
  • Thaum ib lub node tsis xav tau lawm, CA defaults tos 10 feeb ua ntej scaling tawm lub system.
  • Lub autoscaling system muaj lub tswv yim ntawm expanders. Cov no yog cov tswv yim sib txawv rau kev xaiv ib pab pawg ntawm cov nodes tshiab uas yuav ntxiv.
  • Siv qhov kev xaiv ua lub luag haujlwm cluster-autoscaler.kubernetes.io/safe-to-evict (true). Yog tias koj nruab ntau lub pods, lossis yog tias ntau ntawm lawv tau tawg thoob plaws txhua qhov ntawm cov nodes, koj yuav plam qhov peev xwm los ntsuas cov pawg.
  • Siv PodDisruptionBudgetstxhawm rau tiv thaiv cov pods los ntawm kev tshem tawm, uas tuaj yeem ua rau qee qhov ntawm koj daim ntawv thov tawg tag.

Yuav ua li cas Kubernetes autoscalers cuam tshuam nrog ib leeg

Txhawm rau kom muaj kev sib haum xeeb zoo, autoscaling yuav tsum siv rau ntawm ob theem pod (HPA / VPA) thiab pawg pawg. Lawv cuam tshuam nrog ib leeg yooj yim:

  1. HPAs lossis VPAs hloov pauv cov ntaub ntawv hloov pauv lossis cov peev txheej faib rau cov pods uas twb muaj lawm.
  2. Yog tias tsis muaj cov nodes txaus rau qhov kev npaj scaling, CA pom tias muaj cov pods nyob rau hauv lub xeev tos.
  3. Lub CA faib cov nodes tshiab.
  4. Modules raug faib rau cov nodes tshiab.

Peb theem ntawm Autoscaling hauv Kubernetes: Yuav Siv Lawv Li Cas
Kev sib koom tes Kubernetes scale-out system

Feem ntau yuam kev hauv Kubernetes autoscaling

Muaj ntau ntau yam teeb meem uas devops khiav mus rau thaum sim siv autoscaling.

HPA thiab VPA nyob ntawm kev ntsuas thiab qee cov ntaub ntawv keeb kwm. Yog tias tsis muaj peev txheej txaus, cov modules yuav raug txo kom tsawg thiab yuav tsis muaj peev xwm tsim cov metrics. Hauv qhov no, autoscaling yuav tsis tshwm sim.

Kev ua haujlwm scaling nws tus kheej yog lub sijhawm rhiab heev. Peb xav kom cov modules thiab pawg ua kom nrawm nrawm - ua ntej cov neeg siv pom muaj teeb meem lossis tsis ua haujlwm. Yog li ntawd, qhov nruab nrab lub sij hawm rau scaling pods thiab pawg yuav tsum tau coj mus rau hauv tus account.

Qhov zoo tshaj plaws scenario - 4 feeb:

  1. 30 vib nas this. Hloov cov phiaj xwm ntsuas: 30-60 vib nas this.
  2. 30 vib nas this. HPA tshawb xyuas qhov ntsuas qhov ntsuas: 30 vib nas this.
  3. Tsawg dua 2 vib nas this. Pods yog tsim thiab mus rau hauv lub xeev tos: 1 thib ob.
  4. Tsawg dua 2 vib nas this. CA pom cov modules tos thiab xa xov mus rau qhov chaw muab: 1 thib ob.
  5. 3 feeb. Cov huab muab faib cov nodes. K8s tos kom txog thaum lawv npaj tau: mus txog 10 feeb (nyob ntawm ntau yam).

Cov xwm txheej phem tshaj (ntau qhov tseeb) scenario - 12 feeb:

  1. 30 vib nas this. Hloov cov phiaj xwm ntsuas.
  2. 30 vib nas this. HPA kuaj xyuas qhov ntsuas qhov ntsuas.
  3. Tsawg dua 2 vib nas this. Cov pods yog tsim thiab nkag mus rau hauv lub xeev standby.
  4. Tsawg dua 2 vib nas this. CA pom cov modules tos thiab hu xov tooj los muab cov nodes.
  5. 10 feeb. Cov huab muab faib cov nodes. K8s tos kom txog thaum lawv npaj txhij. Lub sijhawm tos yog nyob ntawm ntau yam, xws li tus neeg muag khoom ncua sijhawm, OS ncua sijhawm, thiab cov cuab yeej txhawb nqa.

Tsis txhob cuam tshuam cov chaw muab kev pabcuam huab 'scaling mechanisms nrog peb CA. Cov tom kawg khiav hauv Kubernetes pawg, thaum lub tshuab huab cua ua haujlwm ntawm lub hauv paus faib khoom. Nws tsis paub tias muaj dab tsi tshwm sim nrog koj cov pods lossis daim ntawv thov. Cov tshuab no ua haujlwm sib luag.

Yuav ua li cas tswj scaling hauv Kubernetes

  1. Kubernetes yog cov cuab yeej tswj hwm thiab kev tswj hwm. Kev khiav hauj lwm rau kev tswj cov pods thiab pawg pab pawg yog lub hauv paus tseem ceeb hauv kev paub txog Kubernetes.
  2. Nkag siab txog cov laj thawj ntawm pod scalability coj mus rau hauv tus account HPA thiab VPA.
  3. CA yuav tsum tsuas yog siv yog tias koj muaj kev nkag siab zoo txog cov kev xav tau ntawm koj cov pods thiab ntim khoom.
  4. Txhawm rau txhim kho qhov zoo ntawm pawg, koj yuav tsum nkag siab tias cov txheej txheem sib txawv ua haujlwm ua ke li cas.
  5. Thaum kwv yees lub sijhawm ntsuas, khaws cov xwm txheej phem tshaj plaws thiab cov xwm txheej zoo tshaj plaws hauv siab.

Tau qhov twg los: www.hab.com

Ntxiv ib saib