Tinjauan Kubecost kanggo nyimpen dhuwit ing Kubernetes ing awan

Tinjauan Kubecost kanggo nyimpen dhuwit ing Kubernetes ing awan

Saiki, luwih akeh perusahaan sing nransfer infrastruktur saka server hardware lan mesin virtual dhewe menyang awan. Solusi iki gampang diterangake: ora perlu kuwatir babagan hardware, kluster gampang dikonfigurasi kanthi macem-macem cara ... lan sing paling penting, teknologi sing wis ana (kaya Kubernetes) bisa nggawe ukuran daya komputasi mung gumantung saka beban. .

Aspek finansial tansah penting. Alat sing dibahas ing artikel iki dirancang kanggo mbantu nyuda anggaran nalika nggunakake infrastruktur awan karo Kubernetes.

Pambuka

Kubecost minangka wiwitan California saka Google, nggawe solusi kanggo ngitung biaya infrastruktur ing layanan maya (ing kluster Kubernetes + sumber daya sing dienggo bareng), nggoleki bottlenecks ing setelan kluster lan ngirim kabar sing cocog menyang Slack.

Kita duwe klien karo Kubernetes ing awan AWS lan GCP sing akrab, lan, luwih jarang kanggo komunitas Linux, Azure - umume, ing kabeh platform sing didhukung dening Kubecost. Kanggo sawetara wong, kita ngetung biaya layanan intra-kluster dhewe (nggunakake cara sing padha karo sing digunakake dening Kubecost), lan uga ngawasi biaya infrastruktur lan nyoba ngoptimalake. Mulane, logis yen kita kasengsem ing kemungkinan ngotomatisasi tugas kasebut.

Kode sumber modul Kubecost utama mbukak miturut syarat lisensi Open Source (Lisensi Apache 2.0). Bisa digunakake kanthi bebas lan fitur sing kasedhiya kudu cukup kanggo proyek cilik. Nanging, bisnis iku bisnis: liyane saka produk ditutup, bisa digunakake dening langganan mbayar, sing uga nuduhake dhukungan komersial. Kajaba iku, penulis nawakake lisensi gratis kanggo kluster cilik (1 kluster kanthi 10 simpul - sajrone nulis artikel iki, watesan iki wis ditambah dadi 20 simpul) utawa periode uji coba kanthi kemampuan lengkap sajrone 1 wulan.

Carane kabeh bisa

Dadi, bagean utama Kubecost yaiku aplikasi model biaya, ditulis ing Go. Bagan Helm sing nggambarake kabeh sistem diarani penganalisis biaya lan ing inti sawijining DΓ©wan saka biaya-model karo Prometheus, Grafana lan sawetara dashboards.

UmumΓ©, model biaya duwe antarmuka web dhewe, sing nuduhake grafik lan statistik rinci babagan biaya ing wangun tabular, uga, mesthi, tips kanggo ngoptimalake biaya. Dashboard sing ditampilake ing Grafana minangka tahap awal ing pangembangan Kubecost lan ngemot akeh data sing padha karo model biaya, ditambah karo statistik biasa babagan konsumsi CPU / memori / jaringan / ruang disk ing kluster kasebut. komponen.

Kepiye cara kerja Kubecost?

  • Cost-model nampa prices kanggo layanan liwat API panyedhiya maya.
  • Salajengipun, gumantung saka jinis wesi simpul lan wilayah, biaya saben simpul diitung.
  • Adhedhasar biaya simpul mlaku, saben pod godhong entuk biaya saben jam panggunaan CPU, saben gigabyte memori sing dikonsumsi, lan saben jam saben gigabyte data sing disimpen - gumantung saka simpul sing digunakake utawa kelas panyimpenan.
  • Adhedhasar biaya operasi pod individu, pembayaran diwilang kanggo namespaces, layanan, Deployments, StatefulSets.
  • Statistik diitung nggunakake metrik sing diwenehake dening kube-state-metrics lan node-exporter.

Iku penting kanggo nimbang sing Kubecost kanthi gawan mung ngetang sumber daya sing kasedhiya ing Kubernetes. Database eksternal, server GitLab, panyimpenan S3 lan layanan liyane sing ora ana ing kluster (sanajan ana ing awan sing padha) ora katon. Senajan kanggo GCP lan AWS sampeyan bisa nambah tombol akun layanan lan ngetung kabeh bebarengan.

Instalasi

Kubecost mbutuhake:

  • Kubernetes versi 1.8 lan luwih dhuwur;
  • kube-state-metrics;
  • Prometheus;
  • node-eksportir.

Kedaden ing kluster kita kabeh kahanan iki wis ketemu ing advance, supaya iku cukup kanggo nemtokake endpoint bener kanggo akses menyang Prometheus. Nanging, grafik Helm kubecost resmi ngemot kabeh sing perlu kanggo mbukak ing klompok gundhul.

Ana sawetara cara kanggo nginstal Kubecost:

  1. Cara instalasi standar diterangake ing instruksi ing situs web pangembang. Dibutuhake nambah repositori biaya-analyzer kanggo Helm, banjur nginstal grafik. Sing isih ana yaiku nerusake port sampeyan lan nyetel setelan menyang negara sing dikarepake kanthi manual (liwat kubectl) lan/utawa nggunakake antarmuka web model biaya.

    Kita wis ora malah nyoba cara iki, awit kita ora nggunakake pihak katelu konfigurasi siap-digawe, nanging katon apik "mung nyoba dhewe" pilihan. Yen sampeyan wis duwe sawetara komponen sistem diinstal utawa sampeyan pengin liyane fine-tuning, iku luwih apik kanggo nimbang path liya.

  2. Gunakake ateges grafik padha, nanging ngatur lan nginstal dhewe kanthi cara sing trep.

    Kaya sing wis kasebut, saliyane kubecost dhewe, grafik iki ngemot grafik Grafana lan Prometheus, sing uga bisa disesuaikan kaya sing dikarepake.

    Kasedhiya ing grafik values.yaml kanggo cost-analyzer ngidini sampeyan ngatur:

    • dhaptar komponen biaya-analyzer sing kudu disebarake;
    • titik pungkasan kanggo Prometheus (yen sampeyan wis duwe);
    • domain lan setelan ingress liyane kanggo model biaya lan Grafana;
    • anotasi kanggo polong;
    • kudu nggunakake panyimpenan permanen lan ukurane.

    Dhaptar lengkap opsi konfigurasi sing kasedhiya karo deskripsi kasedhiya ing dokumentasi.

    Wiwit kubecost ing versi dhasar ora bisa matesi akses, sampeyan kudu langsung ngatur dhasar-auth kanggo panel web.

  3. Pasang mung inti sistem - model biaya. Kanggo nindakake iki, sampeyan kudu nginstal Prometheus ing kluster lan nemtokake nilai alamat sing cocog ing variabel kasebut. prometheusEndpoint kanggo Helm. Sawise iku - aplikasi set konfigurasi YAML ing kluster.

    Maneh, sampeyan kudu nambah Ingress kanthi manual kanthi dhasar-auth. Pungkasan, sampeyan kudu nambah bagean kanggo ngumpulake metrik model biaya extraScrapeConfigs ing konfigurasi 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

Apa sing kita entuk?

Kanthi instalasi lengkap, kita duwe panel web kubecost lan Grafana kanthi set dashboard.

Total biaya, ditampilake ing layar utama, bener nuduhake biaya kira-kira sumber daya kanggo sasi. Iki bisa ditebak rega nggambarake biaya nggunakake kluster (saben sasi) ing tingkat konsumsi sumber daya saiki.

Metrik iki luwih kanggo nganalisa biaya lan ngoptimalake. Iku ora trep banget kanggo dipikir ing total biaya kanggo abstrak Juli ing kubecost: sampeyan kudu pindhah menyang tagihan. Nanging sampeyan bisa ndeleng biaya bejat mudhun dening namespaces, labels, pods kanggo 1/2/7/30/90 dina, kang tagihan ora bakal nuduhake sampeyan.

Tinjauan Kubecost kanggo nyimpen dhuwit ing Kubernetes ing awan

Ngomong babagan label. Sampeyan kudu langsung menyang setelan lan nyetel jeneng label sing bakal digunakake minangka kategori tambahan kanggo biaya klompok:

Tinjauan Kubecost kanggo nyimpen dhuwit ing Kubernetes ing awan

Sampeyan bisa nyelehake label apa wae - trep yen sampeyan wis duwe sistem label dhewe.

Uga ing kana sampeyan bisa ngganti alamat titik pungkasan API sing disambungake model biaya, nyetel ukuran diskon ing GCP lan nyetel rega dhewe kanggo sumber daya lan mata uang kanggo pangukuran (saperangan alesan fitur kasebut ora mengaruhi biaya Total).

Kubecost bisa nuduhake macem-macem masalah ing kluster (lan malah waspada yen ana bebaya). Sayange, opsi kasebut ora bisa dikonfigurasi, mula, yen sampeyan duwe lingkungan kanggo pangembang lan digunakake, sampeyan bakal terus ndeleng kaya iki:

Tinjauan Kubecost kanggo nyimpen dhuwit ing Kubernetes ing awan

Alat penting - Tabungan Kluster. Iki ngukur kegiatan pods (konsumsi sumber daya, kalebu jaringan), lan uga ngitung jumlah dhuwit lan apa sing bisa disimpen.

Koyone tips optimasi cukup ketok, nanging pengalaman nuduhake yen isih ana sing kudu dideleng. Utamane, aktivitas jaringan pods dipantau (Kubecost nyaranake menehi perhatian marang sing ora aktif), memori sing dijaluk lan nyata lan konsumsi CPU dibandhingake, uga CPU sing digunakake dening node kluster (nyaranake ambruk sawetara simpul dadi siji), disk mbukak lan saperangan rolas paramèter liyane.

Kaya masalah optimasi, ngoptimalake sumber daya adhedhasar data Kubecost mbutuhake: nambani kanthi ati-ati. Contone, Cluster Savings nyaranake mbusak simpul, ngakoni yen aman, nanging ora nggatekake ananΓ© pamilih simpul lan taint ing polong sing disebarake sing ora kasedhiya ing kelenjar liyane. Lan umume, malah penulis produk ing artikel anyar (kanthi cara, bisa migunani banget kanggo wong-wong sing kasengsem ing topik proyek kasebut) dianjurake supaya ora cepet-cepet ngoptimalake biaya, nanging nyedhaki masalah kasebut kanthi teliti.

Hasil

Sawise nggunakake kubecost sajrone sewulan ing sawetara proyek, kita bisa nyimpulake manawa alat kasebut menarik (lan uga gampang sinau lan nginstal) kanggo nganalisa lan ngoptimalake biaya kanggo layanan panyedhiya maya sing digunakake kanggo klompok Kubernetes. Petungan kasebut akurat banget: ing eksperimen kita padha karo apa sing dibutuhake panyedhiya.

Ana uga sawetara kekurangan: ana kewan omo sing ora kritis, lan ing sawetara panggonan fungsi kasebut ora nutupi kabutuhan tartamtu kanggo sawetara proyek. Nanging, yen sampeyan kudu cepet ngerti ngendi dhuwit arep lan apa sing bisa "dipotong" kanggo terus-terusan ngurangi tagihan kanggo layanan maya kanthi 5-30% (iki kedadeyan ing kasus kita), iki minangka pilihan sing apik. .

PS

Waca uga ing blog kita:

Source: www.habr.com

Add a comment