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.
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:
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.
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.
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:
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.
Ngomong babagan label. Sampeyan kudu langsung menyang setelan lan nyetel jeneng label sing bakal digunakake minangka kategori tambahan kanggo biaya klompok:
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:
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.
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. .