Atunyẹwo Kubecost fun fifipamọ owo lori Kubernetes ninu awọn awọsanma

Atunyẹwo Kubecost fun fifipamọ owo lori Kubernetes ninu awọn awọsanma

Lọwọlọwọ, awọn ile-iṣẹ diẹ sii ati siwaju sii n gbe awọn amayederun wọn lati awọn olupin ohun elo ati awọn ẹrọ foju ara wọn si awọsanma. Ojutu yii rọrun lati ṣalaye: ko si iwulo lati ṣe aniyan nipa ohun elo, iṣupọ naa ni irọrun tunto ni ọpọlọpọ awọn ọna oriṣiriṣi… ati ni pataki julọ, awọn imọ-ẹrọ ti o wa tẹlẹ (bii Kubernetes) jẹ ki o ṣee ṣe lati ṣe iwọn agbara iširo ni irọrun da lori fifuye naa. .

Awọn owo aspect jẹ nigbagbogbo pataki. Ọpa ti a jiroro ninu nkan yii jẹ apẹrẹ lati ṣe iranlọwọ lati dinku awọn inawo nigba lilo awọn amayederun awọsanma pẹlu Kubernetes.

Ifihan

Kubecost jẹ ibẹrẹ Californian lati Google, ṣiṣẹda ojutu kan fun iṣiro awọn idiyele amayederun ni awọn iṣẹ awọsanma (laarin iṣupọ Kubernetes + awọn orisun pinpin), wiwa awọn igo ni awọn eto iṣupọ ati fifiranṣẹ awọn iwifunni ti o yẹ si Slack.

A ni awọn alabara pẹlu Kubernetes mejeeji ni AWS ti o faramọ ati awọn awọsanma GCP, ati, diẹ sii ṣọwọn fun agbegbe Linux, Azure - ni gbogbogbo, lori gbogbo awọn iru ẹrọ ni atilẹyin nipasẹ Kubecost. Fun diẹ ninu wọn, a ṣe iṣiro awọn idiyele ti awọn iṣẹ inu iṣupọ funrara wa (lilo ọna ti o jọra ti Kubecost lo), ati tun ṣe atẹle awọn idiyele amayederun ati gbiyanju lati mu wọn dara si. Nitorinaa, o jẹ ọgbọn pe a nifẹ si iṣeeṣe ti adaṣe adaṣe iru awọn iṣẹ ṣiṣe.

Koodu orisun ti module Kubecost akọkọ wa ni sisi labẹ awọn ofin ti iwe-aṣẹ Orisun Orisun (Iwe-aṣẹ Apache 2.0). O le ṣee lo larọwọto ati awọn ẹya ti o wa yẹ ki o to fun awọn iṣẹ akanṣe kekere. Sibẹsibẹ, iṣowo jẹ iṣowo: iyoku ọja naa ti wa ni pipade, o le ṣee lo nipasẹ san alabapin, eyiti o tun tumọ si atilẹyin iṣowo. Ni afikun, awọn onkọwe nfunni ni iwe-aṣẹ ọfẹ fun awọn iṣupọ kekere (iṣupọ 1 pẹlu awọn apa 10 - lakoko kikọ nkan yii, opin yii ti gbooro si awọn apa 20) tabi akoko idanwo pẹlu awọn agbara kikun fun oṣu 1.

Bawo ni ohun gbogbo ṣe n ṣiṣẹ

Nitorinaa, apakan akọkọ ti Kubecost jẹ ohun elo naa iye owo-awoṣe, ti a kọ sinu Go. A Helm chart ti o se apejuwe gbogbo eto ni a npe ni iye owo atunnkanka ati ni ipilẹ rẹ jẹ apejọ kan lati awoṣe idiyele-iye pẹlu Prometheus, Grafana ati ọpọlọpọ awọn dashboards.

Ni gbogbogbo, awoṣe idiyele ni wiwo oju opo wẹẹbu tirẹ, eyiti o ṣafihan awọn aworan ati awọn iṣiro alaye lori awọn idiyele ni fọọmu tabular, ati, nitorinaa, awọn imọran fun imudara awọn idiyele. Awọn dasibodu ti a gbekalẹ ni Grafana jẹ ipele iṣaaju ninu idagbasoke Kubecost ati pe o ni ọpọlọpọ data kanna gẹgẹbi awoṣe idiyele, ni afikun wọn pẹlu awọn iṣiro deede lori agbara Sipiyu / iranti / nẹtiwọọki / aaye disk ninu iṣupọ ati awọn paati rẹ. .

Bawo ni Kubecost ṣiṣẹ?

  • Awoṣe-owo gba awọn idiyele fun awọn iṣẹ nipasẹ API ti awọn olupese awọsanma.
  • Siwaju sii, da lori iru irin ti oju ipade ati agbegbe, iye owo fun ipade jẹ iṣiro.
  • Da lori idiyele ti awọn apa ṣiṣiṣẹ, adarọ ese kọọkan gba idiyele fun wakati kan ti lilo Sipiyu, fun gigabyte ti iranti ti o jẹ, ati fun wakati kan fun gigabyte ti data ti o fipamọ - da lori ipade ti o nṣiṣẹ lori tabi kilasi ibi ipamọ.
  • Da lori idiyele ti ṣiṣiṣẹ awọn adarọ-ese kọọkan, isanwo jẹ iṣiro fun awọn aye orukọ, awọn iṣẹ, Awọn imuṣiṣẹ, StatefulSets.
  • Awọn iṣiro jẹ iṣiro nipa lilo awọn metiriki ti a pese nipasẹ awọn metiriki kube-ipinle ati node-atporter.

O ṣe pataki lati ro pe Kubecost nipa aiyipada nikan ka awọn orisun ti o wa ni Kubernetes. Awọn apoti isura infomesonu ita, awọn olupin GitLab, awọn ibi ipamọ S3 ati awọn iṣẹ miiran ti ko si ninu iṣupọ (paapaa ti o ba wa ninu awọsanma kanna) ko han si. Botilẹjẹpe fun GCP ati AWS o le ṣafikun awọn bọtini ti awọn akọọlẹ iṣẹ rẹ ki o ṣe iṣiro ohun gbogbo papọ.

eto

Kubecost nilo:

  • Kubernetes version 1.8 ati ti o ga;
  • kube-ipinle-metiriki;
  • Prometheus;
  • ipade- atajasita.

O ṣẹlẹ pe ninu awọn iṣupọ wa gbogbo awọn ipo wọnyi ni a pade ni ilosiwaju, nitorinaa o wa ni pe o to lati kan pato aaye ipari to tọ fun iraye si Prometheus. Sibẹsibẹ, iwe aṣẹ kubecost Helm osise ni ohun gbogbo ti o nilo lati ṣiṣẹ lori iṣupọ igboro kan.

Awọn ọna pupọ lo wa lati fi Kubecost sori ẹrọ:

  1. Standard fifi sori ọna ti a sapejuwe ninu awọn ilana lori awọn Olùgbéejáde ká aaye ayelujara ti a beere fi awọn iye owo-itupalẹ ibi ipamọ to Helm, ati ki o si fi awọn chart. Gbogbo ohun ti o ku ni lati dari ibudo rẹ ati ṣatunṣe awọn eto si ipo ti o fẹ pẹlu ọwọ (nipasẹ kubectl) ati/tabi lilo oju opo wẹẹbu awoṣe idiyele-owo.

    A ko tii gbiyanju ọna yii paapaa, nitori a ko lo awọn atunto ti o ṣetan ti ẹnikẹta, ṣugbọn o dabi aṣayan “o kan gbiyanju fun ara rẹ”. Ti o ba ti ni diẹ ninu awọn paati eto ti o ti fi sii tabi ti o fẹ atunṣe-itanran diẹ sii, o dara lati gbero ọna keji.

  2. Lo ni pataki kanna chart, ṣugbọn tunto ati fi sii funrararẹ ni eyikeyi ọna ti o rọrun.

    Gẹgẹbi a ti sọ tẹlẹ, ni afikun si kubecost funrararẹ, chart yii ni awọn shatti Grafana ati Prometheus, eyiti o tun le ṣe adani bi o ṣe fẹ.

    Wa lori chart values.yaml fun oluyanju iye owo gba ọ laaye lati tunto:

    • atokọ ti awọn paati atunnkanka iye owo ti o nilo lati fi ranṣẹ;
    • aaye ipari rẹ fun Prometheus (ti o ba ti ni ọkan);
    • awọn ibugbe ati awọn eto ingress miiran fun awoṣe-iye owo ati Grafana;
    • awọn asọye fun awọn podu;
    • iwulo lati lo ibi ipamọ ayeraye ati iwọn rẹ.

    Atokọ pipe ti awọn aṣayan atunto to wa pẹlu awọn apejuwe wa ninu iwe.

    Niwọn bi kubecost ninu ẹya ipilẹ rẹ ko le ni ihamọ iwọle, iwọ yoo nilo lati tunto ipilẹ-auth lẹsẹkẹsẹ fun nronu wẹẹbu.

  3. Fi sori ẹrọ nikan mojuto eto - iye owo-awoṣe. Lati ṣe eyi, o gbọdọ ti fi sori ẹrọ Prometheus ninu iṣupọ ati pato iye ti o baamu ti adirẹsi rẹ ni oniyipada. prometheusEndpoint fun Helm. Lẹhin iyẹn - lo ṣeto awọn atunto YAML ninu iṣupọ.

    Lẹẹkansi, iwọ yoo ni lati ṣafikun Ingress pẹlu ọwọ pẹlu ipilẹ-auth. Ni ipari, iwọ yoo nilo lati ṣafikun apakan kan fun gbigba awọn metiriki iye owo-awoṣe sinu extraScrapeConfigs ninu atunto 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

Kini a gba?

Pẹlu fifi sori ẹrọ ni kikun, a ni kubecost ati nronu wẹẹbu Grafana pẹlu ṣeto ti dashboards.

Iye owo gbogbo, ti o han loju iboju akọkọ, fihan gangan idiyele idiyele ti awọn orisun fun oṣu naa. Eyi akanṣe idiyele ti n ṣe afihan idiyele ti lilo iṣupọ (fun oṣu kan) ni ipele lọwọlọwọ ti agbara awọn orisun.

Metiriki yii jẹ diẹ sii fun itupalẹ awọn inawo ati imudara wọn. Ko rọrun pupọ lati wo awọn idiyele lapapọ fun Keje abtract ni kubecost: iwọ yoo ni lati ṣe eyi lọ si ìdíyelé. Ṣugbọn o le rii awọn idiyele ti o fọ nipasẹ awọn aaye orukọ, awọn aami, awọn adarọ-ese fun awọn ọjọ 1/2/7/30/90, eyiti ìdíyelé kii yoo fi ọ han.

Atunyẹwo Kubecost fun fifipamọ owo lori Kubernetes ninu awọn awọsanma

Soro ti akole. O yẹ ki o lọ lẹsẹkẹsẹ si awọn eto ki o ṣeto awọn orukọ ti awọn aami ti yoo ṣee lo bi awọn ẹka afikun fun awọn idiyele akojọpọ:

Atunyẹwo Kubecost fun fifipamọ owo lori Kubernetes ninu awọn awọsanma

O le gbe awọn aami eyikeyi sori wọn - rọrun ti o ba ti ni eto isamisi tirẹ tẹlẹ.

Paapaa nibẹ o le yi adirẹsi ti aaye ipari API pada si eyiti awoṣe-iye-owo ṣopọ, ṣatunṣe iwọn ẹdinwo ni GCP ati ṣeto awọn idiyele tirẹ fun awọn orisun ati owo fun wiwọn wọn (fun idi kan ẹya naa ko ni ipa lori idiyele lapapọ).

Kubecost le ṣe afihan orisirisi awọn iṣoro ninu akopọ (ati paapaa gbigbọn ni ọran ti ewu). Laanu, aṣayan kii ṣe atunto, ati nitorinaa, ti o ba ni awọn agbegbe fun awọn olupilẹṣẹ ati lo wọn, iwọ yoo rii nkan nigbagbogbo bi eyi:

Atunyẹwo Kubecost fun fifipamọ owo lori Kubernetes ninu awọn awọsanma

Ohun elo pataki - Awọn ifowopamọ iṣupọ. O ṣe iwọn iṣẹ ti awọn adarọ-ese (njẹ awọn orisun, pẹlu awọn nẹtiwọọki), ati tun ṣe iṣiro iye owo ati ohun ti o le fipamọ sori.

O le dabi pe awọn imọran iṣapeye jẹ kedere, ṣugbọn iriri ni imọran pe ohunkan tun wa lati wo. Ni pataki, iṣẹ nẹtiwọọki ti awọn adarọ-ese ni a ṣe abojuto (Kubecost ni imọran ifarabalẹ si awọn ti ko ṣiṣẹ), iranti ti o beere ati gangan ati lilo Sipiyu ni a ṣe afiwe, bakanna bi Sipiyu ti a lo nipasẹ awọn apa iṣupọ (awọn daba lati ṣubu ọpọlọpọ awọn apa sinu ọkan), disk. fifuye ati ki o kan tọkọtaya ti mejila diẹ sile.

Gẹgẹbi pẹlu ọran iṣapeye eyikeyi, iṣapeye awọn orisun ti o da lori data Kubecost nilo: tọju pẹlu iṣọra. Fun apẹẹrẹ, Awọn ifowopamọ Cluster ni imọran piparẹ awọn apa, ni ẹtọ pe o wa ni ailewu, ṣugbọn ko ṣe akiyesi wiwa awọn yiyan-ipo ati awọn taints ti a gbe sori wọn ti ko si lori awọn apa miiran. Ati ni gbogbogbo, paapaa awọn onkọwe ọja ni wọn to šẹšẹ article (nipasẹ ọna, o le wulo pupọ fun awọn ti o nifẹ si koko-ọrọ ti ise agbese na) a ṣe iṣeduro lati ma yara ni kiakia sinu iṣapeye iye owo, ṣugbọn lati sunmọ ọrọ naa ni iṣaro.

Awọn esi

Lẹhin lilo kubecost fun oṣu kan lori awọn iṣẹ akanṣe meji, a le pinnu pe eyi jẹ ohun elo ti o nifẹ (ati pe o rọrun lati kọ ẹkọ ati fi sori ẹrọ) fun itupalẹ ati iṣapeye awọn idiyele fun awọn iṣẹ ti awọn olupese awọsanma ti a lo fun awọn iṣupọ Kubernetes. Awọn iṣiro naa jade lati jẹ deede: ninu awọn adanwo wa wọn ṣe deede pẹlu ohun ti awọn olupese nilo gangan.

Awọn ipadasẹhin tun wa: awọn idun ti kii ṣe pataki, ati ni awọn aaye iṣẹ ṣiṣe ko bo awọn iwulo kan pato si awọn iṣẹ akanṣe kan. Sibẹsibẹ, ti o ba nilo lati ni oye ni kiakia ibi ti owo naa n lọ ati ohun ti o le "ge" lati le dinku owo sisan nigbagbogbo fun awọn iṣẹ awọsanma nipasẹ 5-30% (eyi ni ohun ti o ṣẹlẹ ninu ọran wa), eyi jẹ aṣayan nla. .

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun