ulasan Kubecost pikeun nyimpen duit dina Kubernetes dina awan

ulasan Kubecost pikeun nyimpen duit dina Kubernetes dina awan

Ayeuna, beuki loba pausahaan nu mindahkeun infrastruktur maranéhanana ti server hardware jeung mesin virtual sorangan ka awan. Solusi ieu gampang dijelaskeun: teu kedah hariwang ngeunaan hardware, kluster gampang dikonpigurasi ku sababaraha cara ... sareng anu paling penting, téknologi anu aya (sapertos Kubernetes) ngamungkinkeun pikeun ngan ukur skala kakuatan komputasi gumantung kana beban. .

Aspék finansial sok penting. Alat anu dibahas dina tulisan ieu dirancang pikeun ngabantosan ngirangan anggaran nalika nganggo infrastruktur awan sareng Kubernetes.

perkenalan

Kubecost nyaéta ngamimitian California ti Google, nyiptakeun solusi pikeun ngitung biaya infrastruktur dina jasa awan (dina kluster Kubernetes + sumberdaya dibagikeun), milarian bottlenecks dina setélan klaster sareng ngirim béwara anu pas ka Slack.

Kami gaduh klien sareng Kubernetes boh dina awan AWS sareng GCP anu biasa, sareng, langkung jarang pikeun komunitas Linux, Azure - sacara umum, dina sadaya platform anu dirojong ku Kubecost. Kanggo sababaraha di antarana, urang ngitung biaya jasa intra-cluster sorangan (nganggo metode anu sami sareng anu dianggo ku Kubecost), sareng ogé ngawas biaya infrastruktur sareng nyobian ngaoptimalkeunana. Ku alatan éta, logis yén kami kabetot dina kamungkinan automating tugas sapertos.

Kodeu sumber modul Kubecost utama dibuka dina kaayaan lisénsi Open Source (Lisensi Apache 2.0). Éta tiasa dianggo sacara bébas sareng fitur anu sayogi kedah cekap pikeun proyék-proyék leutik. Sanajan kitu, bisnis téh bisnis: sesa produk ditutup, éta bisa dipaké ku langganan mayar, nu ogé imply rojongan komérsial. Salaku tambahan, panulis nawiskeun lisénsi gratis pikeun klaster leutik (1 klaster sareng 10 titik - salami tulisan tulisan ieu, wates ieu parantos ngalegaan ka 20 titik) atanapi waktos percobaan kalayan kamampuan pinuh salami 1 bulan.

Kumaha eta sadayana jalan

Janten, bagian utama Kubecost nyaéta aplikasi modél biaya, ditulis dina Go. Bagan Helm anu ngajelaskeun sakabéh sistem disebut ongkos-analyzer sarta dina inti na mangrupakeun assembly ti ongkos-modél kalawan Prometheus, Grafana sarta sababaraha dashboards.

Sacara umum, modél biaya gaduh antarmuka wéb sorangan, anu nunjukkeun grafik sareng statistik detil ngeunaan biaya dina bentuk tabular, ogé, tangtosna, tip pikeun ngaoptimalkeun biaya. Dasbor anu dipidangkeun dina Grafana mangrupikeun tahap awal dina pamekaran Kubecost sareng ngandung seueur data anu sami sareng modél biaya, nambihanana sareng statistik biasa ngeunaan konsumsi CPU/memori/jaringan/ruang disk dina kluster sareng komponenana. .

Kumaha carana Kubecost jalan?

  • Cost-modél nampi harga pikeun jasa ngaliwatan API panyadia awan.
  • Salajengna, gumantung kana jinis beusi titik sareng daérah, biaya per titik diitung.
  • Dumasar kana biaya ngajalankeun titik, unggal pod daun meunang biaya per jam pamakean CPU, per gigabyte memori dikonsumsi, sarta per jam per gigabyte data disimpen - gumantung kana titik eta ngajalankeun on atawa kelas gudang.
  • Dumasar kana biaya operasi pods individu, pangmayaran diitung keur namespaces, jasa, Deployments, StatefulSets.
  • Statistik diitung nganggo métrik anu disayogikeun ku kube-state-metrics sareng node-éksportir.

Kadé mertimbangkeun yén Kubecost sacara standar ngan ukur ngitung sumberdaya anu aya di Kubernetes. Basis data éksternal, server GitLab, panyimpen S3 sareng jasa sanés anu henteu aya dina kluster (sanaos aya dina méga anu sami) henteu katingali ku éta. Sanaos pikeun GCP sareng AWS anjeun tiasa nambihan konci akun jasa anjeun sareng ngitung sadayana babarengan.

setting

Kubecost merlukeun:

  • Vérsi Kubernetes 1.8 sareng langkung luhur;
  • kube-nagara-métrik;
  • Prometheus;
  • node-éksportir.

Éta kajadian yén dina klaster urang sadayana kaayaan ieu kapendak sateuacanna, janten tétéla yén éta cekap ngan ukur nangtukeun titik anu leres pikeun aksés ka Prometheus. Sanajan kitu, bagan kubecost Helm resmi ngandung sagalana nu peryogi pikeun ngajalankeun dina klaster bulistir.

Aya sababaraha cara pikeun masang Kubecost:

  1. Métode instalasi standar dijelaskeun dina parentah dina ramatloka pamekar urang. Diperlukeun tambahkeun Repository cost-analyzer ka Helm, teras pasang bagan. Sadaya anu tetep nyaéta pikeun neraskeun port anjeun sareng nyaluyukeun setelan kana kaayaan anu dipikahoyong sacara manual (via kubectl) sareng / atanapi nganggo antarmuka wéb modél biaya.

    Kami henteu acan nyobian metodeu ieu, sabab kami henteu nganggo konfigurasi siap-siap pihak katilu, tapi sigana pilihan anu saé "ngan cobaan pikeun diri anjeun". Upami Anjeun tos boga sababaraha komponén sistem dipasang atawa rék leuwih fine-tuning, eta leuwih hade mertimbangkeun jalur kadua.

  2. Paké dasarna bagan sarua, tapi ngonpigurasikeun tur masangkeunana sorangan dina sagala cara merenah.

    Sakumaha anu parantos disebatkeun, sajaba kubecost sorangan, bagan ieu ngandung grafik Grafana sareng Prometheus, anu ogé tiasa disaluyukeun sakumaha anu dipikahoyong.

    Sadia dina bagan values.yaml pikeun cost-analyzer ngidinan Anjeun pikeun ngonpigurasikeun:

    • daptar komponén cost-analyzer nu kudu deployed;
    • titik tungtung anjeun pikeun Prometheus (upami anjeun parantos ngagaduhan);
    • domain sareng setelan ingress séjén pikeun modél biaya sareng Grafana;
    • annotations pikeun pods;
    • kudu ngagunakeun gudang permanén jeung ukuranana.

    Daptar lengkep pilihan konfigurasi sadia kalawan déskripsi sadia dina dokuméntasi.

    Kusabab kubecost dina versi dasarna teu tiasa ngawatesan aksés, anjeun kedah langsung ngonpigurasikeun dasar-auth pikeun panel wéb.

  3. Pasang ngan inti sistem - modél ongkos. Jang ngalampahkeun ieu, anjeun kudu boga Prometheus dipasang dina klaster jeung nangtukeun nilai pakait alamat na dina variabel. prometheusEndpoint pikeun Helm. Sanggeus éta - nerapkeun susunan konfigurasi YAML dina klaster.

    Sakali deui, anjeun kedah nambihan Ingress sacara manual nganggo dasar-auth. Tungtungna, anjeun kedah nambihan bagian pikeun ngumpulkeun métrik modél biaya extraScrapeConfigs dina 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

Naon anu urang meunang?

Kalayan pamasangan anu lengkep, kami gaduh kubecost sareng panel wéb Grafana kalayan sakumpulan dasbor.

total biaya, dipintonkeun dina layar utama, sabenerna nembongkeun estimasi biaya sumberdaya pikeun bulan. Ieu diproyeksikan hargana ngagambarkeun biaya ngagunakeun klaster (per bulan) dina tingkat konsumsi sumberdaya ayeuna.

Métrik ieu langkung seueur pikeun nganalisis biaya sareng ngaoptimalkeunana. Teu pisan merenah katingal dina total biaya keur abstrak Juli di kubecost: anjeun bakal kudu buka tagihanana. Tapi anjeun tiasa ningali biaya direcah ku namespaces, labél, pods pikeun 1/2/7/30/90 poé, nu tagihan moal nembongkeun maneh.

ulasan Kubecost pikeun nyimpen duit dina Kubernetes dina awan

Diomongkeun ngeunaan labél. Anjeun kedah langsung angkat ka setélan sareng nyetél nami labél anu bakal dianggo salaku kategori tambahan pikeun biaya ngagolongkeun:

ulasan Kubecost pikeun nyimpen duit dina Kubernetes dina awan

Anjeun tiasa ngagantungkeun labél naon waé - merenah upami anjeun parantos gaduh sistem panyiri sorangan.

Ogé di dinya anjeun tiasa ngarobih alamat titik API anu nyambungkeun modél biaya, saluyukeun ukuran diskon di GCP sareng nyetél harga anjeun nyalira pikeun sumber daya sareng mata uang pikeun pangukuranna (kusabab fitur henteu mangaruhan total biaya).

Kubecost bisa nembongkeun rupa masalah dina klaster (malah waspada bisi bahaya). Hanjakalna, pilihan éta henteu tiasa dikonfigurasi, sareng ku kituna, upami anjeun gaduh lingkungan pikeun pamekar sareng ngagunakeunana, anjeun bakal teras-terasan ningali sapertos kieu:

ulasan Kubecost pikeun nyimpen duit dina Kubernetes dina awan

Hiji alat penting - Tabungan Kluster. Éta ngukur kagiatan pods (konsumsi sumber daya, kalebet jaringan), sareng ogé ngitung sabaraha artos sareng naon anu anjeun tiasa simpen.

Ieu mungkin sigana tips optimasi anu rada atra, tapi pangalaman nunjukkeun yen aya kénéh hal katingal pa. Khususna, kagiatan jaringan pods dipantau (Kubecost nyarankeun nengetan anu teu aktip), mémori anu dipénta sareng aktual sareng konsumsi CPU dibandingkeun, kitu ogé CPU anu dianggo ku titik kluster (nyarankeun ambruk sababaraha titik kana hiji), disk. beban sareng sababaraha belasan langkung parameter.

Sapertos masalah optimasi, ngaoptimalkeun sumberdaya dumasar kana data Kubecost peryogi: ngubaran kalawan caution. Contona, Cluster Savings nyarankeun mupus titik, ngaku yén éta téh aman, tapi teu tumut kana akun ayana titik-selectors na taints dina pods deployed on aranjeunna anu henteu sadia dina titik lianna. Sarta sacara umum, malah pangarang produk di maranéhna artikel panganyarna (Ku jalan kitu, éta tiasa pisan mangpaat pikeun jalma anu kabetot dina topik proyek) Disarankeun teu rurusuhan headlong kana optimasi ongkos, tapi kaanggo masalah thoughtfully.

hasil

Saatos nganggo kubecost salami sabulan dina sababaraha proyék, urang tiasa nyimpulkeun yén éta mangrupikeun alat anu pikaresepeun (sareng ogé gampang diajar sareng dipasang) pikeun nganalisis sareng ngaoptimalkeun biaya pikeun jasa panyadia awan anu dianggo pikeun klaster Kubernetes. Itungan tétéla akurat pisan: dina percobaan kami aranjeunna coincided jeung naon panyadia sabenerna diperlukeun.

Aya ogé sababaraha kalemahan: aya bug non-kritis, sareng di sababaraha tempat fungsionalitasna henteu nutupan kabutuhan khusus pikeun sababaraha proyék. Nanging, upami anjeun kedah gancang ngartos dimana artos sareng naon anu tiasa "dipotong" supados konsistén ngirangan tagihan jasa awan ku 5-30% (ieu anu kajantenan dina kasus urang), ieu mangrupikeun pilihan anu saé. .

PS

Baca ogé dina blog urang:

sumber: www.habr.com

Tambahkeun komentar