Nirxandina Kubecost ji bo teserûfa drav li Kubernetes di ewran de

Nirxandina Kubecost ji bo teserûfa drav li Kubernetes di ewran de

Heya nuha, bêtir û bêtir pargîdan binesaziya xwe ji serverên hardware û makîneyên xwe yên virtual vediguhezînin ewr. Ev çareserî hêsan e ku were ravekirin: ne hewce ye ku meriv li ser hardware bixebite, kom bi gelek awayên cihêreng bi hêsanî tê mîheng kirin… û ya herî girîng, teknolojiyên heyî (wek Kubernetes) gengaz dike ku meriv bi tenê hêza hesabkirinê li gorî barkirinê pîvan bike. .

Aliyê darayî her gav girîng e. Amûra ku di vê gotarê de hatî nîqaş kirin ji bo kêmkirina budçeyan dema ku bi Kubernetes re binesaziya ewr tê bikar anîn tête çêkirin.

Pîrozbahiyê

Kubecost destpêkek Kalîforniyayî ye ji Google, çareseriyek ji bo hesabkirina lêçûnên binesaziyê di karûbarên ewr de (di nav komek Kubernetes + çavkaniyên hevpar de) diafirîne, di mîhengên komê de li kêşeyan digere û agahdariya guncan ji Slack re dişîne.

Em bi Kubernetes re hem di ewrên naskirî yên AWS û GCP de, hem jî kêm caran ji bo civata Linux, Azure - bi gelemperî, li ser hemî platformên ku ji hêla Kubecost ve têne piştgirî kirin, xerîdarên me hene. Ji bo hin ji wan, em bi xwe lêçûnên karûbarên hundurîn-klusterê hesab dikin (bi karanîna rêbazek mîna ya ku Kubecost bikar tîne), û lêçûnên binesaziyê jî çavdêrî dikin û hewl didin ku wan xweşbîn bikin. Ji ber vê yekê, mentiqî ye ku em bi îmkana otomatîkkirina karên weha re eleqedar bûn.

Koda çavkaniyê ya modula sereke Kubecost di bin şertên lîsansa Çavkaniya Vekirî (Apache License 2.0) de vekirî ye. Ew dikare bi serbestî were bikar anîn û taybetmendiyên berdest divê ji bo projeyên piçûk bes bin. Lêbelê, karsaz karsaziyek e: mayî ya hilberê girtî ye, ew dikare ji hêla bikar bîne abonetiya pere, ku di heman demê de piştgiriya bazirganî jî tê wateya. Wekî din, nivîskar ji bo komikên piçûk destûrnameyek belaş pêşkêş dikin (1 komek bi 10 girêk - di dema nivîsandina vê gotarê de, ev sînor bi 20 girêkan ve hatî berfireh kirin) an heyamek ceribandinê bi kapasîteyên tevahî ji bo 1 mehê.

Çawa ew hemî dixebite

Ji ber vê yekê, beşa sereke ya Kubecost serîlêdanê ye mesrefa-model, di Go de hatiye nivîsandin. Nexşeya Helm ku tevahiya pergalê vedibêje tê gotin lêçûn-analîzator û di bingeha wê de meclîsek ji modelek lêçûnek bi Prometheus, Grafana û çend dashboardan heye.

Bi gelemperî, modela lêçûn navgîniya xweya malperê heye, ku grafîk û statîstîkên hûrgulî li ser lêçûnên bi forma tabloyê nîşan dide, û her weha, bê guman, serişteyên ji bo xweşbînkirina lêçûn nîşan dide. Tabloyên ku di Grafana de têne pêşkêş kirin qonaxek berê ne di pêşkeftina Kubecost-ê de û bi qasî modela lêçûnê dihewîne, wan bi statîstîkên asayî yên li ser xerckirina CPU / bîr / torê / cîhê dîskê di komê û pêkhateyên wê de temam dike. .

Kubecost çawa dixebite?

  • Modela lêçûn bi navgîniya API-ya pêşkêşkerên cloudê bihayên karûbaran distîne.
  • Wekî din, li gorî celebê hesinî yê girêk û herêmê, lêçûna her girêk tê hesibandin.
  • Li ser bingeha lêçûna girêkên xebitandinê, her pelek ji bo demjimêrek karanîna CPU, ji bo her gigabyte bîranîna ku hatî hilanîn, û serê demjimêrek ji bo her gigabyte daneya hilanîn - li gorî girêka ku ew li ser dixebitî an pola hilanînê ve girêdayî ye.
  • Li ser bingeha lêçûnên xebitandina podên kesane, drav ji bo cîhên navan, karûbar, Sazkirin, StatefulSets tê hesibandin.
  • Statîstîk bi karanîna metrîkên ku ji hêla kube-state-metrics û node-exporter ve hatî peyda kirin têne hesibandin.

Girîng e ku meriv Kubecost bihesibîne ji hêla xwerû ve tenê çavkaniyên ku li Kubernetes hene dihejmêre. Databasên derveyî, serverên GitLab, depoyên S3 û karûbarên din ên ku ne di komê de ne (tevî ku di heman ewr de cih digirin) jê re nayên dîtin. Her çend ji bo GCP û AWS hûn dikarin mifteyên hesabên karûbarê xwe zêde bikin û her tiştî bi hev re hesab bikin.

mîhengê

Kubecost hewce dike:

  • Guhertoya Kubernetes 1.8 û bilindtir;
  • kube-state-metrics;
  • Prometheus;
  • node-exporter.

Wusa çêbû ku di komên me de hemî van şertan di pêş de hatine bicîh kirin, ji ber vê yekê derket holê ku bes e ku meriv tenê xala dawî ya rast ji bo gihîştina Prometheus diyar bike. Lêbelê, nexşeya fermî ya kubecost Helm her tiştê ku hûn hewce ne ku hûn li ser komek tazî bimeşînin dihewîne.

Gelek awayên sazkirina Kubecost hene:

  1. Rêbaza sazkirinê ya standard ku di nav de hatî destnîşan kirin fermanên li ser malpera pêşdebiran. Pêdivî ye depoya lêçûn-analîzatorê li Helm zêde bikin, û dûv re nexşeyê saz bikin. Tiştê ku dimîne ev e ku hûn porta xwe bişopînin û mîhengan bi destan (bi navgîniya kubectl) û / an jî bi karanîna navgîniya tevna-modelê ya lêçûn ve biguhezînin rewşa xwestinê.

    Me vê rêbazê jî ceriband nekiriye, ji ber ku em konfigurasyonên amade-sêyemîn bikar neynin, lê ew vebijarkek baş a "tenê ji xwe re biceribîne" xuya dike. Ger we jixwe hin hêmanên pergalê sazkirî ne an hûn bêtir xweş-sazkirinê dixwazin, çêtir e ku hûn riya duyemîn bifikirin.

  2. Bi bingehîn bikar bînin heman nexşeyê, lê bi xwe mîheng bikin û saz bikin bi her awayî rehet.

    Wekî ku berê hatî behs kirin, ji bilî kubecost bixwe, ev nexşe nexşeyên Grafana û Prometheus jî dihewîne, ku ew jî wekî ku tê xwestin were xweş kirin.

    Li ser nexşeyê heye values.yaml ji bo lêçûn-analîzator destûrê dide te ku mîheng bikî:

    • navnîşek pêkhateyên lêçûn-analîzatorê ku pêdivî ye ku werin bicîh kirin;
    • xala dawiya we ji bo Prometheus (heke we berê yek hebe);
    • domain û mîhengên din ên ketinê ji bo modela lêçûn û Grafana;
    • annotations for pods;
    • hewcedariya karanîna hilanîna daîmî û mezinahiya wê.

    Navnîşek bêkêmasî ya vebijarkên mîhengê yên berdest bi ravekirinê re tê de heye belgekirin.

    Ji ber ku kubecost di guhertoya xweya bingehîn de nikare gihîştinê sînordar bike, hûn ê hewce bikin ku tavilê ji bo panela malperê bingehîn-auth mîheng bikin.

  3. Sazkirin tenê bingeha pergalê - modela mesrefê. Ji bo vê yekê, divê hûn Prometheus di komê de saz bikin û nirxa têkildar a navnîşana wê di guhêrbar de diyar bikin. prometheusEndpoint ji bo Helm. Piştî wê - serîlêdanê bikin set ji veavakirina YAML di komê de.

    Dîsa, hûn ê neçar bibin ku bi desta Ingress-ê bi bingehîn-author zêde bikin. Di dawiyê de, hûn ê hewce bikin ku beşek ji bo berhevkirina metrîkên lêçûn-modelê tê de zêde bikin extraScrapeConfigs di veavakirina Prometheus de:

    - 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

Em çi distînin?

Digel sazkirinek bêkêmasî, di destê me de panela webê ya kubecost û Grafana bi komek dashboardan heye.

Bi tevahî mesref, li ser ekrana sereke tê xuyang kirin, bi rastî lêçûna texmînkirî ya çavkaniyan ji bo mehê nîşan dide. Ev proje kirin biha ku lêçûna karanîna komê (mehê) di asta heyî ya xerckirina çavkaniyê de nîşan dide.

Ev metric bêtir ji bo analîzkirina lêçûn û xweşbînkirina wan e. Ne pir rehet e ku meriv li kubecostê li lêçûnên giştî yên Tîrmeha abstrakt binêre: hûn ê hewce bikin herin billing. Lê hûn dikarin lêçûnên ji bo 1/2/7/30/90 rojan li gorî navan, etîketan, pêçan têne dabeş kirin bibînin, ku fatûreya wan çu carî nîşanî we nade.

Nirxandina Kubecost ji bo teserûfa drav li Kubernetes di ewran de

Axaftina labels. Pêdivî ye ku hûn tavilê biçin mîhengan û navên etîketên ku dê wekî kategoriyên zêde ji bo komkirina lêçûnên werin bikar anîn destnîşan bikin:

Nirxandina Kubecost ji bo teserûfa drav li Kubernetes di ewran de

Hûn dikarin her etîketan li ser wan daliqînin - heke we jixwe pergala xweya etîketkirinê hebe hêsan e.

Di heman demê de li wir hûn dikarin navnîşana xala dawiya API-ê ya ku modela lêçûn pê ve girêdide biguhezînin, mezinahiya dakêşanê ya di GCP-ê de rast bikin û ji bo pîvandina wan bihayên xwe yên çavkaniyan û pereyê destnîşan bikin (ji ber hin sedeman taybetmendî bandorê li lêçûna Tevkî nake).

Kubecost dikare cûrbecûr nîşan bide pirsgirêkên di komê de (û di rewşeke xetereyê de jî hişyar be). Mixabin, vebijark nayê mîheng kirin, û ji ber vê yekê, heke we ji bo pêşdebiran jîngeh hebin û wan bikar bînin, hûn ê bi berdewamî tiştek weha bibînin:

Nirxandina Kubecost ji bo teserûfa drav li Kubernetes di ewran de

Amûrek girîng - Cluster Savings. Ew çalakiya pods (bikaranîna çavkaniyan, tevî yên torê) dipîve, û her weha hesab dike ka çiqas drav û hûn dikarin li ser çi xilas bikin.

Dibe ku xuya bibe ku serişteyên xweşbîniyê pir eşkere ne, lê ezmûn destnîşan dike ku hîn jî tiştek heye ku meriv lê binêre. Bi taybetî, çalakiya torê ya podan tê şopandin (Kubecost pêşniyar dike ku bala xwe bidin yên neçalak), bîranîna daxwazkirî û rastîn û xerckirina CPU-yê tê berhev kirin, û her weha CPU-ya ku ji hêla girêkên komê ve tê bikar anîn (pêşniyaz dike ku çend nod li yek hilweşînin), dîsk. barkirin û çend deh parametreyên din.

Mîna her pirsgirêkek xweşbîniyê, xweşbînkirina çavkaniyên li ser bingeha daneyên Kubecost hewce dike: bi baldarî derman bikin. Mînakî, Cluster Savings jêbirina girêkan pêşniyar dike, îddîa dike ku ew ewle ye, lê hebûna hilbijêrên girêk û gemaran di nav pêlên ku li ser wan de hatine bicîh kirin ku li ser girêkên din peyda nabin, hesab nake. Û bi giştî, heta nivîskarên berhemê di wan de gotara dawî (bi awayê, ew dikare ji bo kesên ku bi mijara projeyê re eleqedar dibin pir bikêrhatî be) tê pêşniyar kirin ku bi serê xwe di xweşbîniya lêçûnê de lez nekin, lê bi ramanî nêzî mijarê bibin.

Encam

Piştî ku kubecost mehekê li ser çend projeyan bikar anî, em dikarin encam bidin ku ew amûrek balkêş e (û di heman demê de fêrbûn û sazkirina hêsan) ji bo analîzkirin û xweşbînkirina lêçûnên ji bo karûbarên pêşkêşkerên ewr ên ku ji bo komên Kubernetes têne bikar anîn. Hesab pir rast derdikevin: di ceribandinên me de ew bi tiştê ku pêşkêşvanan bi rastî hewce dikin re hevaheng bûn.

Di heman demê de hin kêmasî jî hene: xeletiyên ne-krîtîk hene, û li hin deveran fonksiyonel hewcedariyên taybetî yên hin projeyan nagire. Lêbelê, heke hûn hewce ne ku zû fam bikin ka drav bi ku ve diçin û çi dikare were "birîn" da ku bi domdarî fatûreya karûbarên ewr ji% 5-30 kêm bike (ev tiştê ku di doza me de çêbû), ev vebijarkek girîng e. .

PS

Li ser bloga me jî bixwînin:

Source: www.habr.com

Add a comment