Ngawaskeun Kluster Kubernetes: Tinjauan sareng Perkenalan kana Prometheus

Pertimbangkeun konsép ngawaskeun Kubernetes, kenal sareng alat Prometheus, sareng ngobrol ngeunaan waspada.

Topik ngawaskeun téh voluminous, teu bisa disassembled dina hiji artikel. Tujuan tina téks ieu nyaéta pikeun masihan gambaran ngeunaan alat, konsép sareng pendekatan.

Bahan artikel mangrupa squeeze ti ceramah kabuka sakola "Slurm". Upami anjeun hoyong nyandak kursus lengkep - ngadaptarkeun kursus on Ngawaskeun sareng logging infrastruktur di Kubernetes.

Ngawaskeun Kluster Kubernetes: Tinjauan sareng Perkenalan kana Prometheus

Naon anu diawaskeun dina klaster Kubernetes

Ngawaskeun Kluster Kubernetes: Tinjauan sareng Perkenalan kana Prometheus

server fisik. Upami klaster Kubernetes dipasang dina serverna, anjeun kedah ngawas kaséhatanana. Zabbix handles tugas ieu; Upami anjeun damel sareng anjeunna, maka anjeun henteu kedah nampik, moal aya konflik. Éta Zabbix anu ngawas kaayaan server kami.

Hayu urang ngaléngkah ka ngawaskeun dina tingkat klaster.

Komponén Control Plane: API, Scheduler jeung sajabana. Sahenteuna, anjeun kedah mastikeun yén API server atanapi etcd langkung ageung tibatan 0. Etcd tiasa ngabalikeun seueur métrik: ku disk anu dipintal, ku kaséhatan kluster jsb, sareng anu sanésna.

Docker mucunghul lila pisan jeung dulur ogé sadar masalah na: loba wadahna ngabalukarkeun freezes jeung masalah lianna. Ku alatan éta, Docker sorangan, salaku sistem, ogé kudu dikawasa, sahenteuna pikeun kasadiaan.

dns. Upami DNS ragrag dina kluster, maka sadaya jasa Discovery bakal turun saatosna, sauran ti pods ka pods bakal lirén damel. Dina prakték kuring, teu aya masalah sapertos kitu, tapi ieu lain hartosna yén kaayaan DNS teu perlu diawaskeun. Nyuhunkeun latency sareng sababaraha métrik sanésna tiasa dilacak dina CoreDNS.

Ingress. Perlu ngadalikeun kasadiaan ingresses (kaasup Ingress Controller) salaku titik éntri kana proyék.

Komponén utama kluster parantos dibongkar - ayeuna hayu urang turun ka tingkat abstraksi.

Éta sigana yén aplikasi dijalankeun dina pods, anu hartosna aranjeunna kedah dikontrol, tapi kanyataanana henteu. Pods anu ephemeral: dinten aranjeunna ngajalankeun on hiji server, isukan on sejen; kiwari aya 10 sahijina, isukan 2. Ku alatan éta, euweuh ngawas pods. Dina arsitéktur microservice, éta leuwih penting pikeun ngadalikeun kasadiaan aplikasi sakabéhna. Khususna, pariksa kasadiaan titik tungtung jasa: naha aya anu tiasa dianggo? Upami aplikasina sayogi, teras naon anu kajantenan di tukangeun éta, sabaraha réplika ayeuna - ieu patarosan tina urutan kadua. Teu perlu ngawas instansi individu.

Dina tingkat anu terakhir, anjeun kedah ngontrol operasi aplikasi sorangan, nyandak métrik bisnis: jumlah pesenan, paripolah pangguna, sareng anu sanésna.

Prometheus

Sistem anu pangsaéna pikeun ngawaskeun klaster nyaéta Prometheus. Kuring henteu terang alat naon waé anu tiasa cocog sareng Prometheus dina hal kualitas sareng betah dianggo. Éta saé pikeun infrastruktur anu fleksibel, janten nalika aranjeunna nyarios "ngawaskeun Kubernetes", aranjeunna biasana hartosna Prometheus.

Aya sababaraha pilihan pikeun ngamimitian Prometheus: nganggo Helm, anjeun tiasa masang Prometheus atanapi Prometheus Operator biasa.

  1. Prometheus biasa. Sadayana henteu kunanaon, tapi anjeun kedah ngonpigurasikeun ConfigMap - kanyataanna, nyerat file konfigurasi dumasar-téks, sapertos anu urang lakukeun sateuacan, sateuacan arsitéktur microservice.
  2. Prometheus Operator téh saeutik leuwih sumebar kaluar, saeutik leuwih pajeulit dina watesan logika internal, tapi leuwih gampang pikeun digawe sareng eta: aya objék misah, abstraksi ditambahkeun kana klaster, ngarah leuwih merenah pikeun ngadalikeun jeung ngonpigurasikeun.

Pikeun ngartos produkna, kuring nyarankeun masang Prometheus biasa heula. Anjeun kedah ngonpigurasikeun sadayana ngalangkungan konfigurasi, tapi ieu bakal nguntungkeun: anjeun bakal terang naon milik naon sareng kumaha éta dikonpigurasi. Dina Prometheus Operator, anjeun langsung naek ka abstraksi luhur, sanajan anjeun ogé tiasa delve kana bojong lamun hayang.

Prometheus ogé terintegrasi sareng Kubernetes: éta tiasa ngaksés sareng berinteraksi sareng Server API.

Prometheus populer, sababna seueur aplikasi sareng basa pamrograman ngadukung éta. Rojongan diperlukeun, saprak Prometheus boga format metrics sorangan, sarta pikeun mindahkeun éta, anjeun peryogi boh perpustakaan jero aplikasi atawa éksportir siap-dijieun. Sareng aya sababaraha eksportir sapertos kitu. Salaku conto, aya PostgreSQL Exporter: butuh data tina PostgreSQL sareng ngarobih kana format Prometheus supados Prometheus tiasa damel sareng éta.

Arsitéktur Prometheus

Ngawaskeun Kluster Kubernetes: Tinjauan sareng Perkenalan kana Prometheus

Server Prometheus nyaéta tungtung tukang, otak Prometheus. Métrik disimpen sareng diolah di dieu.

Métrik disimpen dina database séri waktos (TSDB). TSDB sanes database anu misah, tapi paket dina basa Go anu dipasang dina Prometheus. Sacara kasar, sadayana aya dina hiji binér.

Ulah nyimpen data dina TSDB pikeun lila

Infrastruktur Prometheus henteu cocog pikeun neundeun métrik jangka panjang. Mangsa ingetan standar nyaéta 15 dinten. Anjeun tiasa ngaleuwihan wates ieu, tapi émut: langkung seueur data anu anjeun simpen di TSDB sareng langkung lami anjeun ngalakukeunana, langkung seueur sumber daya anu bakal dikonsumsi. Nyimpen data sajarah dina Prometheus dianggap prakték goréng.

Upami anjeun gaduh lalu lintas anu ageung, jumlah métrik ratusan rébu per detik, maka langkung saé pikeun ngabatesan panyimpen ku rohangan disk atanapi ku période. Biasana, "data panas" disimpen dina TSDB, métrik dina ngan sababaraha jam. Pikeun neundeun anu langkung panjang, panyimpenan éksternal dianggo dina pangkalan data anu leres-leres cocog pikeun ieu, contona, InfluxDB, ClickHouse, sareng anu sanésna. Kuring nempo ulasan leuwih alus ngeunaan ClickHouse.

Prometheus Server dianggo dina modél Betot: anjeunna mana pikeun metrics maranéhanana titik tungtung nu urang masihan anjeunna. Maranéhanana ngomong: "buka Server API", sarta anjeunna mana aya unggal n-th angka detik sarta nyokot metrics.

Pikeun objék kalawan umur pondok (proyek atawa cron pakasaban) nu bisa muncul antara période scraping, aya komponén Pushgateway. Métrik tina objék jangka pondok didorong kana éta: padamelan naék, ngalaksanakeun tindakan, ngirim métrik ka Pushgateway sareng réngsé. Saatos sababaraha waktos, Prometheus bakal turun dina laju sorangan sareng nyandak métrik ieu tina Pushgateway.

Pikeun ngonpigurasikeun bewara dina Prometheus aya komponén anu misah - Alarmmanager. Jeung aturan alerting. Contona, Anjeun kudu nyieun hiji ngageter lamun API server 0. Nalika acara kahuruan, ngageter disalurkeun ka manajer ngageter pikeun dispatch salajengna. Pangatur ngageter gaduh setélan rute anu cukup fleksibel: hiji grup panggeuing tiasa dikirim ka obrolan telegram admin, anu sanés ka obrolan pamekar, sareng sapertilu ka obrolan para karyawan infrastruktur. Bewara tiasa dikirim ka Slack, Telegram, email, sareng saluran sanés.

Tungtungna, kuring bakal nyarioskeun ka anjeun ngeunaan fitur pembunuh Prometheus - Ngajalajah. Nalika damel sareng Prometheus, anjeun henteu kedah netepkeun alamat khusus objék pikeun ngawaskeun, cukup pikeun nyetél jinisna. Nyaéta, anjeun henteu kedah nyerat "di dieu alamat IP, di dieu mangrupikeun port - monitor", tibatan, anjeun kedah nangtukeun ku naon prinsip pikeun mendakan objék ieu (target - tujuan). Prometheus sorangan, gumantung kana objék anu ayeuna aktip, narik anu dipikabutuh sareng nambihanana pikeun ngawaskeun.

pendekatan ieu fits ogé kalawan struktur Kubernetes, dimana sagalana ogé floats: kiwari aya 10 server, isukan 3. Dina raraga teu nangtukeun alamat IP tina server unggal waktu, aranjeunna wrote sakali kumaha carana manggihan eta - sarta manggihan bakal ngalakukeun eta. .

Basa Prometheus disebutna PromQL. Nganggo basa ieu, anjeun tiasa kéngingkeun nilai métrik khusus teras ngarobih, ngawangun itungan analitik dumasar kana éta.

https://prometheus.io/docs/prometheus/latest/querying/basics/

Простой запрос

    container_memory_usage_bytes

Математические операции

    container_memory_usage_bytes / 1024 / 1024

Встроенные функции

    sum(container_memory_usage_bytes) / 1024 / 1024

Уточнение запроса

    100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)

panganteur web Prometheus

Prometheus gaduh antarmuka wéb anu cukup minimalis. Ngan cocog pikeun debug atanapi démo.

Ngawaskeun Kluster Kubernetes: Tinjauan sareng Perkenalan kana Prometheus

Dina garis Ekspresi, anjeun tiasa nyerat patarosan dina basa PromQL.

Tab Alerts ngandung aturan ngageter, sareng aranjeunna gaduh tilu status:

  1. teu aktif - lamun ngageter teu aktif dina momen, nyaeta, sagalana geus rupa jeung eta, sarta eta teu jalan;
  2. pending - ieu lamun ngageter digawé, tapi ngirim teu acan kaliwat. Tunda disetel pikeun ngimbangan kedip-kedip jaringan: upami ladenan anu ditunjuk parantos ningkat dina menit, maka alarm teu kedah disada;
  3. némbak mangrupikeun status katilu nalika waspada hurung sareng ngirim pesen.

Dina menu Status anjeun bakal manggihan aksés ka informasi ngeunaan naon Prometheus. Aya ogé transisi ka udagan (target), anu urang bahas di luhur.

Ngawaskeun Kluster Kubernetes: Tinjauan sareng Perkenalan kana Prometheus

Pikeun gambaran nu leuwih lengkep ngeunaan panganteur Prometheus, tingali dina ceramah Slurm ngeunaan ngawaskeun klaster Kubernetes.

Integrasi sareng Grafana

Dina panganteur web Prometheus, anjeun moal manggihan grafik geulis tur kaharti ti mana anjeun bisa ngagambar kacindekan ngeunaan kaayaan klaster. Pikeun ngawangun éta, Prometheus terpadu sareng Grafana. Kami meunang dasbor sapertos kitu.

Ngawaskeun Kluster Kubernetes: Tinjauan sareng Perkenalan kana Prometheus

Nyetél integrasi Prometheus sareng Grafana henteu sesah pisan, anjeun tiasa mendakan petunjuk dina dokuméntasi: Rojongan GRAFANA Pikeun PROMETHEUSMuhun, abdi bakal mungkas ku ieu.

Dina tulisan di handap ieu, urang bakal neraskeun topik ngawaskeun: urang bakal ngobrol ngeunaan ngumpulkeun sareng nganalisa log nganggo Grafana Loki sareng alat alternatif.

Panulis: Marcel Ibraev, administrator Kubernetes Certified, practicing insinyur di pausahaan Southbridge, spiker jeung tangtu pamekar Slurm.

sumber: www.habr.com

Tambahkeun komentar