Kubecost-értékelés a felhőkben lévő Kubernetesen való pénzmegtakarításról

Kubecost-értékelés a felhőkben lévő Kubernetesen való pénzmegtakarításról

Jelenleg egyre több cég helyezi át infrastruktúráját hardveres szerverekről és saját virtuális gépeiről a felhőbe. Ez a megoldás könnyen magyarázható: nem kell aggódni a hardver miatt, a fürt könnyen konfigurálható sokféleképpen... és ami a legfontosabb, a meglévő technológiák (például a Kubernetes) lehetővé teszik a számítási teljesítmény egyszerű skálázását a terheléstől függően .

A pénzügyi szempont mindig fontos. Az ebben a cikkben tárgyalt eszköz célja, hogy segítsen csökkenteni a költségvetést a Kubernetes felhő-infrastruktúra használatakor.

Bevezetés

Kubecost egy kaliforniai startup a Google-tól, amely megoldást hoz létre a felhőszolgáltatások infrastrukturális költségeinek kiszámítására (Kubernetes klaszteren belül + megosztott erőforrások), keresi a szűk keresztmetszeteket a fürt beállításaiban, és megfelelő értesítéseket küld a Slacknek.

Vannak Kubernetes-ügyfeleink az ismert AWS- és GCP-felhőkben, illetve ritkábban a Linux-közösség számára az Azure-ban – általában a Kubecost által támogatott összes platformon. Egy részüknél mi magunk számoljuk ki a klaszteren belüli szolgáltatások költségeit (a Kubecost által használt módszerhez hasonló módszerrel), valamint figyeljük az infrastrukturális költségeket és igyekszünk optimalizálni azokat. Ezért logikus, hogy érdeklődtünk az ilyen feladatok automatizálásának lehetősége iránt.

A fő Kubecost-modul forráskódja a nyílt forráskódú licenc (Apache License 2.0) feltételei szerint nyitva áll. Szabadon használható, és a rendelkezésre álló funkcióknak elegendőnek kell lenniük kis projektekhez. Az üzlet azonban üzlet: a termék többi része le van zárva, használhatja fizetett előfizetések, ami egyben kereskedelmi támogatást is jelent. Emellett a szerzők ingyenes licencet kínálnak kis klaszterekhez (1 klaszter 10 csomóponttal - a cikk írása során ez a limit 20 csomópontra bővült), vagy 1 hónapos próbaidőszakot teljes kapacitással.

Hogyan működik minden

Tehát a Kubecost fő része az alkalmazás költség-modell, Go-ban írva. A teljes rendszert leíró Helm diagramot hívják költségelemző és a lényege egy költségmodell összeállítása Prometheusszal, Grafanával és számos műszerfallal.

Általánosságban elmondható, hogy a költségmodellnek saját webes felülete van, amely táblázatos formában grafikonokat és részletes költségstatisztikát, valamint természetesen költségoptimalizálási tippeket jelenít meg. A Grafana-ban bemutatott műszerfalak a Kubecost fejlesztésének egy korábbi szakaszát képezik, és nagyjából ugyanazokat az adatokat tartalmazzák, mint a költségmodell, kiegészítve azokat a szokásos statisztikával a CPU/memória/hálózat/lemezterület felhasználásáról a fürtben és összetevőiben. .

Hogyan működik a Kubecost?

  • A költségmodell a felhőszolgáltatók API-ján keresztül kapja meg a szolgáltatások árait.
  • Továbbá a csomópont vastípusától és a régiótól függően a csomópontonkénti költség kiszámításra kerül.
  • A csomópontok működtetésének költsége alapján minden egyes levéldoboz költséget kap óránként CPU-használatonként, gigabájtnyi memóriánként és óránként gigabájtnyi tárolt adatonként – attól függően, hogy melyik csomóponton fut, vagy a tároló osztályától függően.
  • Az egyes pod-ok üzemeltetési költsége alapján számítják ki a fizetést a névterekre, szolgáltatásokra, telepítésekre és StatefulSetekre.
  • A statisztikák kiszámítása a kube-state-metrics és a node-exporter által biztosított metrikák segítségével történik.

Fontos figyelembe venni, hogy a Kubecost alapértelmezés szerint csak a Kubernetesben elérhető erőforrásokat számolja. A fürtben nem szereplő külső adatbázisok, GitLab-kiszolgálók, S3-tárolók és egyéb szolgáltatások (még akkor sem, ha ugyanabban a felhőben találhatók) nem láthatók számára. Bár a GCP és az AWS esetében hozzáadhatja szolgáltatásfiókjainak kulcsait, és mindent együtt számíthat ki.

Telepítés

A Kubecost megköveteli:

  • Kubernetes 1.8 és újabb verzió;
  • kube-state-metrics;
  • Prométheusz;
  • csomópont-exportőr.

Történt, hogy klasztereinkben ezek a feltételek előre teljesültek, így kiderült, hogy elég csak a megfelelő végpontot megadni a Prometheus eléréséhez. A hivatalos kubecost Helm diagram azonban mindent tartalmaz, ami a csupasz klaszteren való futtatáshoz szükséges.

A Kubecost telepítésének többféle módja van:

  1. pontban leírt szabványos telepítési mód utasítás a fejlesztő webhelyén. Kötelező adja hozzá a költségelemző tárat a Helmhez, majd telepítse a diagramot. Nincs más hátra, mint továbbítani a portot, és manuálisan (kubectl-en keresztül) és/vagy a költségmodell webes felületén keresztül beállítani a kívánt állapotba a beállításokat.

    Ezt a módszert még nem is próbáltuk, mivel nem használunk harmadik féltől származó kész konfigurációkat, de jó „próbáld ki magad” opciónak tűnik. Ha a rendszerelemek egy része már telepítve van, vagy további finomhangolást szeretne, jobb, ha a második utat választja.

  2. Lényegében használd ugyanaz a diagram, de konfigurálja és telepítse saját maga bármilyen kényelmes módon.

    Mint már említettük, a kubecost mellett ez a diagram Grafana és Prometheus diagramokat is tartalmaz, amelyek tetszés szerint testreszabhatók.

    A diagramon elérhető values.yaml a költségelemző számára lehetővé teszi a következők konfigurálását:

    • a telepítendő költségelemző összetevők listája;
    • a Prometheus végpontja (ha már van ilyen);
    • tartományok és egyéb belépési beállítások a költségmodell és a Grafana számára;
    • megjegyzések hüvelyekhez;
    • állandó tároló használatának szükségessége és mérete.

    Az elérhető konfigurációs opciók teljes listája leírásokkal a következő helyen érhető el dokumentáció.

    Mivel a kubecost az alapverziójában nem korlátozhatja a hozzáférést, azonnal be kell állítania az alapvető hitelesítést a webpanelen.

  3. megállapítása csak a rendszermag - költség-modell. Ehhez telepítenie kell a Prometheust a klaszterbe, és meg kell adnia a cím megfelelő értékét a változóban. prometheusEndpoint Helm számára. Ezt követően - jelentkezzen YAML konfigurációk készlete a klaszterben.

    Ismét manuálisan kell hozzáadnia az Ingress-t az basic-auth segítségével. Végül hozzá kell adnia egy szakaszt a költségmodell-mutatók összegyűjtésére extraScrapeConfigs a Prometheus konfigurációban:

    - 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

Mit kapunk?

Teljes telepítéssel rendelkezésünkre áll a kubecost és a Grafana webpanel műszerfalkészlettel.

Összköltsége, amely a főképernyőn jelenik meg, valójában az erőforrások havi becsült költségét mutatja. Ez kiszámítható ár, amely tükrözi a klaszter használatának költségét (havonta) az erőforrás-felhasználás aktuális szintjén.

Ez a mérőszám inkább a költségek elemzésére és azok optimalizálására szolgál. Nem túl kényelmes megnézni az absztrakt július teljes költségét kubecostban: muszáj lesz menj a számlázáshoz. De láthatja a költségeket névterek, címkék és sorok szerinti bontásban 1/2/7/30/90 napra, amit a számlázás soha nem fog megmutatni.

Kubecost-értékelés a felhőkben lévő Kubernetesen való pénzmegtakarításról

Apropó címkéket. Azonnal menjen a beállításokhoz, és állítsa be a címkék nevét, amelyeket további kategóriákként fog használni a költségek csoportosításához:

Kubecost-értékelés a felhőkben lévő Kubernetesen való pénzmegtakarításról

Bármilyen címkét felakaszthat rájuk – kényelmes, ha már rendelkezik saját címkézőrendszerrel.

Ugyanitt módosíthatja annak az API-végpontnak a címét, amelyhez a költségmodell csatlakozik, módosíthatja a kedvezmény mértékét a GCP-ben, és saját árat állíthat be az erőforrásokhoz és a pénznemhez a mérésükhöz (valamilyen oknál fogva a funkció nem befolyásolja a teljes költséget).

A Kubecost sokféle képet mutathat problémák a klaszterben (sőt veszély esetén riaszt). Sajnos az opció nem konfigurálható, ezért ha vannak fejlesztői környezetei és használja őket, akkor folyamatosan valami ilyesmit fog látni:

Kubecost-értékelés a felhőkben lévő Kubernetesen való pénzmegtakarításról

Fontos eszköz - Klaszter megtakarítás. Méri a podok aktivitását (erőforrás-fogyasztást, beleértve a hálózatiakat is), és azt is kiszámolja, hogy mennyi pénzt és min spórolhatsz.

Úgy tűnhet, hogy az optimalizálási tippek elég kézenfekvőek, de a tapasztalatok azt mutatják, hogy van még mit nézni. Elsősorban a podok hálózati tevékenységét figyelik (a Kubecost az inaktívakra javasolja figyelni), összehasonlítja a kért és a tényleges memória- és CPU-fogyasztást, valamint a fürtcsomópontok által használt CPU-t (több csomópont összecsukását javasolja), lemezt terhelés és még pár tucat paraméter.

Mint minden optimalizálási probléma esetében, a Kubecost-adatokon alapuló erőforrások optimalizálásához a következőkre van szükség: óvatosan kezelje. A Cluster Savings például csomópontok törlését javasolja, azt állítva, hogy ez biztonságos, de nem veszi figyelembe a csomópontválasztók és a más csomópontokon nem elérhető szennyeződések jelenlétét a rájuk telepített podokban. És általában még a termék szerzői is saját magukban friss cikk (egyébként nagyon hasznos lehet azoknak, akiket érdekel a projekt témája) ajánlott nem kapkodni a költségoptimalizálással, hanem átgondoltan közelíteni a kérdéshez.

Eredményei

A kubecost egy hónapos használata után néhány projekten megállapíthatjuk, hogy érdekes (és könnyen megtanulható és telepíthető) eszköz a Kubernetes-fürtökhöz használt felhőszolgáltatók szolgáltatásai költségeinek elemzésére és optimalizálására. A számítások nagyon pontosnak bizonyulnak: kísérleteinkben egybeestek azzal, amit a szolgáltatók ténylegesen igényeltek.

Vannak árnyoldalai is: vannak nem kritikus hibák, és helyenként a funkcionalitás nem fedi le az egyes projektekre jellemző igényeket. Ha azonban gyorsan meg kell értenie, hová megy a pénz, és mit lehet „lefaragni” annak érdekében, hogy a felhőszolgáltatások számláját következetesen 5-30%-kal csökkentsük (a mi esetünkben ez történt), ez egy nagyszerű lehetőség .

PS

Olvassa el blogunkon is:

Forrás: will.com

Hozzászólás