Rishikimi i Kubecost për kursimin e parave në Kubernetes në re

Rishikimi i Kubecost për kursimin e parave në Kubernetes në re

Aktualisht, gjithnjë e më shumë kompani po transferojnë infrastrukturën e tyre nga serverët e harduerit dhe makinat e tyre virtuale në cloud. Kjo zgjidhje është e lehtë për t'u shpjeguar: nuk ka nevojë të shqetësoheni për harduerin, grupi konfigurohet lehtësisht në shumë mënyra të ndryshme ... dhe më e rëndësishmja, teknologjitë ekzistuese (si Kubernetes) bëjnë të mundur thjesht shkallëzimin e fuqisë llogaritëse në varësi të ngarkesës .

Aspekti financiar është gjithmonë i rëndësishëm. Mjeti i diskutuar në këtë artikull është krijuar për të ndihmuar në uljen e buxheteve kur përdorni infrastrukturën cloud me Kubernetes.

Paraqitje

Kubecost është një startup kalifornian nga Google, duke krijuar një zgjidhje për llogaritjen e kostove të infrastrukturës në shërbimet cloud (brenda një grupi Kubernetes + burime të përbashkëta), duke kërkuar për pengesa në cilësimet e grupeve dhe duke dërguar njoftime të përshtatshme te Slack.

Ne kemi klientë me Kubernetes si në retë e njohura AWS dhe GCP, dhe, më rrallë për komunitetin Linux, Azure - në përgjithësi, në të gjitha platformat e mbështetura nga Kubecost. Për disa prej tyre, ne llogarisim vetë kostot e shërbimeve brenda grupit (duke përdorur një metodë të ngjashme me atë të përdorur nga Kubecost), dhe gjithashtu monitorojmë kostot e infrastrukturës dhe përpiqemi t'i optimizojmë ato. Prandaj, është logjike që ne ishim të interesuar për mundësinë e automatizimit të detyrave të tilla.

Kodi burimor i modulit kryesor Kubecost është i hapur sipas kushteve të licencës me burim të hapur (Apache License 2.0). Mund të përdoret lirisht dhe veçoritë e disponueshme duhet të jenë të mjaftueshme për projekte të vogla. Sidoqoftë, biznesi është biznes: pjesa tjetër e produktit është e mbyllur, mund të përdoret nga abonimet me pagesë, që nënkupton edhe mbështetje komerciale. Përveç kësaj, autorët ofrojnë një licencë falas për grupe të vogla (1 grup me 10 nyje - gjatë shkrimit të këtij artikulli, ky kufi është zgjeruar në 20 nyje) ose një periudhë prove me aftësi të plota për 1 muaj.

Si funksionon gjithçka

Pra, pjesa kryesore e Kubecost është aplikacioni kosto-modeli, shkruar në Go. Një tabelë Helm që përshkruan të gjithë sistemin quhet analizues i kostos dhe në thelbin e tij është një montim nga një model me kosto me Prometheus, Grafana dhe disa tabela.

Në përgjithësi, modeli i kostos ka ndërfaqen e tij të internetit, e cila tregon grafikët dhe statistikat e detajuara mbi kostot në formë tabelare, si dhe, natyrisht, këshilla për optimizimin e kostove. Pultet e paraqitura në Grafana janë një fazë më e hershme në zhvillimin e Kubecost dhe përmbajnë pothuajse të njëjtat të dhëna si modeli i kostos, duke i plotësuar ato me statistikat e zakonshme mbi konsumin e CPU/memorjes/rrjetit/hapësirës së diskut në grup dhe përbërësit e tij. .

Si funksionon Kubecost?

  • Modeli i kostos merr çmimet për shërbimet përmes API-së së ofruesve të cloud.
  • Më tej, në varësi të llojit të hekurit të nyjës dhe rajonit, llogaritet kostoja për nyje.
  • Bazuar në koston e funksionimit të nyjeve, çdo grup fletësh merr një kosto për orë të përdorimit të CPU-së, për gigabajt memorie të konsumuar dhe për orë për gigabajt të dhënash të ruajtura - në varësi të nyjes në të cilën funksiononte ose klasës së ruajtjes.
  • Bazuar në koston e funksionimit të pods individuale, pagesa llogaritet për hapësirat e emrave, shërbimet, dislokimet, gjendjet.
  • Statistikat llogariten duke përdorur metrikat e ofruara nga kube-state-metrics dhe node-exporter.

Është e rëndësishme të merret parasysh se Kubecost si parazgjedhje numëron vetëm burimet e disponueshme në Kubernetes. Bazat e të dhënave të jashtme, serverët GitLab, depozitat S3 dhe shërbimet e tjera që nuk janë në grup (edhe nëse ndodhen në të njëjtën re) nuk janë të dukshme për të. Edhe pse për GCP dhe AWS mund të shtoni çelësat e llogarive tuaja të shërbimit dhe të llogaritni gjithçka së bashku.

Instalim

Kubecost kërkon:

  • Versioni i Kubernetes 1.8 dhe më i lartë;
  • kube-state-metrics;
  • Prometeu;
  • nyje-eksportues.

Kështu ndodhi që në grupimet tona të gjitha këto kushte plotësoheshin paraprakisht, kështu që rezultoi se mjaftonte vetëm të specifikonim pikën përfundimtare të saktë për hyrjen në Prometheus. Sidoqoftë, grafiku zyrtar i kubecost Helm përmban gjithçka që ju nevojitet për të kandiduar në një grup të zhveshur.

Ka disa mënyra për të instaluar Kubecost:

  1. Metoda standarde e instalimit e përshkruar në udhëzime Kërkohet në faqen e internetit të zhvilluesit shtoni depon e analizuesit të kostos në Helm dhe më pas instaloni grafikun. Gjithçka që mbetet është të përcillni portin tuaj dhe të rregulloni cilësimet në gjendjen e dëshiruar manualisht (nëpërmjet kubectl) dhe/ose duke përdorur ndërfaqen e internetit të modelit kosto.

    Ne as që e kemi provuar këtë metodë, pasi nuk përdorim konfigurime të gatshme të palëve të treta, por duket si një opsion i mirë "thjesht provojeni vetë". Nëse tashmë keni të instaluar disa nga komponentët e sistemit ose dëshironi më shumë akordim, është më mirë të merrni parasysh rrugën e dytë.

  2. Përdorni në thelb e njëjta tabelë, por konfiguroni dhe instaloni vetë në çdo mënyrë të përshtatshme.

    Siç u përmend tashmë, përveç vetë kubecost-it, ky grafik përmban grafikët Grafana dhe Prometheus, të cilat gjithashtu mund të personalizohen sipas dëshirës.

    E disponueshme në grafik values.yaml për analizuesin e kostos ju lejon të konfiguroni:

    • një listë e komponentëve të analizuesit të kostos që duhet të vendosen;
    • pika juaj përfundimtare për Prometheun (nëse e keni tashmë një të tillë);
    • domenet dhe cilësimet e tjera të hyrjes për modelin e kostos dhe Grafana;
    • shënime për pods;
    • nevoja për të përdorur ruajtje të përhershme dhe madhësia e saj.

    Një listë e plotë e opsioneve të disponueshme të konfigurimit me përshkrime është në dispozicion në dokumentacionin.

    Meqenëse kubecost në versionin e tij bazë nuk mund të kufizojë aksesin, do t'ju duhet të konfiguroni menjëherë bazën-auth për panelin e uebit.

  3. vendos vetëm thelbi i sistemit - modeli i kostos. Për ta bërë këtë, duhet të keni Prometheus të instaluar në grup dhe të specifikoni vlerën përkatëse të adresës së tij në variabël prometheusEndpoint për Helmin. Pas kësaj - aplikoni grup i konfigurimeve YAML në grup.

    Përsëri, do të duhet të shtoni manualisht Ingress me bazë-auth. Së fundi, do t'ju duhet të shtoni një seksion për mbledhjen e matjeve të modelit të kostos extraScrapeConfigs në konfigurimin e 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

Çfarë marrim?

Me një instalim të plotë kemi në dispozicion panelin ueb kubecost dhe Grafana me një set panelesh.

Kostoja totale, i shfaqur në ekranin kryesor, në fakt tregon koston e parashikuar të burimeve për muajin. Kjo projektuar çmimi që pasqyron koston e përdorimit të grupit (në muaj) në nivelin aktual të konsumit të burimeve.

Kjo metrikë është më shumë për analizimin e shpenzimeve dhe optimizimin e tyre. Nuk është shumë e përshtatshme të shikosh kostot totale për korrikun abstrakt në kubecost: do të duhet të shkoni te faturimi. Por ju mund të shihni kostot të ndara sipas hapësirave të emrave, etiketave, grupeve për 1/2/7/30/90 ditë, të cilat faturimi nuk do t'ju tregojë kurrë.

Rishikimi i Kubecost për kursimin e parave në Kubernetes në re

Duke folur për etiketat. Duhet të shkoni menjëherë te cilësimet dhe të vendosni emrat e etiketave që do të përdoren si kategori shtesë për grupimin e kostove:

Rishikimi i Kubecost për kursimin e parave në Kubernetes në re

Mund të varni mbi to çdo etiketë - i përshtatshëm nëse tashmë keni sistemin tuaj të etiketimit.

Gjithashtu aty mund të ndryshoni adresën e pikës fundore të API-së me të cilën lidhet modeli i kostos, të rregulloni madhësinë e zbritjes në GCP dhe të vendosni çmimet tuaja për burimet dhe monedhën për matjen e tyre (për disa arsye, veçoria nuk ndikon në koston totale).

Kubecost mund të tregojë të ndryshme problemet në grup (dhe madje vigjilent në rast rreziku). Fatkeqësisht, opsioni nuk është i konfigurueshëm, dhe për këtë arsye, nëse keni mjedise për zhvilluesit dhe i përdorni ato, do të shihni vazhdimisht diçka të tillë:

Rishikimi i Kubecost për kursimin e parave në Kubernetes në re

Një mjet i rëndësishëm - Kursimet në grup. Ai mat aktivitetin e pods (konsumi i burimeve, duke përfshirë ato të rrjetit), dhe gjithashtu llogarit se sa para dhe çfarë mund të kurseni.

Mund të duket se këshillat e optimizimit janë mjaft të dukshme, por përvoja sugjeron se ka ende diçka për të parë. Në veçanti, monitorohet aktiviteti i rrjetit të pods (Kubecost sugjeron t'u kushtohet vëmendje atyre joaktive), krahasohet memoria e kërkuar dhe ajo aktuale dhe konsumi i CPU-së, si dhe CPU-ja e përdorur nga nyjet e grupit (sugjeron kolapsin e disa nyjeve në një), disku ngarkesa dhe disa duzina parametra të tjerë.

Ashtu si me çdo çështje optimizimi, optimizimi i burimeve bazuar në të dhënat e Kubecost kërkon: trajtojeni me kujdes. Për shembull, Cluster Savings sugjeron fshirjen e nyjeve, duke pretenduar se është e sigurt, por nuk merr parasysh praninë e përzgjedhësve të nyjeve dhe njollave të vendosura në to që nuk janë të disponueshme në nyjet e tjera. Dhe në përgjithësi, edhe autorët e produktit në tyre artikulli i fundit (nga rruga, mund të jetë shumë e dobishme për ata që janë të interesuar për temën e projektit) rekomandohet të mos nxitoni me kokë në optimizimin e kostos, por t'i qaseni çështjes me kujdes.

Rezultatet e

Pas përdorimit të kubecost për një muaj në disa projekte, mund të konkludojmë se ky është një mjet interesant (dhe gjithashtu i lehtë për t'u mësuar dhe instaluar) për analizimin dhe optimizimin e kostove për shërbimet e ofruesve të cloud të përdorur për grupimet Kubernetes. Llogaritjet rezultojnë të jenë shumë të sakta: në eksperimentet tona ato përkonin me atë që kërkuan në të vërtetë ofruesit.

Ka edhe disa anë negative: ka gabime jo kritike, dhe në disa vende funksionaliteti nuk mbulon nevojat specifike për disa projekte. Sidoqoftë, nëse duhet të kuptoni shpejt se ku po shkojnë paratë dhe çfarë mund të "prerë" në mënyrë që të zvogëloni vazhdimisht faturën për shërbimet cloud me 5-30% (kjo është ajo që ndodhi në rastin tonë), ky është një opsion i shkëlqyeshëm .

PS

Lexoni edhe në blogun tonë:

Burimi: www.habr.com

Shto një koment