Баррасии Kubecost барои сарфаи пул дар Kubernetes дар абрҳо

Баррасии Kubecost барои сарфаи пул дар Kubernetes дар абрҳо

Дар айни замон, бештари ширкатҳо инфрасохтори худро аз серверҳои сахтафзор ва мошинҳои виртуалии худ ба абр интиқол медиҳанд. Шарҳ додани ин ҳалли осон аст: дар бораи сахтафзор хавотир шудан лозим нест, кластер бо роҳҳои гуногун ба осонӣ танзим карда мешавад... ва муҳимтар аз ҳама, технологияҳои мавҷуда (ба монанди Kubernetes) имкон медиҳанд, ки қудрати ҳисоббарориро вобаста ба сарборӣ миқёси оддӣ созанд. .

Ҷанбаи молиявӣ ҳамеша муҳим аст. Воситае, ки дар ин мақола баррасӣ шудааст, барои кӯмак расонидан ба кам кардани буҷет ҳангоми истифодаи инфрасохтори абрӣ бо Kubernetes пешбинӣ шудааст.

Муқаддима

Кубекост як стартапи Калифорния аз Google мебошад, ки ҳалли ҳисоб кардани хароҷоти инфрасохтор дар хидматҳои абрӣ (дар дохили кластери Kubernetes + захираҳои муштарак), ҷустуҷӯи монеаҳо дар танзимоти кластер ва фиристодани огоҳиҳои мувофиқ ба Slack.

Мо мизоҷон бо Kubernetes ҳам дар абрҳои шиноси AWS ва GCP ва ҳам барои ҷомеаи Linux, Azure, умуман, дар ҳама платформаҳое, ки аз ҷониби Kubecost дастгирӣ мешаванд, дорем. Барои баъзеи онҳо, мо худамон хароҷоти хидматрасонии дохили кластерро ҳисоб мекунем (бо усули шабеҳе, ки Kubecost истифода мебарад) ва инчунин хароҷоти инфрасохторро назорат карда, кӯшиш мекунем, ки онҳоро оптимизатсия кунем. Аз ин ру, мантик аст, ки мо ба имконияти автоматикунонии ин гуна вазифахо манфиатдор будем.

Рамзи сарчашмаи модули асосии Kubecost тибқи шартҳои иҷозатномаи кушодаасос (Apache License 2.0) кушода аст. Он метавонад озодона истифода шавад ва хусусиятҳои мавҷуда бояд барои лоиҳаҳои хурд кофӣ бошанд. Бо вуҷуди ин, тиҷорат тиҷорат аст: боқимондаи маҳсулот баста аст, онро метавон истифода бурд обунаҳои пулакӣ, ки он инчунин дастгирии тиҷоратиро дар назар дорад. Илова бар ин, муаллифон иҷозатномаи ройгон барои кластерҳои хурдро пешниҳод мекунанд (1 кластер бо 10 гиреҳ - ҳангоми навиштани ин мақола, ин маҳдудият то 20 гиреҳ васеъ шудааст) ё давраи озмоишӣ бо қобилиятҳои пурра барои 1 моҳ.

Ҳамааш чӣ гуна кор мекунад

Ҳамин тавр, қисми асосии Kubecost барнома мебошад модели арзиш, дар Go навишта шудааст. Диаграммаи Ҳелм, ки тамоми системаро тавсиф мекунад, номида мешавад таҳлилгари хароҷот ва дар асоси он маҷмӯа аз модели арзишӣ бо Prometheus, Grafana ва якчанд панелҳои идоракунӣ мебошад.

Умуман, модели арзиш дорои интерфейси веби худро дорад, ки графикҳо ва омори муфассали хароҷотро дар шакли ҷадвал нишон медиҳад, инчунин, албатта, маслиҳатҳо оид ба оптимизатсияи хароҷот. Панелҳои дар Grafana пешниҳодшуда марҳилаи қаблии таҳияи Kubecost мебошанд ва дорои маълумоти якхелаи модели арзиш буда, онҳоро бо омори муқаррарии истеъмоли фазои CPU/хотира/шабака/диск дар кластер ва ҷузъҳои он пурра мекунанд. .

Kubecost чӣ гуна кор мекунад?

  • Cost-model нархҳоро тавассути API-и провайдерҳои абрӣ қабул мекунад.
  • Минбаъд, вобаста ба навъи оҳани гиреҳ ва минтақа, арзиши як гиреҳ ҳисоб карда мешавад.
  • Вобаста аз арзиши гиреҳҳои корбар, ҳар як қуттии барг барои як соати истифодаи CPU, як гигабайти хотираи истеъмолшуда ва дар як соат барои як гигабайти маълумоти захирашуда, вобаста аз гиреҳе, ки дар он кор мекард ё синфи нигоҳдорӣ арзиш мегирад.
  • Бар асоси арзиши амалиёти подкҳои инфиродӣ, пардохт барои фазоҳои номҳо, хидматҳо, Deployments, StatefulSets ҳисоб карда мешавад.
  • Омор бо истифода аз ченакҳое, ки аз ҷониби kube-state-metrics ва гиреҳ-экспортёр пешниҳод шудаанд, ҳисоб карда мешаванд.

Бояд ба назар гирифт, ки Kubecost ба таври нобаёнӣ танҳо захираҳои дар Kubernetes мавҷудбударо ҳисоб мекунад. Пойгоҳи додаҳои беруна, серверҳои GitLab, анборҳои S3 ва дигар хидматҳое, ки дар кластер нестанд (ҳатто агар дар як абр ҷойгир бошанд) ба он намоён нестанд. Гарчанде ки барои GCP ва AWS шумо метавонед калидҳои ҳисобҳои хидматии худро илова кунед ва ҳама чизро якҷоя ҳисоб кунед.

параметр

Kubecost талаб мекунад:

  • Версияи Kubernetes 1.8 ва навтар;
  • метри кубӣ;
  • Прометей;
  • гиреҳ содиркунанда.

Чунин рӯй дод, ки дар кластерҳои мо ҳамаи ин шартҳо пешакӣ иҷро карда шуданд, бинобар ин маълум шуд, ки танҳо муайян кардани нуқтаи дурусти дастрасӣ ба Prometheus кифоя аст. Аммо, диаграммаи расмии kubecost Helm ҳама чизро дар бар мегирад, ки ба шумо барои кор кардан дар кластери бараҳна лозим аст.

Якчанд роҳҳо барои насб кардани Kubecost мавҷуданд:

  1. Усули стандартии насбкунӣ дар дастурҳо дар вебсайти таҳиякунанда анбори таҳлилгари хароҷотро ба Helm илова кунед ва сипас диаграммаро насб кунед. Танҳо ин аст, ки бандари худ интиқол диҳед ва танзимотро ба ҳолати дилхоҳ ба таври дастӣ (тавассути kubectl) ва/ё бо истифода аз веб-интерфейси модели нархгузорӣ танзим кунед.

    Мо ҳатто ин усулро санҷида натавонистем, зеро мо конфигуратсияҳои тайёри тарафи сеюмро истифода намебарем, аммо ин як варианти хуби "танҳо барои худ санҷед" ба назар мерасад. Агар шумо аллакай баъзе ҷузъҳои системаро насб карда бошед ё шумо хоҳед, ки дурусттар танзим кунед, беҳтар аст, ки роҳи дуюмро баррасӣ кунед.

  2. Асосан истифода баред ҳамон диаграмма, балки онро худатон танзим ва насб кунед бо ягон роҳи қулай.

    Тавре ки аллакай зикр гардид, ба ғайр аз худи kubecost, ин диаграмма диаграммаҳои Grafana ва Prometheus дорад, ки онҳоро низ мувофиқи хоҳиш фармоиш додан мумкин аст.

    Дар диаграмма дастрас аст values.yaml барои таҳлилгари хароҷот ба шумо имкон медиҳад, ки танзим кунед:

    • рӯйхати ҷузъҳои таҳлилгари хароҷот, ки бояд ҷойгир карда шаванд;
    • нуқтаи ниҳоии шумо барои Prometheus (агар шумо аллакай дошта бошед);
    • доменҳо ва дигар танзимоти воридшавӣ барои модели арзиш ва Grafana;
    • эзоҳҳо барои подкӯҳҳо;
    • зарурати истифодаи анбори доимй ва андозаи он.

    Рӯйхати пурраи имконоти конфигуратсияи дастрас бо тавсифҳо дар хуччатхо.

    Азбаски kubecost дар версияи асосии он дастрасиро маҳдуд карда наметавонад, ба шумо лозим меояд, ки фавран барои панели веб-auth-ро танзим кунед.

  3. Насб кунед танҳо асосии система - модели арзиш. Барои ин, шумо бояд Prometheus-ро дар кластер насб кунед ва арзиши мувофиқи суроғаи онро дар тағирёбанда нишон диҳед. prometheusEndpoint барои Хелм. Пас аз он - муроҷиат кунед маҷмӯи конфигуратсияҳои YAML дар кластер.

    Боз, ба шумо лозим меояд, ки Ingress-ро бо basic-auth дастӣ илова кунед. Ниҳоят, ба шумо лозим меояд, ки қисматеро барои ҷамъоварии ченакҳои модели хароҷот илова кунед extraScrapeConfigs дар конфигуратсияи 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

Мо чӣ мегирем?

Бо насби пурра, мо дар ихтиёри худ панели веби kubecost ва Grafana бо маҷмӯи панелҳои идоракуниро дорем.

Арзиши умумии, ки дар экрани асосй намоиш дода мешавад, дар асл арзиши сметавии ресурсхоро барои мох нишон медихад. Ин пешбини шудааст нархе, ки хароҷоти истифодаи кластерро (дар як моҳ) дар сатҳи кунунии истеъмоли захираҳо инъикос мекунад.

Ин нишондиҳанда бештар барои таҳлили хароҷот ва оптимизатсияи онҳо мебошад. Ба назар гирифтани хароҷоти умумии моҳи июли абстрактӣ дар kubecost чандон қулай нест: шумо бояд ба ҳисобдорӣ равед. Аммо шумо метавонед хароҷотро аз рӯи фазоҳои номҳо, тамғакоғазҳо, подкастҳо барои 1/2/7/30/90 рӯз тақсим карда метавонед, ки ҳисобҳо ҳеҷ гоҳ ба шумо нишон намедиҳанд.

Баррасии Kubecost барои сарфаи пул дар Kubernetes дар абрҳо

Дар бораи тамғакоғазҳо. Шумо бояд фавран ба танзимот равед ва номҳои тамғакоғазҳоро таъин кунед, ки ҳамчун категорияҳои иловагӣ барои гурӯҳбандии хароҷот истифода мешаванд:

Баррасии Kubecost барои сарфаи пул дар Kubernetes дар абрҳо

Шумо метавонед ҳама гуна тамғакоғазҳоро дар онҳо овезон кунед - қулай агар шумо аллакай системаи тамғагузории худро дошта бошед.

Инчунин дар он ҷо шумо метавонед суроғаи нуқтаи ниҳоии API-ро, ки модели арзиш ба он пайваст мешавад, тағир диҳед, андозаи тахфифро дар GCP танзим кунед ва нархҳои худро барои захираҳо ва асъор барои андозагирии онҳо муқаррар кунед (бо баъзе сабабҳо ин хусусият ба арзиши умумӣ таъсир намерасонад).

Kubecost метавонад гуногунро нишон диҳад мушкилот дар кластер (ва ҳатто дар ҳолати хатар ҳушдор диҳед). Мутаассифона, вариант танзим карда намешавад ва аз ин рӯ, агар шумо барои таҳиягарон муҳитҳо дошта бошед ва онҳоро истифода баред, шумо ҳамеша чунин чизеро хоҳед дид:

Баррасии Kubecost барои сарфаи пул дар Kubernetes дар абрҳо

Воситаи муҳим - Пасандозҳои кластерӣ. Он фаъолияти поддонҳоро чен мекунад (истеъмоли захираҳо, аз ҷумла шабакаҳо) ва инчунин ҳисоб мекунад, ки чӣ қадар пул ва чӣ шумо метавонед сарфа кунед.

Чунин ба назар мерасад, ки маслиҳатҳои оптимизатсия хеле возеҳанд, аммо таҷриба нишон медиҳад, ки ҳанӯз чизе барои дидан вуҷуд дорад. Аз ҷумла, фаъолияти шабакавии поддонҳо назорат карда мешавад (Kubecost таваҷҷуҳ ба ғайрифаъолро пешниҳод мекунад), хотираи дархостшуда ва воқеӣ ва истеъмоли CPU муқоиса карда мешавад, инчунин CPU, ки гиреҳҳои кластерӣ истифода мебаранд (пешниҳод мекунад, ки якчанд гиреҳ ба як), диск сарборй ва як-ду даэор параметрдои дигар.

Мисли ҳама гуна масъалаи оптимизатсия, оптимизатсияи захираҳо дар асоси маълумоти Kubecost талаб мекунад: боэҳтиёт муносибат кунед. Масалан, пасандозҳои кластерӣ ҳазфи гиреҳҳоро пешниҳод мекунад, ки он бехатар аст, аммо мавҷудияти гиреҳ-интихобкунандаҳо ва доғҳо дар подкҳои дар онҳо ҷойгиршуда, ки дар гиреҳҳои дигар мавҷуд нестанд, ба назар намегирад. Ва умуман, хатто муаллифони махсулот дар онхо мақолаи охирин (дар омади гап, он метавонад барои онҳое, ки ба мавзӯи лоиҳа таваҷҷӯҳ доранд, хеле муфид бошад) тавсия дода мешавад, ки ба оптимизатсияи хароҷот шитоб накунед, балки ба масъала бодиққат муносибат кунед.

Натиҷаҳо

Пас аз истифодаи kubecost дар тӯли як моҳ дар якчанд лоиҳа, мо метавонем хулоса барорем, ки он як воситаи ҷолиб (ва инчунин омӯхтан ва насб кардан осон) барои таҳлил ва оптимизатсияи хароҷот барои хидматҳои провайдерҳои абрӣ, ки барои кластерҳои Kubernetes истифода мешаванд, мебошад. Ҳисобҳо хеле дақиқ баромаданд: дар таҷрибаҳои мо онҳо ба он чизе ки провайдерҳо талаб мекарданд, мувофиқат карданд.

Баъзе камбудиҳо низ мавҷуданд: хатогиҳои ғайримуқаррарӣ мавҷуданд ва дар баъзе ҷойҳо функсияҳо ниёзҳои ба баъзе лоиҳаҳоро пӯшонида наметавонанд. Аммо, агар ба шумо лозим аст, ки зуд фаҳмед, ки пул ба куҷо меравад ва чиро "буридан" мумкин аст, то 5-30% кам кардани хароҷоти хидматҳои абрӣ (ин дар ҳолати мо рӯй дод), ин як варианти олист. .

PS

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Илова Эзоҳ