Kubecost apskats par naudas taupÄ«Å”anu Kubernetes mÄkoÅos
PaÅ”laik arvien vairÄk uzÅÄmumu pÄrceļ savu infrastruktÅ«ru no aparatÅ«ras serveriem un savÄm virtuÄlajÄm maŔīnÄm uz mÄkoni. Å o risinÄjumu ir viegli izskaidrot: nav jÄuztraucas par aparatÅ«ru, klasteris ir viegli konfigurÄjams dažÄdos veidos... un pats galvenais, esoÅ”Äs tehnoloÄ£ijas (piemÄram, Kubernetes) ļauj vienkÄrÅ”i mÄrogot skaitļoÅ”anas jaudu atkarÄ«bÄ no slodzes .
FinansiÄlais aspekts vienmÄr ir svarÄ«gs. Å ajÄ rakstÄ apskatÄ«tais rÄ«ks ir paredzÄts, lai palÄ«dzÄtu samazinÄt budžetu, izmantojot mÄkoÅa infrastruktÅ«ru ar Kubernetes.
Ievads
Kubecost ir Kalifornijas startup no Google, kas rada risinÄjumu infrastruktÅ«ras izmaksu aprÄÄ·inÄÅ”anai mÄkoÅpakalpojumos (Kubernetes klastera ietvaros + koplietotie resursi), meklÄ vÄjÄs vietas klastera iestatÄ«jumos un nosÅ«ta atbilstoÅ”us paziÅojumus Slack.
Mums ir klienti ar Kubernetes gan pazÄ«stamajos AWS un GCP mÄkoÅos, gan, retÄk Linux kopienai, Azure ā kopumÄ visÄs Kubecost atbalstÄ«tajÄs platformÄs. Dažiem no tiem mÄs paÅ”i aprÄÄ·inÄm klastera iekÅ”Äjo pakalpojumu izmaksas (izmantojot metodi, kas ir lÄ«dzÄ«ga Kubecost izmantotajai), kÄ arÄ« uzraugÄm infrastruktÅ«ras izmaksas un cenÅ”amies tÄs optimizÄt. TÄpÄc ir loÄ£iski, ka mÅ«s interesÄja iespÄja automatizÄt Å”Ädus uzdevumus.
GalvenÄ Kubecost moduļa pirmkods ir atvÄrts saskaÅÄ ar atvÄrtÄ pirmkoda licences noteikumiem (Apache License 2.0). To var brÄ«vi izmantot, un pieejamajÄm funkcijÄm vajadzÄtu bÅ«t pietiekamÄm maziem projektiem. TomÄr bizness ir bizness: pÄrÄjais produkts ir slÄgts, to var izmantot maksas abonementi, kas nozÄ«mÄ arÄ« komerciÄlu atbalstu. TurklÄt autori piedÄvÄ bezmaksas licenci maziem klasteriem (1 klasteris ar 10 mezgliem ā Ŕī raksta tapÅ”anas laikÄ Å”is limits ir paplaÅ”inÄjies lÄ«dz 20 mezgliem) vai izmÄÄ£inÄjuma periodu ar pilnÄm iespÄjÄm uz 1 mÄnesi.
KÄ tas viss darbojas
TÄtad galvenÄ Kubecost daļa ir lietojumprogramma izmaksu modelis, rakstÄ«ts Go. Tiek izsaukta stÅ«res diagramma, kas apraksta visu sistÄmu izmaksu analizators un tÄs pamatÄ ir komplekts no izmaksu modeļa ar Prometheus, Grafana un vairÄkiem informÄcijas paneļiem.
VispÄrÄ«gi runÄjot, izmaksu modelim ir savs tÄ«mekļa interfeiss, kas parÄda grafikus un detalizÄtu izmaksu statistiku tabulas veidÄ, kÄ arÄ«, protams, padomus izmaksu optimizÄÅ”anai. Grafana piedÄvÄtie informÄcijas paneļi ir agrÄks Kubecost izstrÄdes posms un satur gandrÄ«z tÄdus paÅ”us datus kÄ izmaksu modelis, papildinot tos ar parasto statistiku par CPU/atmiÅas/tÄ«kla/diska vietas patÄriÅu klasterÄ« un tÄ komponentos. .
KÄ Kubecost darbojas?
Izmaksu modelis saÅem cenas par pakalpojumiem, izmantojot mÄkoÅa pakalpojumu sniedzÄju API.
TurklÄt, atkarÄ«bÄ no mezgla dzelzs veida un reÄ£iona, tiek aprÄÄ·inÄta viena mezgla izmaksas.
Pamatojoties uz mezglu ekspluatÄcijas izmaksÄm, katra lapu pods saÅem maksu par CPU izmantoÅ”anas stundu, par patÄrÄtÄs atmiÅas gigabaitu un par stundu par vienu gigabaitu saglabÄto datu ā atkarÄ«bÄ no mezgla, kurÄ tas darbojÄs, vai krÄtuves klases.
Pamatojoties uz atseviŔķu podziÅu darbÄ«bas izmaksÄm, maksÄjums tiek aprÄÄ·inÄts par nosaukumvietÄm, pakalpojumiem, izvietoÅ”anu, StatefulSets.
Statistika tiek aprÄÄ·inÄta, izmantojot metriku, ko nodroÅ”ina kube-state-metrics un node-exporter.
Ir svarÄ«gi Åemt vÄrÄ, ka Kubecost pÄc noklusÄjuma uzskaita tikai Kubernetes pieejamos resursus. ÄrÄjÄs datu bÄzes, GitLab serveri, S3 krÄtuves un citi pakalpojumi, kas neatrodas klasterÄ« (pat ja atrodas tajÄ paÅ”Ä mÄkonÄ«), tam nav redzami. Lai gan GCP un AWS varat pievienot savu pakalpojumu kontu atslÄgas un aprÄÄ·inÄt visu kopÄ.
UzstÄdÄ«Å”ana
Kubecost pieprasa:
Kubernetes versija 1.8 un jaunÄka;
kube-state-metrics;
Prometejs;
mezglu eksportÄtÄjs.
TÄ notika, ka mÅ«su klasteros visi Å”ie nosacÄ«jumi tika izpildÄ«ti iepriekÅ”, tÄpÄc izrÄdÄ«jÄs, ka pietika tikai norÄdÄ«t pareizo galapunktu piekļuvei Prometheus. TomÄr oficiÄlajÄ kubecost Helm diagrammÄ ir viss nepiecieÅ”amais, lai darbotos tukÅ”Ä klasterÄ«.
Ir vairÄki veidi, kÄ instalÄt Kubecost:
Standarta uzstÄdÄ«Å”anas metode, kas aprakstÄ«ta instrukcijas izstrÄdÄtÄja vietnÄ. ObligÄti pievienojiet izmaksu analizatora repozitoriju Helm un pÄc tam instalÄjiet diagrammu. Atliek tikai pÄrsÅ«tÄ«t savu portu un pielÄgot iestatÄ«jumus vajadzÄ«gajam stÄvoklim manuÄli (izmantojot kubectl) un/vai izmantojot izmaksu modeļa tÄ«mekļa saskarni.
MÄs pat neesam izmÄÄ£inÄjuÅ”i Å”o metodi, jo neizmantojam treÅ”Äs puses gatavas konfigurÄcijas, taÄu tÄ izskatÄs kÄ laba iespÄja āizmÄÄ£ini patsā. Ja jums jau ir instalÄti daži sistÄmas komponenti vai vÄlaties precÄ«zÄk pielÄgot, labÄk ir apsvÄrt otro ceļu.
Izmantojiet bÅ«tÄ«bÄ tÄ pati diagramma, bet konfigurÄjiet un instalÄjiet to pats jebkurÄ ÄrtÄ veidÄ.
KÄ jau minÄts, Å”ajÄ diagrammÄ papildus paÅ”am kubecost ir Grafana un Prometheus diagrammas, kuras arÄ« var pielÄgot pÄc vÄlÄÅ”anÄs.
Pieejams diagrammÄ values.yaml izmaksu analizatoram ļauj konfigurÄt:
izmaksu analizatora komponentu saraksts, kas jÄizvieto;
jÅ«su Prometheus galapunkts (ja jums tÄds jau ir);
domÄni un citi ieejas iestatÄ«jumi izmaksu modelim un Grafana;
anotÄcijas pÄkstÄ«m;
nepiecieÅ”amÄ«ba izmantot pastÄvÄ«gu krÄtuvi un tÄs lielums.
Pilns pieejamo konfigurÄcijas opciju saraksts ar aprakstiem ir pieejams dokumentÄcija.
TÄ kÄ kubecost tÄs pamata versijÄ nevar ierobežot piekļuvi, jums nekavÄjoties bÅ«s jÄkonfigurÄ tÄ«mekļa paneļa pamata autentifikÄcija.
InstalÄt tikai sistÄmas kodols - izmaksu modelis. Lai to izdarÄ«tu, klasterÄ« ir jÄbÅ«t instalÄtam Prometheus un mainÄ«gajÄ jÄnorÄda atbilstoÅ”Ä tÄ adreses vÄrtÄ«ba. prometheusEndpoint par Helmu. PÄc tam - pieteikties YAML konfigurÄciju komplekts klasterÄ«.
Atkal jums bÅ«s manuÄli jÄpievieno Ingress ar pamata autentifikÄciju. Visbeidzot, jums bÅ«s jÄpievieno sadaļa izmaksu modeļa metrikas apkopoÅ”anai extraScrapeConfigs Prometheus konfigurÄcijÄ:
Ar pilnu uzstÄdÄ«Å”anu mÅ«su rÄ«cÄ«bÄ ir kubecost un Grafana tÄ«mekļa panelis ar informÄcijas paneļu komplektu.
KopÄjÄs izmaksas, kas tiek parÄdÄ«ts galvenajÄ ekrÄnÄ, faktiski parÄda aptuvenÄs mÄneÅ”a resursu izmaksas. Å is prognozÄts cena, kas atspoguļo klastera lietoÅ”anas izmaksas (mÄnesÄ«) paÅ”reizÄjÄ resursu patÄriÅa lÄ«menÄ«.
Å is rÄdÄ«tÄjs ir vairÄk paredzÄts izdevumu analÄ«zei un to optimizÄÅ”anai. Nav Ä«paÅ”i Ärti aplÅ«kot abstraktÄ jÅ«lija kopÄjÄs izmaksas kubecost: jums bÅ«s doties uz norÄÄ·iniem. TaÄu varat skatÄ«t izmaksas, kas sadalÄ«tas pÄc nosaukumvietÄm, etiÄ·etÄm, aplikumiem 1/2/7/30/90 dienÄm, kuras nekad neparÄdÄ«s norÄÄ·inos.
RunÄjot par etiÄ·etes. Jums nekavÄjoties jÄiet uz iestatÄ«jumiem un jÄiestata etiÄ·eÅ”u nosaukumi, kas tiks izmantoti kÄ papildu kategorijas izmaksu grupÄÅ”anai:
Uz tÄm var piekÄrt jebkuras etiÄ·etes ā Ärti, ja jau ir sava marÄ·ÄÅ”anas sistÄma.
ArÄ« tur varat mainÄ«t API galapunkta adresi, ar kuru pieslÄdzas izmaksu modelis, pielÄgot atlaides lielumu GCP un iestatÄ«t savas cenas resursiem un valÅ«tu to mÄrÄ«Å”anai (kÄdu iemeslu dÄļ funkcija neietekmÄ kopÄjÄs izmaksas).
Kubecost var parÄdÄ«t dažÄdus problÄmas klasterÄ« (un pat brÄ«dinÄt briesmu gadÄ«jumÄ). DiemžÄl Ŕī opcija nav konfigurÄjama, un tÄpÄc, ja jums ir izstrÄdÄtÄju vide un tÄs izmantojat, jÅ«s pastÄvÄ«gi redzÄsit kaut ko lÄ«dzÄ«gu:
SvarÄ«gs instruments - Klasteru ietaupÄ«jumi. Tas mÄra podiÅu aktivitÄti (resursu, tostarp tÄ«kla, patÄriÅu), kÄ arÄ« aprÄÄ·ina, cik daudz naudas un uz ko jÅ«s varat ietaupÄ«t.
Var Ŕķist, ka optimizÄcijas padomi ir diezgan paÅ”saprotami, taÄu pieredze liecina, ka joprojÄm ir ko apskatÄ«t. Jo Ä«paÅ”i tiek uzraudzÄ«ta podiÅu tÄ«kla aktivitÄte (Kubecost iesaka pievÄrst uzmanÄ«bu neaktÄ«vajiem), tiek salÄ«dzinÄts pieprasÄ«tais un faktiskais atmiÅas un CPU patÄriÅÅ”, kÄ arÄ« klastera mezglu izmantotais CPU (ieteicams sabrukt vairÄkus mezglus vienÄ), disks. slodze un vÄl pÄris desmiti parametru.
TÄpat kÄ ar jebkuru optimizÄcijas problÄmu, resursu optimizÄÅ”anai, pamatojoties uz Kubecost datiem, ir nepiecieÅ”ams: izturÄties piesardzÄ«gi. PiemÄram, Cluster Savings iesaka dzÄst mezglus, apgalvojot, ka tas ir droÅ”i, bet neÅem vÄrÄ mezglu selektoru un piesÄrÅojumu klÄtbÅ«tni tajos izvietotajos blokos, kas nav pieejami citos mezglos. Un vispÄr pat produkta autori savÄ nesenais raksts (starp citu, var ļoti noderÄt tiem, kurus interesÄ projekta tÄma) ieteicams nesteidzÄ«gi steigties ar izmaksu optimizÄciju, bet jautÄjumam pieiet pÄrdomÄti.
RezultÄti
PÄc mÄneÅ”a kubecost izmantoÅ”anas pÄris projektos varam secinÄt, ka tas ir interesants (un arÄ« viegli apgÅ«stams un instalÄjams) rÄ«ks Kubernetes klasteriem izmantoto mÄkoÅpakalpojumu sniedzÄju pakalpojumu izmaksu analÄ«zei un optimizÄÅ”anai. AprÄÄ·ini izrÄdÄs ļoti precÄ«zi: mÅ«su eksperimentos tie sakrita ar pakalpojumu sniedzÄju pieprasÄ«to.
Ir arÄ« daži negatÄ«vie aspekti: ir nekritiskas kļūdas, un dažviet funkcionalitÄte nesedz dažiem projektiem raksturÄ«gÄs vajadzÄ«bas. TaÄu, ja Ätri jÄsaprot, kur aiziet nauda un ko var ānogrieztā, lai konsekventi samazinÄtu rÄÄ·inu par mÄkoÅpakalpojumiem par 5-30% (tÄ tas notika mÅ«su gadÄ«jumÄ), Ŕī ir lieliska iespÄja .