Revisione Kubecost per risparmià soldi in Kubernetes in i nuvuli

Revisione Kubecost per risparmià soldi in Kubernetes in i nuvuli

Attualmente, più è più cumpagnie trasferiscenu a so infrastruttura da i servitori di hardware è e so propria macchina virtuale à u nuvulu. Sta suluzione hè faciule da spiegà: ùn ci hè micca bisognu di preoccupassi di hardware, u cluster hè facilmente cunfiguratu in parechje manere diverse ... è più impurtante, e tecnulugia esistenti (cum'è Kubernetes) facenu pussibule di scala solu a putenza di computing secondu a carica. .

L'aspettu finanziariu hè sempre impurtante. L'uttellu discutitu in questu articulu hè pensatu per aiutà à riduce u budgetu quandu si usa l'infrastruttura di nuvola cù Kubernetes.

Introduzione

Kubecost hè una startup californiana di Google, chì crea una suluzione per u calculu di i costi di l'infrastruttura in i servizii di nuvola (in un cluster Kubernetes + risorse spartute), cercandu i colli di bottiglia in i paràmetri di u cluster è invià notificazioni adatte à Slack.

Avemu clienti cù Kubernetes sia in i nuvuli familiari AWS è GCP, è, più raramente per a cumunità Linux, Azure - in generale, in tutte e piattaforme supportate da Kubecost. Per alcuni d'elli, calculemu i costi di i servizii intra-cluster noi stessi (aduprendu un metudu simili à quellu utilizatu da Kubecost), è ancu monitorà i costi di l'infrastruttura è pruvate à ottimisimu. Dunque, hè logicu chì avemu interessatu à a pussibilità di automatizà tali attività.

U codice fonte di u modulu Kubecost principale hè apertu sottu i termini di a licenza Open Source (Licenza Apache 2.0). Pò esse usatu liberamente è e funzioni dispunibuli sò abbastanza per i picculi prughjetti. In ogni casu, l'affari hè affari: u restu di u pruduttu hè chjusu, pò esse usatu da abbonamenti pagati, chì implica ancu supportu cummerciale. Inoltre, l'autori offrenu una licenza gratuita per i picculi clusters (1 cluster with 10 nodes - durante a scrittura di stu articulu, stu limitu hè allargatu à 20 nodes) o un periodu di prova cù capacità cumplete per 1 mese.

Cumu tuttu funziona

Dunque, a parte principale di Kubecost hè l'applicazione mudellu di costu, scrittu in Go. Un graficu Helm chì descrive u sistema tutale hè chjamatu analizzatore di costu è in u so core hè una assemblea da un mudellu di costu cù Prometheus, Grafana è parechji dashboards.

In generale, u mudellu di costu hà a so propria interfaccia web, chì mostra gràfiche è statistiche dettagliate nantu à i costi in forma tabulare, è, sicuru, cunsiglii per ottimisà i costi. I dashboards presentati in Grafana sò una prima tappa in u sviluppu di Kubecost è cuntenenu assai i stessi dati cum'è u mudellu di costu, cumplementendu cù e statistiche di solitu nantu à u cunsumu di CPU / memoria / rete / spaziu di discu in u cluster è i so cumpunenti. .

Cumu funziona Kubecost?

  • Cost-model riceve i prezzi per i servizii attraversu l'API di i fornitori di nuvola.
  • Inoltre, secondu u tipu di ferru di u node è a regione, u costu per node hè calculatu.
  • Basatu nantu à u costu di i nodi in esecuzione, ogni pod di foglia riceve un costu per ora di usu di CPU, per gigabyte di memoria cunsumata, è per ora per gigabyte di dati almacenati - secondu u nodu in cui era in esecuzione o a classe di almacenamento.
  • Basatu nantu à u costu di l'operazione di pods individuali, u pagamentu hè calculatu per namespaces, servizii, Deployments, StatefulSets.
  • E statistiche sò calculate utilizendu metriche furnite da kube-state-metrics è node-exporter.

Hè impurtante di cunsiderà chì Kubecost per automaticamente conta solu e risorse dispunibili in Kubernetes. Basi di dati esterni, servitori GitLab, almacenamenti S3 è altri servizii chì ùn sò micca in u cluster (ancu s'ellu si trovanu in u stessu nuvulu) ùn sò micca visibili per ellu. Ancu se per GCP è AWS pudete aghjunghje e chjave di i vostri cunti di serviziu è calculate tuttu inseme.

rimarchevuli

Kubecost richiede:

  • Kubernetes versione 1.8 è superiore;
  • kube-state-metrics;
  • Prumeteu;
  • node-esportatore.

Hè accadutu chì in i nostri clusters tutte sti cundizioni sò stati scontri in anticipu, cusì hè risultatu chì era abbastanza solu per specificà u puntu finale currettu per l'accessu à Prometheus. Tuttavia, u graficu ufficiale di kubecost Helm cuntene tuttu ciò chì avete bisognu per eseguisce nantu à un cluster nudu.

Ci hè parechje manere di installà Kubecost:

  1. Metudu di stallazione standard descritta in instructions nantu à u situ web di u sviluppatore. Obligatu aghjunghje u repository di l'analizzatore di costu à Helm, è dopu installate u graficu. Tuttu ciò chì resta hè di rinvià u vostru portu è aghjustà i paràmetri à u statu desideratu manualmente (via kubectl) è / o utilizendu l'interfaccia web di u costu-model.

    Ùn avemu ancu pruvatu stu metudu, postu chì ùn usemu micca cunfigurazioni pronti di terzu partitu, ma pare una bona opzione "prova per sè stessu". Sè avete digià alcuni di i cumpunenti di u sistema installati o vulete più fine-tuning, hè megliu cunsiderà a seconda strada.

  2. Aduprà essenzialmente u listessu graficu, ma cunfigurate è installate sè stessu in ogni modu cunvene.

    Comu dighjà dettu, in più di u kubecost stessu, sta carta cuntene i grafici Grafana è Prometheus, chì ponu ancu esse persunalizate cum'è desiderate.

    Disponibile nantu à a carta values.yaml per l'analizzatore di costu permette di cunfigurà:

    • una lista di cumpunenti di l'analizzatore di costu chì deve esse implementatu;
    • u vostru endpoint per Prometheus (se avete digià unu);
    • duminii è altri paràmetri di ingressu per u costu-model è Grafana;
    • annotazioni per pods;
    • a necessità di utilizà un almacenamentu permanente è a so dimensione.

    Una lista completa di l'opzioni di cunfigurazione dispunibili cù descrizzioni hè dispunibule in ducumentazione.

    Siccomu kubecost in a so versione basica ùn pò micca limità l'accessu, avete bisognu di cunfigurà immediatamente l'autenticazione basica per u pannellu web.

  3. Installà solu u core di u sistema - mudellu di costu. Per fà questu, duvete avè installatu Prometheus in u cluster è specificà u valore currispundente di u so indirizzu in a variàbile. prometheusEndpoint per Helm. Dopu quì - appiecà set di cunfigurazioni YAML in u cluster.

    Di novu, vi tuccherà à aghjunghje manualmente Ingress cù basic-auth. Infine, avete bisognu di aghjunghje una sezione per a cullizzioni di metriche di mudelli di costu extraScrapeConfigs in a cunfigurazione di 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

Chì avemu?

Cù una stallazione cumpleta, avemu a nostra dispusizione u pannellu web kubecost è Grafana cù un set di dashboards.

Criteriu totali, affissatu nantu à a pantalla principale, in realtà mostra u costu stimatu di risorse per u mese. Questu prughjettata prezzu chì riflette u costu di l'usu di u cluster (per mese) à u livellu attuale di u cunsumu di risorse.

Questa metrica hè più per analizà e spese è ottimisimu. Ùn hè micca assai cunvenutu per guardà i costi totali per u lugliu astrattu in kubecost: avete da fà questu vai à a fatturazione. Ma pudete vede i costi spartuti per namespaces, etichette, pods per 1/2/7/30/90 ghjorni, chì a fattura ùn vi mostrarà mai.

Revisione Kubecost per risparmià soldi in Kubernetes in i nuvuli

Parrannu di etichette. Duvete andà immediatamente à i paràmetri è stabilisce i nomi di l'etichette chì saranu aduprate cum'è categurie supplementari per i costi di raggruppamentu:

Revisione Kubecost per risparmià soldi in Kubernetes in i nuvuli

Pudete appiccà qualsiasi etichette nantu à elli - convenientu se avete digià u vostru propiu sistema di etichettatura.

Ancu quì pudete cambià l'indirizzu di l'endpoint API à quale u mudellu di costu si cunnetta, aghjustate a dimensione di scontu in GCP è stabilisce i vostri propri prezzi per risorse è valuta per a so misurazione (per una certa ragione a funzione ùn affetta micca u costu tutale).

Kubecost pò mostra diversi prublemi in u cluster (è ancu alerta in casu di periculu). Sfurtunatamente, l'opzione ùn hè micca cunfigurabile, è per quessa, se avete ambienti per i sviluppatori è l'utilizanu, vi vede constantemente qualcosa cum'è questu:

Revisione Kubecost per risparmià soldi in Kubernetes in i nuvuli

Un strumentu impurtante - Cluster Savings. Misura l'attività di pods (cunsumu di risorse, cumpresi quelli di a rete), è ancu calculate quantu soldi è ciò chì pudete salvà.

Pò sembrà chì i cunsiglii di ottimisazione sò abbastanza evidenti, ma l'esperienza suggerisce chì ci hè sempre qualcosa à fighjà. In particulare, l'attività di a rete di pods hè monitorata (Kubecost suggerisce attente à quelli inattivi), a memoria dumandata è attuale è u cunsumu di CPU hè paragunatu, è ancu a CPU utilizata da i nodi di cluster (suggerenu di colapsà parechji nodi in unu), discu. carica è un coppiu di decine di parametri più.

Cum'è cù qualsiasi prublema di ottimisazione, l'ottimisazione di risorse basate nantu à e dati Kubecost richiede: trattà cun prudenza. Per esempiu, Cluster Savings suggerisce l'eliminazione di i nodi, affirmannu chì hè sicuru, ma ùn piglia micca in contu a prisenza di selettori di node è taints in i podi dispiegati nantu à elli chì ùn sò micca dispunibili nantu à altri nodi. È in generale, ancu l'autori di u pruduttu in u so articulu recente (Per via, pò esse assai utile per quelli chì anu interessatu in u tema di u prugettu) hè cunsigliatu per ùn precipità in l'ottimisazione di i costi, ma per avvicinà u prublema pensativamente.

Risultati

Dopu avè utilizatu kubecost per un mesi in un paru di prughjetti, pudemu cuncludi chì hè un strumentu interessante (è ancu faciule d'amparà è di stallà) per analizà è ottimisà i costi per i servizii di i fornitori di nuvola utilizati per i cluster Kubernetes. I calculi diventanu assai precisi: in i nostri esperimenti, coincidenu cù ciò chì i fornituri anu veramente bisognu.

Ci hè ancu qualchì svantaghju: ci sò bugs micca critichi, è in certi lochi a funziunalità ùn copre i bisogni specifichi di certi prughjetti. Tuttavia, se avete bisognu di capisce rapidamente induve i soldi andanu è ciò chì pò esse "tagliatu" per riduce in modu coerente a fattura per i servizii di nuvola da 5-30% (questu hè ciò chì hè accadutu in u nostru casu), questa hè una grande opzione. .

PS

Leghjite puru nant'à u nostru blog:

Source: www.habr.com

Add a comment