Kubecost-en berrikuspena Kubernetes-en hodeietan dirua aurrezteko

Kubecost-en berrikuspena Kubernetes-en hodeietan dirua aurrezteko

Gaur egun, gero eta enpresa gehiago ari dira beren azpiegitura hardware zerbitzarietatik eta beren makina birtualetatik transferitzen hodeira. Irtenbide hau erraz azaltzen da: ez dago hardwareaz kezkatu beharrik, klusterra erraz konfiguratzen da hainbat modutara... eta garrantzitsuena, dauden teknologiek (Kubernetes adibidez) kargaren arabera konputazio-potentzia besterik gabe eskalatzea ahalbidetzen dute. .

Finantza alderdia beti da garrantzitsua. Artikulu honetan eztabaidatzen den tresna Kubernetes-ekin hodeiko azpiegiturak erabiltzen dituzunean aurrekontuak murrizten laguntzeko diseinatuta dago.

Sarrera

Kubecost Google-ko startup kaliforniarra da, hodeiko zerbitzuetan azpiegitura-kostuak kalkulatzeko irtenbide bat sortzen du (Kubernetes kluster baten barruan + baliabide partekatuetan), klusterren ezarpenetan botila-lepoak bilatzeko eta Slack-era jakinarazpen egokiak bidaltzeko.

Kubernetesekin bezeroak ditugu bai AWS eta GCP hodei ezagunetan, eta, gutxitan, Linux komunitatearentzat, Azure, oro har, Kubecost-ek onartzen dituen plataforma guztietan. Horietako batzuentzat, guk geuk kalkulatzen ditugu kluster barruko zerbitzuen kostuak (Kubecost-ek erabiltzen duenaren antzeko metodoa erabiliz), eta azpiegitura kostuak kontrolatzen ditugu eta horiek optimizatzen saiatzen gara. Hori dela eta, logikoa da horrelako zereginak automatizatzeko aukera interesatzen zitzaigula.

Kubecost modulu nagusiaren iturburu-kodea irekita dago Open Source lizentziaren baldintzen arabera (Apache License 2.0). Aske erabil daiteke eta eskuragarri dauden ezaugarriek nahikoa izan behar dute proiektu txikietarako. Hala ere, negozioa negozioa da: gainerako produktua itxita dago, erabil dezake ordaindutako harpidetzak, eta horrek laguntza komertziala ere suposatzen du. Horrez gain, egileek doako lizentzia eskaintzen dute kluster txikietarako (1 nodo dituen kluster 10 - artikulu hau idazten ari den bitartean, muga hori 20 nodotara zabaldu da) edo gaitasun osoko proba-epea hilabete 1erako.

Dena nola funtzionatzen duen

Beraz, Kubecost-en zati nagusia aplikazioa da kostu-eredua, Go-n idatzia. Sistema osoa deskribatzen duen Helm diagrama deitzen da kostu-analisia eta bere oinarrian kostu-eredu bateko muntaia dago Prometheus, Grafana eta hainbat aginte-panelekin.

Oro har, kostu-ereduak bere web-interfazea du, eta kostuei buruzko grafikoak eta estatistika zehatzak erakusten ditu taula formatuan, baita, noski, kostuak optimizatzeko aholkuak ere. Grafanan aurkezten diren aginte-panelak Kubecost-en garapenaren aurreko fasea dira eta kostu-ereduaren datu berberak dituzte, CPU/memoria/sare/disko-espazioaren kontsumoari eta bere osagaiei buruzko ohiko estatistikekin osatuz. .

Nola funtzionatzen du Kubecost-ek?

  • Cost-model-ek zerbitzuen prezioak jasotzen ditu hodeiko hornitzaileen APIaren bidez.
  • Gainera, nodoaren burdin motaren eta eskualdearen arabera, nodo bakoitzeko kostua kalkulatzen da.
  • Nodoak exekutatzeko kostuaren arabera, hosto-pod bakoitzak PUZaren erabilera ordu bakoitzeko, kontsumitutako memoria gigabyte bakoitzeko eta gordetako datuen gigabyte bakoitzeko kostua lortzen du, exekutatzen ari zen nodoaren edo biltegiratze klasearen arabera.
  • Banakako pods ustiatzearen kostuaren arabera, ordainketa izen-espazioetarako, zerbitzuetarako, Inplementazioetarako, StatefulSets-etarako kalkulatzen da.
  • Estatistikak kube-state-metrics eta node-exporter-ek emandako metrika erabiliz kalkulatzen dira.

Garrantzitsua da kontuan hartzea Kubecost hori lehenespenez, Kubernetes-en dauden baliabideak soilik zenbatzen ditu. Kanpoko datu-baseak, GitLab zerbitzariak, S3 biltegiak eta klusterrean ez dauden beste zerbitzu batzuk (nahiz eta hodei berean egon) ez ditu ikusgai. GCP eta AWSrako zure zerbitzu-kontuen gakoak gehi ditzakezun eta dena batera kalkulatu dezakezun arren.

Instalazio-

Kubecost-ek:

  • Kubernetes 1.8 bertsioa eta berriagoa;
  • kube-state-metrics;
  • Prometeo;
  • nodo-esportatzailea.

Gertatu zen gure klusterretan baldintza horiek guztiak aldez aurretik betetzen zirela, beraz, nahikoa zela Prometheus-era sartzeko amaiera-puntu zuzena zehaztea. Hala ere, kubecost Helm taula ofizialak kluster huts batean exekutatzeko behar duzun guztia dauka.

Kubecost instalatzeko hainbat modu daude:

  1. atalean deskribatutako instalazio-metodo estandarra argibideak Garatzailearen webgunean Beharrezkoa Gehitu kostu-analisiaren biltegia Helm-en eta, ondoren, instalatu diagrama. Geratzen dena da zure ataka birbidaltzea eta ezarpenak nahi duzun egoerara doitzea eskuz (kubectl bidez) eta/edo kostu-ereduaren web interfazea erabiliz.

    Ez dugu metodo hau probatu ere egin, ez baititugu hirugarrenen prest egindako konfiguraziorik erabiltzen, baina "saiatu zeure burua" aukera ona dirudi. Dagoeneko sistemaren osagai batzuk instalatuta badituzu edo doikuntza gehiago nahi badituzu, hobe da bigarren bidea kontuan hartzea.

  2. Erabili funtsean taula bera, baina zuk zeuk konfiguratu eta instalatu edozein modu erosoan.

    Esan bezala, kubecost beraz gain, grafiko honek Grafana eta Prometheus grafikoak ditu, eta horiek ere nahi bezala pertsonaliza daitezke.

    Taulan eskuragarri values.yaml kostu-analizatzaileak konfiguratzeko aukera ematen du:

    • zabaldu behar diren kostu-analisiaren osagaien zerrenda;
    • Prometheus-erako zure amaierako puntua (dagoeneko bat baduzu);
    • domeinuak eta beste sarrera ezarpenak kostu-eredurako eta Grafanarako;
    • leketarako oharrak;
    • biltegiratze iraunkorra erabili beharra eta haren tamaina.

    Eskuragarri dauden konfigurazio aukeren zerrenda osoa deskribapenekin eskuragarri dago dokumentazioa.

    Kubecost-ek oinarrizko bertsioan sarbidea mugatu ezin duenez, berehala konfiguratu beharko duzu web panelerako oinarrizko autentifikazioa.

  3. ezarri sistemaren muina bakarrik - kostu-eredua. Horretarako, Prometheus instalatuta eduki behar duzu klusterrean eta bere helbideari dagokion balioa zehaztu aldagaian. prometheusEndpoint Helmentzat. Horren ondoren - aplikatu YAML konfigurazio multzoa multzoan.

    Berriz ere, Ingress eskuz gehitu beharko duzu basic-auth-ekin. Azkenik, kostu-ereduaren neurketak biltzeko atal bat gehitu beharko duzu extraScrapeConfigs Prometheus konfigurazioan:

    - 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

Zer lortzen dugu?

Instalazio osoarekin, kubecost eta Grafana web panela eskura ditugu aginte multzo batekin.

Kostu osoa, pantaila nagusian bistaratzen dena, benetan hilabeteko baliabideen kostu estimatua erakusten du. Hau proiektatuta kluster erabiltzearen kostua islatzen duen prezioa (hilean) baliabideen kontsumoaren egungo mailan.

Neurri hau gastuak aztertzeko eta optimizatzeko gehiago da. Ez da oso erosoa uztaileko abstraktuko kostuak kubecost-en ikustea: hau egin beharko duzu fakturaziora joan. Baina 1/2/7/30/90 egunetako kostuak izen-espazioen, etiketen eta leken arabera banatuta ikus ditzakezu, fakturazioak inoiz erakutsiko ez dizkizugun.

Kubecost-en berrikuspena Kubernetes-en hodeietan dirua aurrezteko

Hizketan etiketak. Berehala joan beharko zenuke ezarpenetara eta kostuak taldekatzeko kategoria gehigarri gisa erabiliko diren etiketen izenak ezarri:

Kubecost-en berrikuspena Kubernetes-en hodeietan dirua aurrezteko

Edozein etiketa zintzilikatu ditzakezu, erosoa dagoeneko zure etiketa sistema propioa baduzu.

Gainera, kostu-eredua konektatzen den API amaierako helbidea alda dezakezu, GCP-n deskontu-tamaina egokitu eta baliabideen eta dibisaren prezioak ezar ditzakezu haien neurtzeko (arrazoiren batengatik eginbideak ez du kostu osoa eragiten).

Kubecost-ek hainbat erakuts ditzake klusterrean arazoak (eta baita erne arriskurik izanez gero). Zoritxarrez, aukera ez da konfiguragarria, eta, beraz, garatzaileentzako inguruneak badituzu eta haiek erabiltzen badituzu, etengabe ikusiko duzu horrelako zerbait:

Kubecost-en berrikuspena Kubernetes-en hodeietan dirua aurrezteko

Tresna garrantzitsu bat - Kluster Aurrezkia. Poden jarduera neurtzen du (baliabideen kontsumoa, sarekoak barne), eta zenbat diru eta zertan aurreztu dezakezun ere kalkulatzen du.

Badirudi optimizazio-aholkuak nahiko agerikoak direla, baina esperientziak iradokitzen du oraindik badagoela zer ikusirik. Bereziki, poden sareko jarduera kontrolatzen da (Kubecost-ek inaktiboei arreta jartzea iradokitzen du), eskatutako eta benetako memoria eta PUZaren kontsumoa alderatzen dira, baita cluster-nodoek erabiltzen duten PUZa ere (hainbat nodo bakarrean tolestea iradokitzen du), diskoa. karga eta dozena pare bat parametro gehiago.

Optimizazio-arazo guztietan bezala, Kubecost-en datuetan oinarritutako baliabideak optimizatzeko beharrezkoa da: kontu handiz tratatu. Esaterako, Cluster Savings-ek nodoak ezabatzea iradokitzen du, segurua dela esanez, baina ez ditu kontuan hartzen beste nodoetan erabilgarri ez dauden nodo-hautatzaileak eta haietan zabaldutako kutsadurak. Eta, oro har, baita produktuaren egileak ere beren azken artikulua (bide batez, proiektuaren gaian interesa dutenentzat oso erabilgarria izan daiteke) kostuen optimizazioan buru-belarri ez egitea gomendatzen da, baina gaiari pentsakor heltzea.

Emaitzak

Kubecost pare bat proiektutan hilabetez erabili ostean, Kubernetes klusteretarako erabiltzen diren hodeiko hornitzaileen zerbitzuen kostuak aztertzeko eta optimizatzeko tresna interesgarria (eta ikasteko eta instalatzeko erraza ere bada) ondoriozta dezakegu. Kalkuluak oso zehatzak dira: gure esperimentuetan hornitzaileek benetan eskatzen zutenarekin bat egin zuten.

Alde txar batzuk ere badaude: akats ez-kritikoak daude, eta zenbait lekutan funtzionaltasunak ez ditu proiektu batzuen berariazko beharrak estaltzen. Hala ere, dirua nora doan eta zer "moztu" daitekeen azkar ulertu behar baduzu hodeiko zerbitzuen faktura % 5-30ean murrizteko (hau da gure kasuan gertatu zena), aukera bikaina da hau. .

PS

Irakurri ere gure blogean:

Iturria: www.habr.com

Gehitu iruzkin berria