Ukaguzi wa Kubecost wa kuokoa pesa kwenye Kubernetes kwenye clouds

Ukaguzi wa Kubecost wa kuokoa pesa kwenye Kubernetes kwenye clouds

Hivi sasa, makampuni zaidi na zaidi yanahamisha miundombinu yao kutoka kwa seva za maunzi na mashine zao za mtandaoni hadi kwenye wingu. Suluhisho hili ni rahisi kuelezea: hakuna haja ya kuwa na wasiwasi juu ya vifaa, nguzo imeundwa kwa urahisi kwa njia nyingi tofauti ... na muhimu zaidi, teknolojia zilizopo (kama Kubernetes) hufanya iwezekane kuongeza nguvu ya kompyuta kulingana na mzigo. .

Kipengele cha kifedha daima ni muhimu. Zana iliyojadiliwa katika makala haya imeundwa ili kusaidia kupunguza bajeti wakati wa kutumia miundombinu ya wingu na Kubernetes.

Utangulizi

Kubecost ni uanzishaji wa Kalifonia kutoka Google, unaounda suluhisho la kukokotoa gharama za miundombinu katika huduma za wingu (ndani ya nguzo ya Kubernetes + rasilimali zilizoshirikiwa), kutafuta vikwazo katika mipangilio ya makundi na kutuma arifa zinazofaa kwa Slack.

Tuna wateja walio na Kubernetes katika mawingu ya AWS na GCP yanayofahamika, na, mara chache zaidi kwa jumuiya ya Linux, Azure - kwa ujumla, kwenye mifumo yote inayotumika na Kubecost. Kwa baadhi yao, tunahesabu gharama za huduma za ndani ya nguzo sisi wenyewe (kwa kutumia njia sawa na ile iliyotumiwa na Kubecost), na pia kufuatilia gharama za miundombinu na kujaribu kuziboresha. Kwa hiyo, ni mantiki kwamba tulikuwa na nia ya uwezekano wa automatisering kazi hizo.

Msimbo wa chanzo wa moduli kuu ya Kubecost umefunguliwa chini ya masharti ya leseni ya Open Source (Apache License 2.0). Inaweza kutumika kwa uhuru na vipengele vinavyopatikana vinapaswa kutosha kwa miradi midogo. Walakini, biashara ni biashara: bidhaa iliyobaki imefungwa, inaweza kutumika na usajili unaolipwa, ambayo pia inamaanisha msaada wa kibiashara. Kwa kuongeza, waandishi hutoa leseni ya bure kwa makundi madogo (nguzo 1 yenye nodes 10 - wakati wa kuandika makala hii, kikomo hiki kimeongezeka hadi nodes 20) au kipindi cha majaribio na uwezo kamili kwa mwezi 1.

Jinsi yote inavyofanya kazi

Kwa hivyo, sehemu kuu ya Kubecost ni maombi mfano wa gharama, iliyoandikwa katika Go. Chati ya Helm inayoelezea mfumo mzima inaitwa mchambuzi wa gharama na msingi wake ni mkusanyiko kutoka kwa mfano wa gharama na Prometheus, Grafana na dashibodi kadhaa.

Kwa ujumla, mfano wa gharama una kiolesura chake cha wavuti, ambacho kinaonyesha grafu na takwimu za kina juu ya gharama katika fomu ya jedwali, na vile vile, kwa kweli, vidokezo vya kuongeza gharama. Dashibodi zilizowasilishwa katika Grafana ni hatua ya awali katika ukuzaji wa Kubecost na zina data nyingi sawa na muundo wa gharama, zikiziongezea na takwimu za kawaida za utumiaji wa CPU/kumbukumbu/mtandao/diski nafasi kwenye nguzo na vipengele vyake. .

Je, Kubecost inafanya kazi gani?

  • Muundo wa gharama hupokea bei za huduma kupitia API ya watoa huduma za wingu.
  • Zaidi ya hayo, kulingana na aina ya chuma ya node na kanda, gharama kwa kila node imehesabiwa.
  • Kulingana na gharama ya kuendesha nodi, kila ganda la jani hupata gharama kwa saa ya matumizi ya CPU, kwa kila gigabaiti ya kumbukumbu inayotumiwa, na kwa saa kwa kila gigabaiti ya data iliyohifadhiwa - kulingana na nodi iliyokuwa ikitumika au darasa la uhifadhi.
  • Kulingana na gharama ya uendeshaji wa ganda la mtu binafsi, malipo huhesabiwa kwa nafasi za majina, huduma, Utumaji, StatefulSets.
  • Takwimu hukokotolewa kwa kutumia vipimo vilivyotolewa na kube-state-metrics na nodi-exporter.

Ni muhimu kuzingatia hiyo Kubecost kwa chaguo-msingi huhesabu rasilimali zinazopatikana katika Kubernetes pekee. Hifadhidata za nje, seva za GitLab, hifadhi za S3 na huduma zingine ambazo haziko kwenye nguzo (hata ikiwa ziko kwenye wingu moja) hazionekani kwake. Ingawa kwa GCP na AWS unaweza kuongeza funguo za akaunti yako ya huduma na kuhesabu kila kitu pamoja.

Ufungaji

Kubecost inahitaji:

  • Kubernetes toleo la 1.8 na la juu zaidi;
  • kube-state-metrics;
  • Prometheus;
  • nodi-nje.

Ilifanyika kwamba katika makundi yetu masharti haya yote yalikutana mapema, kwa hiyo ikawa kwamba ilikuwa ya kutosha tu kutaja mwisho sahihi wa kufikia Prometheus. Hata hivyo, chati rasmi ya Helm ya kubecost ina kila kitu unachohitaji ili kuendesha kwenye nguzo tupu.

Kuna njia kadhaa za kufunga Kubecost:

  1. Njia ya usakinishaji ya kawaida iliyoelezewa katika maelekezo kwenye tovuti ya msanidi programu. Inahitajika ongeza hazina ya kichanganuzi cha gharama kwenye Helm, kisha usakinishe chati. Kilichosalia ni kusambaza lango lako na kurekebisha mipangilio kwa hali unayotaka wewe mwenyewe (kupitia kubectl) na/au kutumia kiolesura cha wavuti cha muundo wa gharama.

    Hatujajaribu hata njia hii, kwa kuwa hatutumii usanidi uliofanywa tayari wa wahusika wengine, lakini inaonekana kuwa ni chaguo nzuri "jaribu tu wewe mwenyewe". Ikiwa tayari una baadhi ya vipengele vya mfumo vilivyosakinishwa au unataka kurekebisha zaidi, ni bora kuzingatia njia ya pili.

  2. Tumia kimsingi chati sawa, lakini usanidi na usakinishe mwenyewe kwa njia yoyote inayofaa.

    Kama ilivyotajwa tayari, pamoja na kubecost yenyewe, chati hii ina chati za Grafana na Prometheus, ambazo zinaweza pia kubinafsishwa kama unavyotaka.

    Inapatikana kwenye chati values.yaml kwa kichanganuzi cha gharama hukuruhusu kusanidi:

    • orodha ya vipengele vya uchambuzi wa gharama ambazo zinahitajika kupelekwa;
    • mwisho wako kwa Prometheus (ikiwa tayari unayo);
    • vikoa na mipangilio mingine ya kuingiza kwa modeli ya gharama na Grafana;
    • maelezo kwa maganda;
    • haja ya kutumia hifadhi ya kudumu na ukubwa wake.

    Orodha kamili ya chaguzi zinazopatikana za usanidi zilizo na maelezo zinapatikana ndani nyaraka.

    Kwa kuwa kubecost katika toleo lake la msingi haiwezi kuzuia ufikiaji, utahitaji kusanidi mara moja msingi-auth kwa paneli ya wavuti.

  3. Ili kufunga tu msingi wa mfumo - mfano wa gharama. Ili kufanya hivyo, lazima uwe na Prometheus iliyosanikishwa kwenye nguzo na ueleze thamani inayolingana ya anwani yake katika kutofautisha. prometheusEndpoint kwa Helm. Baada ya hayo - kuomba seti ya usanidi wa YAML katika nguzo.

    Tena, itabidi uongeze mwenyewe Ingress na basic-auth. Hatimaye, utahitaji kuongeza sehemu ya kukusanya vipimo vya miundo ya gharama extraScrapeConfigs katika usanidi wa Prometheus:

    - 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

Tunapata nini?

Kwa usakinishaji kamili, tunao jopo la wavuti la kubecost na Grafana na seti ya dashibodi.

Gharama ya jumla, inayoonyeshwa kwenye skrini kuu, inaonyesha makadirio ya gharama ya rasilimali kwa mwezi. Hii makadirio bei inayoonyesha gharama ya kutumia nguzo (kwa mwezi) katika kiwango cha sasa cha matumizi ya rasilimali.

Kipimo hiki ni zaidi cha kuchanganua gharama na kuziboresha. Sio rahisi sana kuangalia jumla ya gharama za muhtasari wa Julai katika kubecost: itabidi ufanye hivi nenda kwa bili. Lakini unaweza kuona gharama zikigawanywa kwa nafasi za majina, lebo, ganda kwa siku 1/2/7/30/90, ambayo bili haitawahi kukuonyesha.

Ukaguzi wa Kubecost wa kuokoa pesa kwenye Kubernetes kwenye clouds

Akizungumza lebo. Unapaswa kwenda mara moja kwa mipangilio na kuweka majina ya lebo ambazo zitatumika kama kategoria za ziada kwa gharama za kupanga:

Ukaguzi wa Kubecost wa kuokoa pesa kwenye Kubernetes kwenye clouds

Unaweza kupachika lebo zozote juu yao - rahisi ikiwa tayari una mfumo wako wa uwekaji lebo.

Pia hapo unaweza kubadilisha anwani ya sehemu ya mwisho ya API ambayo muundo wa gharama huunganishwa, rekebisha ukubwa wa punguzo katika GCP na uweke bei zako mwenyewe za rasilimali na sarafu ya kipimo chake (kwa sababu fulani kipengele hakiathiri Gharama ya Jumla).

Kubecost inaweza kuonyesha anuwai matatizo katika nguzo (na hata tahadhari ikiwa kuna hatari). Kwa bahati mbaya, chaguo haliwezi kusanidiwa, na kwa hivyo, ikiwa una mazingira ya watengenezaji na uyatumie, utaona kitu kama hiki kila wakati:

Ukaguzi wa Kubecost wa kuokoa pesa kwenye Kubernetes kwenye clouds

Chombo muhimu - Akiba ya Nguzo. Inapima shughuli za maganda (matumizi ya rasilimali, ikiwa ni pamoja na zile za mtandao), na pia huhesabu kiasi gani cha fedha na nini unaweza kuokoa.

Inaweza kuonekana kuwa vidokezo vya uboreshaji ni dhahiri kabisa, lakini uzoefu unapendekeza kwamba bado kuna kitu cha kuangalia. Hasa, shughuli za mtandao za maganda hufuatiliwa (Kubecost inapendekeza kulipa kipaumbele kwa zisizofanya kazi), kumbukumbu iliyoombwa na halisi na matumizi ya CPU inalinganishwa, pamoja na CPU inayotumiwa na nodi za nguzo (inapendekeza kuporomoka kwa nodi kadhaa kuwa moja), diski. mzigo na kadhaa ya kadhaa ya vigezo zaidi.

Kama ilivyo kwa suala lolote la uboreshaji, uboreshaji wa rasilimali kulingana na data ya Kubecost unahitaji: kutibu kwa tahadhari. Kwa mfano, Hifadhi ya Nguzo inapendekeza kufuta nodi, ikidai kuwa ni salama, lakini haizingatii uwepo wa vichaguzi vya nodi na uchafu kwenye maganda yaliyowekwa juu yao ambayo haipatikani kwenye nodi zingine. Na kwa ujumla, hata waandishi wa bidhaa katika zao makala ya hivi karibuni (kwa njia, inaweza kuwa muhimu sana kwa wale ambao wana nia ya mada ya mradi) inashauriwa si kukimbilia kwa kasi katika uboreshaji wa gharama, lakini kukabiliana na suala hilo kwa kufikiri.

Matokeo ya

Baada ya kutumia kubecost kwa mwezi mmoja kwenye miradi kadhaa, tunaweza kuhitimisha kuwa ni zana ya kuvutia (na pia ni rahisi kujifunza na kusakinisha) kwa ajili ya kuchambua na kuboresha gharama za huduma za watoa huduma za wingu zinazotumika kwa nguzo za Kubernetes. Hesabu zinageuka kuwa sahihi sana: katika majaribio yetu yaliendana na kile ambacho watoa huduma walihitaji.

Pia kuna kasoro kadhaa: kuna hitilafu zisizo muhimu, na katika sehemu zingine utendakazi hautoi mahitaji mahususi kwa baadhi ya miradi. Walakini, ikiwa unahitaji kuelewa haraka pesa zinakwenda na nini kinaweza "kukatwa" ili kupunguza mara kwa mara muswada wa huduma za wingu kwa 5-30% (hii ndio ilifanyika kwa upande wetu), hii ni chaguo nzuri. .

PS

Soma pia kwenye blogi yetu:

Chanzo: mapenzi.com

Kuongeza maoni