Revizyon Kubecost pou ekonomize lajan sou Kubernetes nan nwaj yo

Revizyon Kubecost pou ekonomize lajan sou Kubernetes nan nwaj yo

Kounye a, pi plis ak plis konpayi yo ap transfere enfrastrikti yo soti nan sèvè pyès ki nan konpitè ak pwòp machin vityèl yo nan nwaj la. Solisyon sa a fasil pou eksplike: pa gen okenn bezwen enkyete sou pyès ki nan konpitè, gwoup la fasil konfigirasyon nan plizyè fason diferan ... ak pi enpòtan, teknoloji ki egziste deja (tankou Kubernetes) fè li posib tou senpleman echèl pouvwa enfòmatik depann sou chaj la. .

Aspè finansye a toujou enpòtan. Zouti ki diskite nan atik sa a fèt pou ede diminye bidjè lè w ap itilize enfrastrikti nwaj ak Kubernetes.

Entwodiksyon

Kubecost se yon demaraj Kalifòni soti nan Google, kreye yon solisyon pou kalkile depans enfrastrikti nan sèvis nwaj (nan yon gwoup Kubernetes + resous pataje), pou chèche bouche nan anviwònman gwoup ak voye notifikasyon apwopriye bay Slack.

Nou gen kliyan ak Kubernetes tou de nan nwaj AWS yo ak GCP yo konnen, epi, pi raman pou kominote Linux la, Azure - an jeneral, sou tout platfòm ki sipòte pa Kubecost. Pou kèk nan yo, nou kalkile depans pou sèvis andedan gwoup la tèt nou (sèvi ak yon metòd ki sanble ak sa yo itilize pa Kubecost), epi tou kontwole depans enfrastrikti yo epi eseye optimize yo. Se poutèt sa, li lojik ke nou te enterese nan posibilite pou otomatize travay sa yo.

Kòd sous modil Kubecost prensipal la louvri anba kondisyon lisans Open Source (Apache License 2.0). Li ka itilize libreman ak karakteristik ki disponib yo ta dwe ase pou ti pwojè. Sepandan, biznis se biznis: rès la nan pwodwi a fèmen, li ka itilize pa abònman peye, ki vle di tou sipò komèsyal yo. Anplis de sa, otè yo ofri yon lisans gratis pou ti grap (1 grap ak 10 nœuds - pandan ekri atik sa a, limit sa a te elaji a 20 nœuds) oswa yon peryòd esè ak kapasite konplè pou 1 mwa.

Ki jan li tout travay

Se konsa, pati prensipal la nan Kubecost se aplikasyon an pri-modèl, ekri nan Go. Yo rele yon tablo Helm ki dekri tout sistèm nan pri-analyzer ak nan nwayo li yo se yon asanble ki soti nan yon pri-modèl ak Prometheus, Grafana ak plizyè tablodbò.

Anjeneral pale, pri-modèl gen pwòp koòdone entènèt li yo, ki montre graf ak estatistik detaye sou depans nan fòm tabul, osi byen ke, nan kou, konsèy pou optimize depans yo. Dashboards yo prezante nan Grafana yo se yon etap pi bonè nan devlopman Kubecost epi yo genyen anpil nan done yo menm jan ak pri-modèl la, konplete yo ak estatistik abityèl yo sou konsomasyon nan CPU / memwa / rezo / espas disk nan gwoup la ak li yo. konpozan.

Ki jan Kubecost travay?

  • Pri-modèl resevwa pri pou sèvis atravè API founisè nwaj yo.
  • Pli lwen, tou depann de kalite fè nan ne la ak rejyon an, se pri a pou chak ne kalkile.
  • Dapre pri a nan kouri nœuds, chak gous fèy jwenn yon pri pou chak èdtan nan itilizasyon CPU, pou chak gigaocte nan memwa konsome, ak pou chak èdtan pou chak gigaocte nan done ki estoke - depann de nœud la li te kouri sou oswa klas la nan depo.
  • Dapre pri pou opere gous endividyèl yo, peman yo kalkile pou espas non, sèvis, Deplwaman, StatefulSets.
  • Estatistik yo kalkile lè l sèvi avèk mezi ki bay pa kube-state-metrics ak node-exporter.

Li enpòtan pou konsidere ke Kubecost pa default sèlman konte resous ki disponib nan Kubernetes. Baz done ekstèn, serveurs GitLab, depo S3 ak lòt sèvis ki pa nan gwoup la (menm si yo sitiye nan menm nwaj la) pa vizib pou li. Malgre ke pou GCP ak AWS ou ka ajoute kle yo nan kont sèvis ou yo epi kalkile tout bagay ansanm.

Enstalasyon

Kubecost mande pou:

  • Kubernetes vèsyon 1.8 ak pi wo;
  • kube-eta-metrik;
  • Prometheus;
  • ne-ekspòtè.

Li te rive ke nan grap nou yo tout kondisyon sa yo te rankontre davans, kidonk li te tounen soti ke li te ase jis presize pwen final ki kòrèk la pou aksè nan Prometheus. Sepandan, tablo ofisyèl kubecost Helm la gen tout sa ou bezwen pou kouri sou yon grap fè.

Gen plizyè fason pou enstale Kubecost:

  1. Metòd enstalasyon estanda ki dekri nan enstriksyon sou sit entènèt pwomotè a. Obligatwa ajoute repozitwa analiz pri a nan Helm, epi enstale tablo a. Tout sa ki rete se voye pò ou a epi ajiste anviwònman yo nan eta a vle manyèlman (via kubectl) ak / oswa lè l sèvi avèk koòdone wèb pri-modèl la.

    Nou pa menm eseye metòd sa a, depi nou pa sèvi ak twazyèm pati konfigirasyon pare, men li sanble yon bon opsyon "jis eseye li pou tèt ou". Si ou deja gen kèk nan eleman sistèm yo enstale oswa ou vle plis amann-akor, li se pi bon yo konsidere dezyèm chemen an.

  2. Sèvi ak esansyèlman menm tablo a, men konfigirasyon epi enstale li tèt ou nan nenpòt fason pratik.

    Kòm deja mansyone, anplis kubecost nan tèt li, tablo sa a gen grafik Grafana ak Prometheus, ki kapab tou Customized jan ou vle.

    Disponib sou tablo a values.yaml pou pri-analyzer pèmèt ou konfigirasyon:

    • yon lis konpozan pri-analyzer ki bezwen deplwaye;
    • pwen final ou pou Prometheus (si ou deja genyen youn);
    • domèn ak lòt anviwònman antre pou pri-modèl ak Grafana;
    • anotasyon pou gous;
    • bezwen nan sèvi ak depo pèmanan ak gwosè li yo.

    Yon lis konplè opsyon konfigirasyon ki disponib ak deskripsyon ki disponib nan dokiman.

    Depi kubecost nan vèsyon debaz li yo pa ka mete restriksyon sou aksè, w ap bezwen imedyatman konfigirasyon debaz otorizasyon pou panèl entènèt la.

  3. Enstale sèlman nwayo sistèm lan - pri-modèl. Pou fè sa, ou dwe genyen Prometheus enstale nan gwoup la epi presize valè korespondan adrès li nan varyab la. prometheusEndpoint pou Helm. Apre sa - aplike seri konfigirasyon YAML nan grap la.

    Yon fwa ankò, w ap oblije ajoute Ingress ak otorizasyon debaz. Finalman, w ap bezwen ajoute yon seksyon pou kolekte mezi pri-modèl nan extraScrapeConfigs nan konfigirasyon 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

Kisa nou jwenn?

Avèk yon enstalasyon konplè, nou gen a jete kubecost ak panèl entènèt Grafana ak yon seri tablodbò.

Total pri, ki parèt sou ekran prensipal la, aktyèlman montre pri estime resous pou mwa a. Sa a projetée pri ki reflete pri pou sèvi ak gwoup la (pa mwa) nan nivo aktyèl la nan konsomasyon resous.

Metrik sa a pi plis pou analize depans ak optimize yo. Li pa trè pratik pou gade nan depans total pou abstrè Jiyè nan kubecost: w ap oblije fè sa ale nan facturation. Men, ou ka wè depans ki divize pa espas non, etikèt, gous pou 1/2/7/30/90 jou, ki bòdwo p ap janm montre w.

Revizyon Kubecost pou ekonomize lajan sou Kubernetes nan nwaj yo

Pale de etikèt. Ou ta dwe imedyatman ale nan anviwònman yo epi mete non etikèt yo ke yo pral itilize kòm kategori adisyonèl pou gwoup depans yo:

Revizyon Kubecost pou ekonomize lajan sou Kubernetes nan nwaj yo

Ou ka pann nenpòt etikèt sou yo - pratik si ou deja gen pwòp sistèm etikèt ou.

Epitou la ou ka chanje adrès pwen final API a ki konekte modèl pri a, ajiste gwosè rabè a nan GCP epi mete pwòp pri ou pou resous ak lajan pou mezi yo (pou kèk rezon karakteristik nan pa afekte pri total).

Kubecost ka montre divès kalite pwoblèm nan gwoup la (e menm alèt nan ka ta gen danje). Malerezman, opsyon a pa configurable, ak Se poutèt sa, si ou gen anviwònman pou devlopè epi sèvi ak yo, ou pral toujou ap wè yon bagay tankou sa a:

Revizyon Kubecost pou ekonomize lajan sou Kubernetes nan nwaj yo

Yon zouti enpòtan - Cluster Savings. Li mezire aktivite gous yo (konsomasyon resous, ki gen ladan yo rezo), epi tou li kalkile konbyen lajan ak sa ou ka ekonomize sou.

Li ka sanble ke konsèy optimize yo byen evidan, men eksperyans sijere ke gen toujou yon bagay yo gade. An patikilye, yo kontwole aktivite rezo gous yo (Kubecost sijere peye atansyon sou moun ki inaktif), yo konpare memwa ak aktyèl la ak konsomasyon CPU, osi byen ke CPU a itilize pa nœuds gwoup (sijere tonbe plizyè nœuds nan yon sèl), disk. chaj ak yon koup la douzèn plis paramèt.

Menm jan ak nenpòt pwoblèm optimize, optimize resous ki baze sou done Kubecost mande pou: trete ak prekosyon. Pou egzanp, Cluster Savings sijere efase nœuds, reklame ke li an sekirite, men li pa pran an kont prezans nan seleksyon nœuds ak taints nan gous yo deplwaye sou yo ki pa disponib sou lòt nœuds. Ak an jeneral, menm otè yo nan pwodwi a nan yo atik resan (nan chemen an, li ka trè itil pou moun ki enterese nan sijè a nan pwojè a) li rekòmande pa prese tèt devan nan optimize pri, men yo apwoche pwoblèm nan reflechi.

Rezilta

Apre w fin itilize kubecost pou yon mwa sou yon koup nan pwojè, nou ka konkli ke li se yon zouti enteresan (epi tou fasil pou aprann ak enstale) pou analize ak optimize depans pou sèvis founisè nwaj yo itilize pou grap Kubernetes. Kalkil yo vin trè egzat: nan eksperyans nou yo yo te kowenside ak sa founisè yo aktyèlman te mande.

Genyen tou kèk enkonvenyans: gen pinèz ki pa kritik, ak nan kèk kote fonksyonalite a pa kouvri bezwen espesifik nan kèk pwojè. Sepandan, si ou bezwen byen vit konprann ki kote lajan an prale ak sa ki ka "koupe" yo nan lòd yo toujou diminye bòdwo a pou sèvis nwaj yo pa 5-30% (sa a se sa ki te pase nan ka nou an), sa a se yon gwo opsyon. .

PS

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè