Kubecost endurskoðun til að spara peninga á Kubernetes í skýjunum

Kubecost endurskoðun til að spara peninga á Kubernetes í skýjunum

Eins og er eru fleiri og fleiri fyrirtæki að flytja innviði sína frá vélbúnaðarþjónum og eigin sýndarvélum yfir í skýið. Þessa lausn er auðvelt að útskýra: það er engin þörf á að hafa áhyggjur af vélbúnaði, þyrpingin er auðveldlega stillt á marga mismunandi vegu... og síðast en ekki síst, núverandi tækni (eins og Kubernetes) gerir það mögulegt að skala tölvuafl einfaldlega eftir álagi .

Fjárhagslegi þátturinn er alltaf mikilvægur. Tólið sem fjallað er um í þessari grein er hannað til að draga úr fjárveitingum þegar skýjainnviði er notað með Kubernetes.

Inngangur

Kubecost er kalifornískt sprotafyrirtæki frá Google, sem býr til lausn til að reikna út innviðakostnað í skýjaþjónustu (innan Kubernetes klasa + sameiginlegra auðlinda), leita að flöskuhálsum í klasastillingum og senda viðeigandi tilkynningar til Slack.

Við höfum viðskiptavini með Kubernetes bæði í kunnuglegu AWS og GCP skýjunum og í Azure, sem er sjaldgæfara fyrir Linux samfélagið - almennt á öllum kerfum sem Kubecost styður. Fyrir suma þeirra reiknum við sjálf út kostnað við þjónustu innan klasa (með því að nota svipaða aðferð og Kubecost notar) og fylgjumst líka með innviðakostnaði og reynum að hagræða honum. Þess vegna er rökrétt að við hefðum áhuga á möguleikanum á að gera slík verkefni sjálfvirk.

Frumkóði aðal Kubecost einingarinnar er opinn samkvæmt skilmálum Open Source leyfisins (Apache License 2.0). Það er hægt að nota að vild og tiltækir eiginleikar ættu að duga fyrir lítil verkefni. Hins vegar, viðskipti eru viðskipti: restin af vörunni er lokuð, það er hægt að nota hana greiddar áskriftir, sem einnig felur í sér viðskiptastuðning. Að auki bjóða höfundar upp á ókeypis leyfi fyrir litla klasa (1 þyrping með 10 hnútum - við ritun þessarar greinar hefur þessi mörk stækkað í 20 hnúta) eða prufutímabil með fullri getu í 1 mánuð.

Hvernig allt virkar

Svo, meginhluti Kubecost er forritið kostnaðarlíkan, skrifað í Go. Hjálparkort sem lýsir öllu kerfinu er kallað kostnaðargreiningartæki og kjarninn er samsetning úr kostnaðarlíkani með Prometheus, Grafana og nokkrum mælaborðum.

Almennt séð hefur kostnaðarlíkan sitt eigið vefviðmót sem sýnir línurit og nákvæma tölfræði um kostnað í töfluformi, auk að sjálfsögðu ráðleggingar til að hagræða kostnaði. Mælaborðin sem kynnt eru í Grafana eru á fyrri stigum í þróun Kubecost og innihalda mikið af sömu gögnum og kostnaðarlíkanið og bæta þeim við venjulega tölfræði um neyslu örgjörva/minni/nets/diskapláss í klasanum og þess. íhlutir.

Hvernig virkar Kubecost?

  • Kostnaðarlíkan fær verð fyrir þjónustu í gegnum API skýjaveitenda.
  • Ennfremur, eftir járngerð hnútsins og svæðisins, er kostnaður á hvern hnút reiknaður.
  • Miðað við kostnaðinn við að keyra hnúta fær hver laufbelgur kostnað á hverja klukkustund af CPU-notkun, á hvert gígabæt af neytt minni og á hverja klukkustund á hvert gígabæt af gögnum sem geymd eru - allt eftir hnútnum sem það var að keyra á eða flokki geymslu.
  • Byggt á kostnaði við rekstur einstakra belg, er greiðsla reiknuð fyrir nafnrými, þjónustu, dreifingu, StatefulSets.
  • Tölfræði er reiknuð út með því að nota mæligildi frá kube-state-metrics og node-exporter.

Það er mikilvægt að hafa í huga að Kubecost sjálfgefið telur aðeins tilföng sem eru tiltæk í Kubernetes. Ytri gagnagrunnar, GitLab netþjónar, S3 geymslur og önnur þjónusta sem er ekki í þyrpingunni (jafnvel þó þau séu staðsett í sama skýinu) eru ekki sýnileg honum. Þó fyrir GCP og AWS geturðu bætt við lyklum þjónustureikninganna þinna og reiknað allt saman.

Uppsetning

Kubecost krefst:

  • Kubernetes útgáfa 1.8 og nýrri;
  • kúbe-ástand-mælingar;
  • Prometheus;
  • hnút-útflytjandi.

Það gerðist svo að í klösunum okkar voru öll þessi skilyrði uppfyllt fyrirfram, svo það kom í ljós að það var nóg að tilgreina réttan endapunkt fyrir aðgang að Prometheus. Hins vegar, opinbera Kubecost Helm töfluna inniheldur allt sem þú þarft til að keyra á berum þyrpingum.

Það eru nokkrar leiðir til að setja upp Kubecost:

  1. Hefðbundin uppsetningaraðferð sem lýst er í leiðbeiningar á vefsíðu þróunaraðila. Nauðsynlegt bættu kostnaðargreiningargeymslunni við Helm og settu síðan upp töfluna. Allt sem er eftir er að senda höfnina þína og stilla stillingarnar í viðkomandi ástand handvirkt (í gegnum kubectl) og/eða nota kostnaðarlíkanið vefviðmót.

    Við höfum ekki einu sinni prófað þessa aðferð, þar sem við notum ekki tilbúnar stillingar frá þriðja aðila, en það lítur út fyrir að vera góður „prófaðu það sjálfur“ valmöguleiki. Ef þú ert nú þegar með einhverja kerfishluta uppsetta eða vilt fínstilla, er betra að íhuga seinni leiðina.

  2. Notaðu í meginatriðum sama grafið, en stilltu og settu það upp sjálfur á einhvern þægilegan hátt.

    Eins og áður hefur verið nefnt, til viðbótar við kubecost sjálft, inniheldur þetta kort Grafana og Prometheus töflur, sem einnig er hægt að sérsníða að vild.

    Fáanlegt á töflunni values.yaml fyrir kostnaðargreiningartæki gerir þér kleift að stilla:

    • listi yfir íhluti kostnaðargreiningartækis sem þarf að dreifa;
    • endapunktur þinn fyrir Prometheus (ef þú ert nú þegar með einn);
    • lén og aðrar inngöngustillingar fyrir kostnaðarlíkan og Grafana;
    • athugasemdir fyrir belg;
    • nauðsyn þess að nota varanlega geymslu og stærð hennar.

    Heildarlisti yfir tiltæka stillingarvalkosti með lýsingum er fáanlegur í skjöl.

    Þar sem kubecost í grunnútgáfu sinni getur ekki takmarkað aðgang þarftu strax að stilla basic-auth fyrir vefspjaldið.

  3. Settu upp aðeins kerfiskjarna - kostnaðarlíkan. Til að gera þetta verður þú að hafa Prometheus uppsett í þyrpingunni og tilgreina samsvarandi gildi heimilisfangs hans í breytunni prometheusEndpoint fyrir Helm. Eftir það - sækja um sett af YAML stillingum í klasanum.

    Aftur verður þú að bæta Ingress við handvirkt með grunnauth. Að lokum þarftu að bæta við hluta til að safna kostnaðarlíkönum í extraScrapeConfigs í Prometheus stillingunni:

    - job_name: kubecost
      honor_labels: true
      scrape_interval: 1m
      scrape_timeout: 10s
      metrics_path: /metrics
      scheme: http
      dns_sd_configs:
      - names:
        - <адрес вашего сервиса kubecost>
        type: 'A'
        port: 9003

Hvað fáum við?

Með fullri uppsetningu höfum við til umráða kubecost og Grafana vefspjaldið með setti af mælaborðum.

Heildar kostnaður, sem birtist á aðalskjánum, sýnir í raun áætlaðan kostnað við auðlindir fyrir mánuðinn. Þetta spáð verð sem endurspeglar kostnað við að nota klasann (á mánuði) við núverandi auðlindanotkun.

Þessi mælikvarði er meira til að greina útgjöld og hagræða þeim. Það er ekki mjög þægilegt að skoða heildarkostnað fyrir ágrip júlí í kubecost: þú verður að gera það fara í innheimtu. En þú getur séð kostnað sundurliðað eftir nafnasvæðum, merkimiðum, belgjum fyrir 1/2/7/30/90 daga, sem innheimta mun aldrei sýna þér.

Kubecost endurskoðun til að spara peninga á Kubernetes í skýjunum

Talandi um Merki. Þú ættir strax að fara í stillingarnar og stilla nöfn merkjanna sem verða notuð sem viðbótarflokkar fyrir flokkunarkostnað:

Kubecost endurskoðun til að spara peninga á Kubernetes í skýjunum

Þú getur hengt hvaða merkimiða sem er á þá - þægilegt ef þú ert nú þegar með þitt eigið merkingarkerfi.

Einnig þar geturðu breytt heimilisfangi API endapunktsins sem kostnaðarlíkanið tengist, stillt afsláttarstærðina í GCP og stillt þitt eigið verð fyrir tilföng og gjaldmiðil fyrir mælingu þeirra (einhverra hluta vegna hefur aðgerðin ekki áhrif á heildarkostnað).

Kubecost getur sýnt ýmislegt vandamál í klasanum (og jafnvel viðvörun ef hætta stafar af). Því miður er valmöguleikinn ekki stillanlegur og þess vegna, ef þú ert með umhverfi fyrir forritara og notar þau, muntu stöðugt sjá eitthvað á þessa leið:

Kubecost endurskoðun til að spara peninga á Kubernetes í skýjunum

Mikilvægt verkfæri - Klasasparnaður. Það mælir virkni fræbelgja (eyðslu auðlinda, þar með talið netauðs) og reiknar einnig út hversu mikið fé þú getur sparað og á hverju.

Það kann að virðast sem hagræðingarráð séu nokkuð augljós, en reynslan bendir til þess að enn sé eitthvað til að skoða. Sérstaklega er fylgst með netvirkni fræbelgs (Kubecost bendir á að huga að óvirkum), borið saman umbeðið og raunverulegt minni og örgjörvanotkun, auk örgjörvans sem notaður er af klasahnútum (bendir til við að fella nokkra hnúta saman í einn), diskur. hleðslu og nokkra tugi breytu til viðbótar.

Eins og með öll hagræðingarvandamál þarf að fínstilla auðlindir byggðar á Kubecost gögnum: fara með varúð. Til dæmis, Cluster Savings stingur upp á því að eyða hnútum með því að halda því fram að það sé öruggt, en tekur ekki tillit til tilvistar hnútavalara og óhreininda í belgunum sem eru settir á þá sem eru ekki tiltækir á öðrum hnútum. Og almennt, jafnvel höfundar vörunnar í þeirra nýleg grein (sem sagt, það getur verið mjög gagnlegt fyrir þá sem hafa áhuga á viðfangsefni verkefnisins) mælt er með því að þjóta ekki á hausinn í hagræðingu kostnaðar heldur að nálgast málið af yfirvegun.

Niðurstöður

Eftir að hafa notað kubecost í mánuð í nokkrum verkefnum getum við komist að þeirri niðurstöðu að það sé áhugavert (og einnig auðvelt að læra og setja upp) tól til að greina og hagræða kostnað fyrir þjónustu skýjaveitna sem notuð eru fyrir Kubernetes klasa. Útreikningarnir reynast mjög nákvæmir: í tilraunum okkar fóru þeir saman við það sem veitendurnir þurftu í raun.

Það eru líka nokkrir gallar: það eru ekki mikilvægar villur og sums staðar nær virknin ekki til þeirra þarfa sem eru sértækar fyrir sum verkefni. Hins vegar, ef þú þarft að skilja fljótt hvert peningarnir fara og hvað er hægt að „skera“ til að lækka stöðugt reikninginn fyrir skýjaþjónustu um 5-30% (þetta er það sem gerðist í okkar tilviki), þá er þetta frábær kostur .

PS

Lestu líka á blogginu okkar:

Heimild: www.habr.com

Bæta við athugasemd