Kubecosti ülevaade Kubernetes pilvedes raha säästmiseks

Kubecosti ülevaade Kubernetes pilvedes raha säästmiseks

Praegu on üha enam ettevõtteid viimas oma infrastruktuuri riistvaraserveritelt ja oma virtuaalmasinatelt pilve. Seda lahendust on lihtne seletada: pole vaja muretseda riistvara pärast, klastrit on lihtne mitmel erineval viisil konfigureerida... ja mis kõige tähtsam, olemasolevad tehnoloogiad (nagu Kubernetes) võimaldavad arvutusvõimsust lihtsalt skaleerida sõltuvalt koormusest .

Rahaline aspekt on alati oluline. Selles artiklis käsitletav tööriist on mõeldud Kubernetesiga pilveinfrastruktuuri kasutamisel eelarvete vähendamiseks.

Sissejuhatus

Kubecost on Google'i California startup, kes loob lahenduse pilveteenustes (Kubernetese klastri piires + jagatud ressursid) infrastruktuuri kulude arvutamiseks, klastri seadistuste kitsaskohtade otsimiseks ja vastavate teadete saatmiseks Slackile.

Meil on Kubernetesiga kliente nii tuttavates AWS-i ja GCP-pilvedes kui ka Linuxi kogukonna jaoks harvemini Azure'is – üldiselt kõigil Kubecosti toetatud platvormidel. Osade puhul arvutame ise (Kubecostiga sarnasel meetodil) klastrisiseste teenuste kulud ning jälgime ka taristukulusid ja püüame neid optimeerida. Seetõttu on loogiline, et meid huvitas selliste ülesannete automatiseerimise võimalus.

Kubecosti põhimooduli lähtekood on avatud avatud lähtekoodiga litsentsi (Apache License 2.0) tingimustel. Seda saab vabalt kasutada ja saadaolevatest funktsioonidest peaks piisama väikeste projektide jaoks. Äri on aga äri: ülejäänud toode on suletud, seda saab kasutada tasulised tellimused, mis tähendab ka ärilist toetust. Lisaks pakuvad autorid tasuta litsentsi väikestele klastritele (1 klaster 10 sõlmega – selle artikli kirjutamise ajal on see limiit laienenud 20 sõlmeni) või täisvõimalustega prooviperioodi 1 kuuks.

Kuidas kõik toimib

Niisiis on Kubecosti põhiosa rakendus kulumudel, kirjutatud Go. Helm diagrammi, mis kirjeldab kogu süsteemi nimetatakse kuluanalüsaator ja selle keskmes on kulumudeli koost Prometheuse, Grafana ja mitme armatuurlauaga.

Üldiselt on kulumudelil oma veebiliides, mis näitab tabelina graafikuid ja üksikasjalikku kulude statistikat, aga ka loomulikult näpunäiteid kulude optimeerimiseks. Grafanas esitatud armatuurlauad on Kubecosti arendamise varasem etapp ja sisaldavad palju samu andmeid, mis kulumudel, täiendades neid tavapärase CPU/mälu/võrgu/kettaruumi tarbimise statistikaga klastris ja selle komponentides. .

Kuidas Kubecost töötab?

  • Kulumudel saab teenuste hinnad pilvepakkujate API kaudu.
  • Lisaks arvutatakse sõltuvalt sõlme raua tüübist ja piirkonnast maksumus sõlme kohta.
  • Sõlmede käitamise maksumuse põhjal saab iga lehehoidla kulu protsessori kasutustunni, tarbitud mälu gigabaidi ja salvestatud andmete gigabaidi kohta tunni kohta – olenevalt sõlmest, milles see töötas, või salvestusklassist.
  • Üksikute kaustade käitamise kulude põhjal arvutatakse makse nimeruumide, teenuste, juurutuste ja StatefulSetsi eest.
  • Statistika arvutatakse kube-state-metrics ja node-exporteri pakutavate mõõdikute abil.

Oluline on arvestada, et Kubecost vaikimisi loendab ainult Kubernetes saadaolevaid ressursse. Välised andmebaasid, GitLabi serverid, S3 salvestusruumid ja muud teenused, mis ei ole klastris (isegi kui asuvad samas pilves), pole sellele nähtavad. Kuigi GCP ja AWS-i jaoks saate lisada oma teenusekontode võtmed ja arvutada kõik koos.

Paigaldamine

Kubecost nõuab:

  • Kubernetes versioon 1.8 ja uuem;
  • kube-oleku-meetrika;
  • Prometheus;
  • sõlme-eksportija.

Juhtus nii, et meie klastrites olid kõik need tingimused eelnevalt täidetud, nii et selgus, et Prometheusele juurdepääsuks piisab vaid õige lõpp-punkti määramisest. Kubecost Helmi ametlik diagramm sisaldab aga kõike, mida vajate tühjal kobaral töötamiseks.

Kubecosti installimiseks on mitu võimalust:

  1. Standardne paigaldusmeetod, mida on kirjeldatud punktis juhiseid arendaja veebisaidil. Nõutav lisage Helmi kuluanalüsaatori hoidla ja installige seejärel diagramm. Jääb üle vaid oma port edastada ja seadistused soovitud olekusse käsitsi (kubectli kaudu) ja/või kulumudeli veebiliidese abil kohandada.

    Me pole seda meetodit isegi proovinud, kuna me ei kasuta kolmanda osapoole valmiskonfiguratsioone, kuid see tundub olevat hea valik "lihtsalt proovige ise". Kui teil on mõned süsteemikomponendid juba installitud või soovite rohkem peenhäälestust, on parem kaaluda teist teed.

  2. Kasutage sisuliselt sama graafik, kuid konfigureerige ja installige see ise mis tahes mugaval viisil.

    Nagu juba mainitud, sisaldab see diagramm lisaks kubecostile endale Grafana ja Prometheuse graafikuid, mida saab ka vastavalt soovile kohandada.

    Saadaval diagrammil values.yaml kuluanalüsaatori jaoks võimaldab teil konfigureerida:

    • kuluanalüsaatori komponentide loend, mida tuleb kasutusele võtta;
    • teie Prometheuse lõpp-punkt (kui teil see juba on);
    • kulumudeli ja Grafana domeenid ja muud sisestusseaded;
    • kaunade annotatsioonid;
    • püsihoidla kasutamise vajadus ja selle suurus.

    Saadaolevate konfiguratsioonivalikute täielik loetelu koos kirjeldustega on saadaval aadressil dokumentatsioon.

    Kuna kubecost oma põhiversioonis ei saa juurdepääsu piirata, peate veebipaneeli jaoks kohe konfigureerima põhiautentimise.

  3. Installi ainult süsteemi tuum - kulumudel. Selleks peab sul olema klastris installitud Prometheus ja määrata muutujas selle aadressi vastav väärtus prometheusEndpoint Helmi jaoks. Pärast seda - taotleda YAML-i konfiguratsioonide komplekt klastris.

    Jällegi peate Ingressi käsitsi lisama põhiautentimisega. Lõpuks peate lisama jaotise kulumudeli mõõdikute kogumiseks extraScrapeConfigs Prometheuse konfiguratsioonis:

    - 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

Mida me saame?

Täieliku paigaldusega on meie käsutuses kubecost ja Grafana veebipaneel koos armatuurlaudade komplektiga.

Kogumaksumus, mis kuvatakse põhiekraanil, näitab tegelikult kuu hinnangulist ressursside maksumust. See prognoositud hind, mis kajastab klastri kasutamise maksumust (kuus) ressursitarbimise hetketasemel.

See mõõdik on rohkem kulude analüüsimiseks ja nende optimeerimiseks. Abstraktse juulikuu kogukulusid kubecostis pole eriti mugav vaadata: peate seda tegema mine arveldusse. Kuid näete kulusid nimeruumide, siltide ja kaustade kaupa 1/2/7/30/90 päeva kohta, mida arveldamine teile kunagi ei näita.

Kubecosti ülevaade Kubernetes pilvedes raha säästmiseks

Rääkides sildid. Peaksite kohe minema seadetesse ja määrama siltide nimed, mida kasutatakse kulude rühmitamise lisakategooriatena:

Kubecosti ülevaade Kubernetes pilvedes raha säästmiseks

Saate neile riputada mis tahes silte – mugav, kui teil on juba oma märgistussüsteem.

Samuti saate seal muuta API lõpp-punkti aadressi, millega kulumudel ühendub, reguleerida allahindluse suurust GCP-s ja määrata nende mõõtmiseks oma ressursside hinnad ja valuuta (millegipärast see funktsioon kogukulu ei mõjuta).

Kubecost võib näidata erinevaid probleeme klastris (ja isegi hoiatus ohu korral). Kahjuks pole see valik konfigureeritav ja seetõttu, kui teil on arendajatele mõeldud keskkondi ja neid kasutate, näete pidevalt midagi sellist:

Kubecosti ülevaade Kubernetes pilvedes raha säästmiseks

Oluline tööriist - Klastri kokkuhoid. See mõõdab kaunade aktiivsust (ressursitarbimist, sealhulgas võrguressursse) ning arvutab ka, kui palju raha ja mille pealt saate säästa.

Võib tunduda, et optimeerimisnõuanded on üsna ilmsed, kuid kogemused näitavad, et midagi on siiski vaadata. Eelkõige jälgitakse kaunade võrguaktiivsust (Kubecost soovitab pöörata tähelepanu mitteaktiivsetele), võrreldakse küsitud ja tegelikku mälu ja CPU tarbimist, samuti klastri sõlmede poolt kasutatavat CPU-d (soovitab mitme sõlme kokkuvarisemist üheks), ketast. koormus ja veel paarkümmend parameetrit.

Nagu iga optimeerimisprobleemi puhul, nõuab Kubecosti andmetel põhinevate ressursside optimeerimine järgmist: kohtlema ettevaatusega. Näiteks Cluster Savings soovitab sõlmed kustutada, väites, et see on ohutu, kuid ei võta arvesse sõlmede selektoreid ega rikkumisi nendele paigaldatud kaustades, mis pole teistes sõlmedes saadaval. Ja üldiselt isegi toote autorid oma hiljutine artikkel (muide, see võib projekti teemast huvitatuile vägagi kasulik olla) soovitatakse mitte ülepeakaela kulude optimeerimisega kiirustada, vaid läheneda küsimusele läbimõeldult.

Tulemused

Pärast kuuajalist kubecosti kasutamist paaris projektis võime järeldada, et see on huvitav (ja ka hõlpsasti õpitav ja installitav) tööriist Kubernetese klastrite jaoks kasutatavate pilvepakkujate teenuste kulude analüüsimiseks ja optimeerimiseks. Arvutused osutusid väga täpseks: meie katsetes langesid need kokku sellega, mida pakkujad tegelikult nõudsid.

On ka miinuseid: esineb mittekriitilisi vigu ning kohati ei kata funktsionaalsus mõne projekti spetsiifilisi vajadusi. Kui aga on vaja kiiresti aru saada, kuhu raha liigub ja mida saab “kärpida”, et pilveteenuste arvet järjepidevalt 5-30% vähendada (nii juhtus meie puhul), on see suurepärane võimalus .

PS

Loe ka meie blogist:

Allikas: www.habr.com

Lisa kommentaar