Sida loo badbaadiyo kharashyada daruuraha markaad la shaqaynayso Kubernetes? Ma jiro hal xal oo sax ah, laakiin maqaalkani wuxuu qeexayaa dhowr qalab oo kaa caawin kara inaad si waxtar leh u maamusho kheyraadkaaga oo aad hoos u dhigto kharashyada xisaabinta daruuraha.
Waxaan maqaalkan ku qoray Kubernetes ee AWS maskaxda, laakiin waxay ku dabaqi doontaa (ku dhawaad) si la mid ah bixiyeyaasha kale ee daruuraha. Waxaan u malaynayaa in kooxdaadu ay horeba u haysteen iskoorka iskoorkacluster-autoscaler). Ka saarida agabka iyo hoos u dhigista hawlgelintaada waxay kaliya ku badbaadin doontaa lacag haddii ay sidoo kale yarayso qandhadaada shaqaalaha (tusaale EC2).
Maqaalkani waxa uu dabooli doonaa:
nadiifinta kheyraadka aan la isticmaalin (kube-janitor)
Iska yaree miisaanka inta lagu jiro saacadaha aan shaqada ahayn (kube-downscaler)
iyadoo la isticmaalayo toosan autoscaling (HPA),
hoos u dhigista kaydinta kheyraadka ee xad dhaafka ah (kube-khayr-warbixin, VPA)
iyadoo la isticmaalayo tusaaleyaal Spot
Nadiifinta agabka aan la isticmaalin
Ka shaqaynta jawi degdeg ah waa mid aad u fiican. Waxaan rabnaa ururada tignoolajiyada la dedejiyey. Soo gudbinta kombuyuutarrada degdega ah waxay sidoo kale ka dhigan tahay hawlgelin badan oo PR ah, bey'ad horudhac ah, tusaalayaal, iyo xalalka falanqaynta. Wax walba waxaa la geeyaa Kubernetes. Yaa wakhti u haysta inuu gacanta ku nadiifiyo meelaynta imtixaanada? Way fududahay in la iloobo tirtirida tijaabo toddobaad jirsatay. Biilasha daruurtu waxay ku dambayn doontaa kor u kaca sababtoo ah wax aan iloobin inaan xidhno:
Tusaalaha soo socdaa waxa uu nidaaminayaa isticmaalka summada codsiga ee ku yaala Gelida iyo StatefulSet bosyada ee dhammaan Soo-dejinta/StatefulSet-ka cusub ee 2020, laakiin isla markaa waxa ay ogolaataa fulinta imtixaanada iyada oo aan summadan la hayn muddo toddobaad ah:
Ku socodsii demo-wakhti xadidan 30 daqiiqo duleel kutbada ordaya kube-janitor:
kubectl run nginx-demo --image=nginx
kubectl annotate deploy nginx-demo janitor/ttl=30m
Ilaha kale ee kor u kaca kharashku waa qiyaasaha joogtada ah (AWS EBS). Tirtiridda Kubernetes StatefulSet ma tirtirto tirooyinkeeda joogtada ah (PVC - PersistentVolumeClaim). Qiyaasta EBS ee aan la isticmaalin waxay si fudud u keeni kartaa kharashyo boqolaal doolar ah bishii. Kubernetes Janitor waxa uu leeyahay sifo lagu nadiifiyo PVC-yada aan la isticmaalin. Tusaale ahaan, sharcigani wuxuu meesha ka saarayaa dhammaan PVC-yada aan lagu rakibin cutubka oo aan tixraacin StatefulSet ama CronJob:
Kubernetes Janitor wuxuu kaa caawin karaa inaad nadiifiso kooxdaada oo ka ilaaliso kharashyada xisaabinta daruuraha inay si tartiib tartiib ah u kordho. Si aad u dirto iyo tilmaamaha qaabeynta, raac README kube-janitor.
Iska yaree miisaanka inta lagu jiro saacadaha aan shaqada ahayn
Nidaamyada tijaabada iyo diyaarinta ayaa caadi ahaan looga baahan yahay inay shaqeeyaan kaliya saacadaha shaqada. Qaar ka mid ah codsiyada wax soo saarka, sida xafiiska dambe/qalabka maamulka, waxay sidoo kale u baahan yihiin kaliya helitaan xaddidan waxaana laga yaabaa in la naafo.
Kubernetes Downscaler (kube-downscaler) waxay u ogolaataa isticmaalayaasha iyo hawl-wadeenada inay hoos u dhigaan nidaamka saacadaha aan shaqaynayn. Hawlgelinta iyo StatefulSets waxay qiyaasi karaan nuqullo eber ah. CronJobs ayaa laga yaabaa in la hakiyo. Kubernetes Downscaler waxaa loo habeeyey koox dhan, hal ama in ka badan oo magacyo ah, ama ilo gaar ah. Waxaad dejin kartaa mid ka mid ah "waqtiga shaqo la'aanta" ama, caksigeed, "waqtiga shaqada". Tusaale ahaan, si loo yareeyo miisaanka inta ugu badan ee suurtogalka ah inta lagu jiro habeenkii iyo maalmaha fasaxa:
Codsiyo/adeegyo badan ayaa wax ka qabta qaab rarid firfircoon: mararka qaarkood qaybahoodu waa shaqo-la'aan, mararka qaarkoodna waxay ku shaqeeyaan si buuxda. Ka shaqaynta raxanno goosad ah oo joogto ah si ay ula qabsadaan culayska ugu sarreeya maaha mid dhaqaale. Kubernetes waxa ay taageertaa isku-dheellitirka tooska ah ee agabka HorizontalPodAutoscaler (HPA). Isticmaalka CPU inta badan waa tilmaame wanaagsan ee cabbirka:
Ku-habaynta autoscaling-ka toosan ee HPA waa in ay ahaato mid ka mid ah ficillada aan caadiga ahayn ee lagu wanaajinayo waxtarka adeegyada aan dal lahayn. Spotify waxay leedahay soo bandhigid khibradooda iyo talooyinka HPA: cabbir meelaha aad geynayso, ee ma aha boorsadaada.
Yaree kaydka xad dhaafka ah
Kubernetes culayska shaqada ayaa go'aamiya baahidooda CPU/xusuusta iyada oo loo marayo "codsiyada kheyraadka." Ilaha CPU waxa lagu cabbiraa koofiyadaha farsamada ama in ka badan βmillicoresβ, tusaale ahaan 500m waxa ay ka dhigan tahay 50% vCPU. Ilaha xusuusta waxaa lagu qiyaasaa bytes, waxaana la isticmaali karaa daba-galayaasha caadiga ah, sida 500Mi, oo macnaheedu yahay 500 megabytes. Codsiyada kheyraadka "quful" ee qanjidhada shaqaalaha, taasoo la macno ah boodh leh codsi 1000m CPU ah oo ku yaal noodhka leh 4 vCPUs ayaa ka tagi doona kaliya 3 vCPUs oo diyaar u ah gabo kale. [1]
Slack ( kayd xad dhaaf ah) waa farqiga u dhexeeya agabka la codsaday iyo isticmaalka dhabta ah. Tusaale ahaan, boodhka codsanaya 2 GiB ee xusuusta ah laakiin kaliya ee adeegsata 200 MiB ayaa leh ~ 1,8 GiB oo ah xusuusta "xad dhaaf". Xad-dhaafku waa lacag. Mid ayaa qiyaas ahaan qiyaasi kara in 1 GiB ee xusuusta aan yarayn uu ku kacayo ~ $10 bishii. [2]
Warbixinta Kheyraadka Kubernetes waxay muujinaysaa xad-dhaafka la isku daray codsi iyo amar. Tani waxay kuu ogolaaneysaa inaad hesho meelo lagu yarayn karo dalabaadka kheyraadka. Warbixinta HTML ee la soo saaray ayaa bixisa oo kaliya sawirka isticmaalka kheyraadka. Waa inaad eegtaa isticmaalka CPU/xusuusta waqti ka dib si aad u go'aamiso codsiyada kheyraadka ee kugu filan. Halkan waxaa ah jaantuska Grafana ee adeegga "caadiga ah" ee CPU-culus: dhammaan boodhadhka ayaa si aad ah u isticmaalaya wax ka yar 3-da xargaha CPU ee la codsaday:
Hoos u dhigista codsiga CPU laga bilaabo 3000m ilaa ~400m waxay u fasaxaysaa agabka culaysyada kale ee shaqada waxayna u ogolaanaysaa kooxdu inay yaraato.
"Celcelis ahaan isticmaalka CPU ee xaaladaha EC2 inta badan waxay ku dul wareegaysaa tirada boqolleyda hal-god," ayuu qoray Corey Quinn. Marka loo eego EC2 qiyaasida cabbirka saxda ah waxay noqon kartaa go'aan xunBeddelka qaar ka mid ah weydiimaha kheyraadka Kubernetes ee faylka YAML waa sahlan tahay waxayna keeni kartaa kayd badan.
Laakiin dhab ahaantii ma waxaan rabnaa in dadku ku beddelaan qiyamka faylalka YAML? Maya, mashiinada ayaa si ka sii wanaagsan u qaban kara! Kubernetes Autoscaler Pod taagan (VPA) sidaas ayey u sameysaa: waxay la qabsataa codsiyada kheyraadka iyo caqabadaha iyadoo loo eegayo culeyska shaqada. Halkan waxaa ah garaaf tusaale ah oo ku saabsan codsiyada Prometheus CPU (khadka buluuga ah ee khafiifka ah) oo ay habaysay VPA waqti ka dib:
dahabka Laga soo bilaabo Fairwind waa qalab u abuura VPA meel-ka-dhigid kasta oo magaceed ka dibna ku soo bandhigta talada VPA ee dashboardkeeda. Waxay ka caawin kartaa horumariyayaashu inay dejiyaan codsiyada xusuusta CPU ee saxda ah ee codsiyadooda:
Duubka barta lagu qasbi karaa aqbal "diiwaangelinta" culeyska shaqada si loogu shaqeeyo Spot
Soo koobid
Waxaan rajeynayaa inaad hesho qaar ka mid ah qalabka la soo bandhigay oo waxtar u leh dhimista biilka daruurahaaga. Waxa kale oo aad ka heli kartaa inta badan waxa ku jira maqaalka Hadalkayga DevOps Gathering 2019 YouTube iyo slides.
Waa maxay hababkaaga ugu fiican ee lagu badbaadinayo kharashyada daruuraha ee Kubernetes? Fadlan ii soo sheeg Twitter (@try_except_).
[1] Dhab ahaantii, in ka yar 3 vCPUs ayaa ahaan doona kuwo la isticmaali karo maadaama wax-soo-saarka noodhka la dhimay agabka nidaamka kaydsan. Kubernetes waxay kala saartaa inta u dhaxaysa awoodda noode jirka iyo agabka "la siiyey"Node loo qoondayn karo).