Кубецост рецензија за уштеду новца на Кубернетес-у у облацима

Кубецост рецензија за уштеду новца на Кубернетес-у у облацима

Тренутно, све више компанија преноси своју инфраструктуру са хардверских сервера и сопствених виртуелних машина у облак. Ово решење је лако објаснити: нема потребе да бринете о хардверу, кластер се лако конфигурише на много различитих начина... и што је најважније, постојеће технологије (као што је Кубернетес) омогућавају једноставно скалирање рачунарске снаге у зависности од оптерећења .

Финансијски аспект је увек важан. Алат о коме се говори у овом чланку је дизајниран да помогне у смањењу буџета када користите инфраструктуру у облаку са Кубернетес-ом.

Увод

Кубецост је калифорнијски стартап компаније Гугл, који креира решење за израчунавање трошкова инфраструктуре у услугама у облаку (у оквиру Кубернетес кластера + дељени ресурси), тражи уска грла у подешавањима кластера и шаље одговарајућа обавештења Слацк-у.

Имамо клијенте са Кубернетес-ом и у познатим АВС и ГЦП облацима, и, ређе за Линук заједницу, Азуре – уопште, на свим платформама које подржава Кубецост. За неке од њих сами израчунавамо трошкове услуга унутар кластера (користећи метод сличан оном који користи Кубецост), а такође пратимо трошкове инфраструктуре и покушавамо да их оптимизујемо. Стога је логично да смо били заинтересовани за могућност аутоматизације оваквих задатака.

Изворни код главног Кубецост модула је отворен под условима лиценце отвореног кода (Апацхе Лиценсе 2.0). Може се слободно користити и доступне функције треба да буду довољне за мале пројекте. Међутим, посао је посао: остатак производа је затворен, може се користити плаћене претплате, који подразумевају и комерцијалну подршку. Поред тога, аутори нуде бесплатну лиценцу за мале кластере (1 кластер са 10 чворова - током писања овог чланка ово ограничење је проширено на 20 чворова) или пробни период са пуним могућностима за 1 месец.

Како све функционише

Дакле, главни део Кубецост-а је апликација трошковни модел, написано у Го. Хелмова карта која описује цео систем се зове анализатор трошкова а у његовој основи је склоп из трошковног модела са Прометејем, Графаном и неколико контролних табли.

Уопштено говорећи, модел трошкова има свој веб интерфејс, који приказује графиконе и детаљну статистику трошкова у табеларном облику, као и, наравно, савете за оптимизацију трошкова. Контролне табле представљене у Графани су ранија фаза у развоју Кубецост-а и садрже већину истих података као и модел трошкова, допуњујући их уобичајеном статистиком о потрошњи ЦПУ/меморије/мрежног/диск простора у кластеру и његовом компоненте.

Како функционише Кубецост?

  • Модел трошкова прима цене за услуге преко АПИ-ја добављача у облаку.
  • Даље, у зависности од врсте гвожђа чвора и региона, израчунава се цена по чвору.
  • На основу трошкова покретања чворова, свака махуна листа добија цену по сату коришћења ЦПУ-а, по гигабајту утрошене меморије и по сату по гигабајту ускладиштених података - у зависности од чвора на коме је радио или класе складиштења.
  • На основу трошкова рада појединачних подова, плаћање се обрачунава за просторе имена, услуге, Деплоиментс, СтатефулСетс.
  • Статистика се израчунава коришћењем метрика које обезбеђују кубе-стате-метрицс и ноде-екпортер.

Важно је узети у обзир да је Кубецост подразумевано броји само ресурсе доступне у Кубернетесу. Спољне базе података, ГитЛаб сервери, С3 складишта и други сервиси који нису у кластеру (чак и ако се налазе у истом облаку) нису видљиви њему. Иако за ГЦП и АВС можете додати кључеве својих сервисних налога и израчунати све заједно.

Инсталација

Кубецост захтева:

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

Десило се да су у нашим кластерима сви ови услови унапред испуњени, па се испоставило да је довољно само навести тачну крајњу тачку за приступ Прометеју. Међутим, званични кубецост Хелм графикон садржи све што вам је потребно за рад на голом кластеру.

Постоји неколико начина за инсталирање Кубецост-а:

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

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

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

    Као што је већ поменуто, поред самог кубецост-а, овај графикон садржи графиконе Графана и Прометхеус, који се такође могу прилагодити по жељи.

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

    • списак компоненти за анализу трошкова које треба применити;
    • ваша крајња тачка за Прометеја (ако је већ имате);
    • домене и друга подешавања улаза за модел трошкова и Графану;
    • напомене за махуне;
    • потреба за коришћењем трајног складишта и његове величине.

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

    Пошто кубецост у својој основној верзији не може да ограничи приступ, мораћете одмах да конфигуришете основну аутентификацију за веб панел.

  3. Инсталирај само језгро система - модел трошкова. Да бисте то урадили, морате имати Прометхеус инсталиран у кластеру и навести одговарајућу вредност његове адресе у променљивој prometheusEndpoint за Хелма. После тога - примените скуп ИАМЛ конфигурација у кластеру.

    Опет, мораћете ручно да додате Ингресс са основним-аутх. На крају, мораћете да додате одељак за прикупљање метрика модела трошкова 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

Шта добијамо?

Уз комплетну инсталацију, на располагању су нам кубецост и Графана веб панел са сетом контролних табли.

Укупни трошкови, приказан на главном екрану, заправо приказује процењену цену ресурса за месец. Ово предвидљив цена која одражава трошкове коришћења кластера (месечно) на тренутном нивоу потрошње ресурса.

Ова метрика је више за анализу трошкова и њихову оптимизацију. Није баш згодно гледати укупне трошкове за апстрактни јул у кубецост: мораћете да урадите ово идите на наплату. Али можете видети трошкове рашчлањене по именским просторима, ознакама, подовима за 1/2/7/30/90 дана, што вам обрачун никада неће показати.

Кубецост рецензија за уштеду новца на Кубернетес-у у облацима

Говорећи о етикете. Одмах треба да одете у подешавања и подесите називе ознака које ће се користити као додатне категорије за груписање трошкова:

Кубецост рецензија за уштеду новца на Кубернетес-у у облацима

На њих можете окачити било које етикете - згодно ако већ имате сопствени систем означавања.

Такође тамо можете променити адресу крајње тачке АПИ-ја на коју се повезује модел трошкова, прилагодити величину попуста у ГЦП-у и поставити сопствене цене за ресурсе и валуту за њихово мерење (из неког разлога ова функција не утиче на укупне трошкове).

Кубецост може приказати различите проблеми у кластеру (па чак и упозорење у случају опасности). Нажалост, опција се не може конфигурисати и стога, ако имате окружења за програмере и користите их, стално ћете видети нешто овако:

Кубецост рецензија за уштеду новца на Кубернетес-у у облацима

Важан алат - Кластерска штедња. Мери активност подова (потрошња ресурса, укључујући и мрежне), а такође израчунава колико новца и на чему можете да уштедите.

Можда се чини да су савети за оптимизацију прилично очигледни, али искуство показује да још увек има шта да се погледа. Конкретно, прати се мрежна активност подова (Кубецост предлаже да се обрати пажња на неактивне), упоређује се тражена и стварна потрошња меморије и ЦПУ-а, као и ЦПУ који користе чворови кластера (предлаже да се неколико чворова сажима у један), диск оптерећење и још пар десетина параметара.

Као и код сваког питања оптимизације, оптимизација ресурса на основу података Кубецост захтева: третирати са опрезом. На пример, Цлустер Савингс предлаже брисање чворова, тврдећи да је то безбедно, али не узима у обзир присуство селектора чворова и мрља у подовима који су распоређени на њима, а који нису доступни на другим чворовима. И уопште, чак и аутори производа у својим недавни чланак (успут, може бити веома корисно за оне који су заинтересовани за тему пројекта) препоручљиво је да не журите безглаво у оптимизацију трошкова, већ да промишљено приступите питању.

Резултати

Након месец дана коришћења кубецост-а на неколико пројеката, можемо закључити да је то занимљив (и такође једноставан за учење и инсталирање) алат за анализу и оптимизацију трошкова за услуге цлоуд провајдера који се користе за Кубернетес кластере. Прорачуни су се показали веома прецизним: у нашим експериментима су се поклопили са оним што су провајдери заправо захтевали.

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

ПС

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

Извор: ввв.хабр.цом

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