Преглед на 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. Се нарекува дијаграм на Helm кој го опишува целиот систем анализатор на трошоци а во неговото јадро е склоп од модел на цена со Prometheus, Grafana и неколку контролни табли.

Општо земено, моделот на трошоци има свој веб-интерфејс, кој прикажува графикони и детална статистика за трошоците во табеларна форма, како и, се разбира, совети за оптимизирање на трошоците. Контролните табли претставени во Grafana се порана фаза во развојот на Kubecost и ги содржат речиси истите податоци како и моделот на трошоци, дополнувајќи ги со вообичаената статистика за потрошувачката на процесорот/меморијата/мрежата/просторот на дискот во кластерот и неговите компоненти .

Како функционира Kubecost?

  • Cost-model добива цени за услуги преку API на давателите на облак.
  • Понатаму, во зависност од типот на железо на јазолот и регионот, се пресметува трошокот по јазол.
  • Врз основа на трошоците за работа на јазли, секој лист подлога добива цена по час користење на процесорот, по гигабајт потрошена меморија и по час по гигабајт складирани податоци - во зависност од јазолот на кој работел или класата на складирање.
  • Врз основа на трошоците за работа на поединечни подлоги, плаќањето се пресметува за именски простори, услуги, распоредувања, StatefulSets.
  • Статистиката се пресметува со користење на метрика обезбедени од kube-state-metrics и node-exporter.

Важно е да се земе предвид дека Кубекост стандардно ги брои само достапните ресурси во Кубернетес. Надворешните бази на податоци, серверите на GitLab, складиштата на S3 и другите услуги што не се во кластерот (дури и ако се наоѓаат во истиот облак) не се видливи за него. Иако за GCP и AWS можете да ги додадете клучевите на вашите сметки за услуги и да пресметате сè заедно.

Инсталација

Kubecost бара:

  • Кубернетес верзија 1.8 и повисока;
  • кубе-состојба-метрика;
  • Прометеј;
  • јазол-извозник.

Се случи во нашите кластери сите овие услови да бидат исполнети однапред, па се покажа дека е доволно само да се наведе точната крајна точка за пристап до Прометеј. Како и да е, официјалната табела на Kubecost Helm содржи сè што ви е потребно за да се кандидира на гол кластер.

Постојат неколку начини за инсталирање на Kubecost:

  1. Стандарден метод на инсталација опишан во инструкции на веб-локацијата на развивачот. Задолжително додадете го складиштето за анализатор на трошоци во Helm, а потоа инсталирајте ја табелата. Останува само да ја препратите вашата порта и да ги приспособите поставките во посакуваната состојба рачно (преку kubectl) и/или користејќи го веб-интерфејсот со модел на цена.

    Не сме го ни пробале овој метод, бидејќи не користиме готови конфигурации од трети страни, но изгледа како добра опција „само пробајте го сами“. Ако веќе имате инсталирано некои од компонентите на системот или сакате повеќе дотерување, подобро е да ја разгледате втората патека.

  2. Користете суштински истиот графикон, но сами конфигурирајте и инсталирајте го на кој било пригоден начин.

    Како што веќе споменавме, покрај самиот kubecost, оваа табела содржи графикони Grafana и Prometheus, кои исто така може да се приспособат по желба.

    Достапно на графиконот values.yaml за анализатор на трошоци ви овозможува да конфигурирате:

    • листа на компоненти за анализа на трошоци што треба да се распоредат;
    • вашата крајна точка за Прометеј (ако веќе ја имате);
    • домени и други поставки за влез за cost-model и Grafana;
    • прибелешки за мешунки;
    • потребата да се користи трајно складирање и неговата големина.

    Комплетна листа на достапни опции за конфигурација со описи е достапна во документација.

    Бидејќи kubecost во својата основна верзија не може да го ограничи пристапот, ќе треба веднаш да го конфигурирате основното-авти за веб-панелот.

  3. Инсталирај само јадрото на системот - трошок-модел. За да го направите ова, мора да имате инсталирано Prometheus во кластерот и да ја наведете соодветната вредност на неговата адреса во променливата prometheusEndpoint за Хелм. После тоа - аплицирајте збир на YAML конфигурации во кластерот.

    Повторно, ќе треба рачно да додадете Ingress со основната автентичност. Конечно, ќе треба да додадете дел за собирање метрика на моделот на трошоците extraScrapeConfigs во конфигурацијата Прометеј:

    - 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 предлага да се обрне внимание на неактивните), се споредуваат бараната и вистинската потрошувачка на меморија и процесорот, како и процесорот што го користат кластерните јазли (предлага да се срушат неколку јазли во еден), диск оптоварување и уште неколку десетици параметри.

Како и со секое прашање за оптимизација, оптимизирањето на ресурсите засновани на податоците на Kubecost бара: третирајте со претпазливост. На пример, Cluster Savings предлага бришење на јазли, тврдејќи дека е безбедно, но не го зема предвид присуството на избирачи на јазли и нечистотии во местата распоредени на нив што не се достапни на други јазли. И воопшто, дури и авторите на производот во нивните неодамнешна статија (патем, може да биде многу корисно за оние кои се заинтересирани за темата на проектот) се препорачува да не брзате со оптимизација на трошоците, туку смислено да му пристапите на прашањето.

Резултатите од

По користењето на kubecost за еден месец на неколку проекти, можеме да заклучиме дека тоа е интересна (а исто така лесна за учење и инсталирање) алатка за анализа и оптимизирање на трошоците за услугите на давателите на облак што се користат за кластерите на Kubernetes. Пресметките се покажаа како многу точни: во нашите експерименти тие се совпаѓаа со она што всушност го бараа провајдерите.

Има и лоши страни: има некритични грешки, а на некои места функционалноста не ги покрива потребите специфични за некои проекти. Меѓутоа, ако треба брзо да разберете каде одат парите и што може да се „крати“ за постојано да ја намалувате сметката за облак услуги за 5-30% (ова е она што се случи во нашиот случај), ова е одлична опција .

PS

Прочитајте и на нашиот блог:

Извор: www.habr.com

Додадете коментар