Iwwerwaachung vun engem Kubernetes Cluster: Eng Iwwersiicht an Aféierung zum Prometheus

Betruecht d'Konzept vun der Kubernetes Iwwerwachung, kennt de Prometheus Tool a schwätzt iwwer Alarm.

D'Thema vun der Iwwerwaachung ass voluminös, et kann net an engem Artikel ofgebaut ginn. Den Zweck vun dësem Text ass en Iwwerbléck iwwer d'Tools, Konzepter an Approche ze bidden.

D'Material vum Artikel ass e Squeeze aus offene Virtrag vun der Schoul "Slurm". Wann Dir wëllt e ganze Cours ze huelen - aschreiwen fir e Cours op Iwwerwachung a Logbicher Infrastruktur zu Kubernetes.

Iwwerwaachung vun engem Kubernetes Cluster: Eng Iwwersiicht an Aféierung zum Prometheus

Wat gëtt an engem Kubernetes Cluster iwwerwaacht

Iwwerwaachung vun engem Kubernetes Cluster: Eng Iwwersiicht an Aféierung zum Prometheus

kierperlech Serveren. Wann de Kubernetes Cluster op seng Serveren ofgesat ass, musst Dir hir Gesondheet iwwerwaachen. Zabbix geréiert dës Aufgab; wann Dir mat him schafft, da braucht Dir net ze refuséieren, et gëtt keng Konflikter. Et ass Zabbix déi den Zoustand vun eise Serveren iwwerwaacht.

Loosst eis weider op d'Iwwerwaachung um Clusterniveau goen.

Kontrollplane Komponenten: API, Scheduler an anerer. Op e Minimum musst Dir sécher sinn datt d'API vu Serveren oder etcd méi grouss ass wéi 0. Etcd ka vill Metriken zréckginn: duerch d'Disken op deenen et dréit, duerch d'Gesondheet vu sengem etcd Cluster, an anerer.

Docker viru laanger Zäit erschéngt a jiddereen ass sech gutt bewosst iwwer seng Probleemer: vill Container generéieren Gefruer an aner Probleemer. Dofir, Docker selwer, als System, soll och kontrolléiert ginn, op d'mannst fir Disponibilitéit.

dns. Wann DNS am Cluster fällt, da fällt de ganzen Discovery Service duerno of, Uriff vu Pods op Pods stoppen op ze schaffen. A menger Praxis waren et keng sou Probleemer, awer dat heescht net datt den Zoustand vun der DNS net iwwerwaacht muss ginn. Ufro latency an e puer aner Metriken kënnen op CoreDNS verfollegt ginn.

Ingress. Et ass néideg fir d'Disponibilitéit vun Ingressen ze kontrolléieren (inklusiv den Ingress Controller) als Entrée fir de Projet.

D'Haaptkomponente vum Stärekoup goufen ofgebaut - loosst eis elo erof op den Niveau vun Abstraktiounen.

Et géif schéngen datt Uwendungen a Pods lafen, dat heescht datt se kontrolléiert musse ginn, awer a Wierklechkeet sinn se net. Pods sinn ephemeral: haut lafe se op engem Server, muer op engem aneren; haut sinn et der 10, muer 2. Dofir iwwerwaacht keen de Pods. Bannent enger Mikroservicearchitektur ass et méi wichteg d'Disponibilitéit vun der Applikatioun als Ganzt ze kontrolléieren. Besonnesch kontrolléiert d'Disponibilitéit vun de Service Endpoints: funktionéiert eppes? Wann d'Applikatioun verfügbar ass, wat geschitt hannendrun, wéi vill Repliken sinn elo - dat si Froen vun der zweeter Uerdnung. Et ass net néideg fir eenzel Fäll ze iwwerwaachen.

Um leschte Niveau musst Dir d'Operatioun vun der Applikatioun selwer kontrolléieren, geschäftlech Metriken huelen: d'Zuel vun den Bestellungen, d'Benotzerverhalen, asw.

Prometheus

De beschte System fir e Stärekoup ze iwwerwaachen ass Prometheus. Ech weess keen Tool dat mat Prometheus a punkto Qualitéit an einfacher Benotzung Match kann. Et ass super fir flexibel Infrastruktur, also wa se soen "Kubernetes Iwwerwachung", mengen se normalerweis Prometheus.

Et ginn e puer Méiglechkeeten fir mat Prometheus unzefänken: andeems Dir Helm benotzt, kënnt Dir e reguläre Prometheus oder Prometheus Operator installéieren.

  1. Regelméisseg Prometheus. Alles ass gutt mat him, awer Dir musst ConfigMap konfiguréieren - tatsächlech schreift Text-baséiert Konfiguratiounsdateien, wéi mir et virdru gemaach hunn, virun der Mikroservicearchitektur.
  2. Prometheus Operator ass e bësse méi verbreet, e bësse méi komplizéiert wat d'intern Logik ugeet, awer et ass méi einfach domat ze schaffen: et gi separat Objeten, Abstraktioune ginn an de Stärekoup bäigefüügt, sou datt se vill méi bequem sinn ze kontrolléieren an ze konfiguréieren.

Fir de Produit ze verstoen, empfeelen ech fir d'éischt de reguläre Prometheus z'installéieren. Dir musst alles duerch d'Konfiguratioun konfiguréieren, awer dëst wäert profitabel sinn: Dir wäert erausfannen wat zu deem gehéiert a wéi et konfiguréiert ass. Am Prometheus Operator klëmmt Dir direkt op eng Abstraktioun méi héich, och wann Dir wëllt och an d'Déift verdauen.

Prometheus ass gutt integréiert mat Kubernetes: et kann Zougang zum API Server an interagéieren.

Prometheus ass populär, dofir ënnerstëtzen eng grouss Zuel vun Uwendungen a Programméierungssproochen. Ënnerstëtzung ass néideg, well Prometheus säin eegene Metrikformat huet, a fir et ze transferéieren, braucht Dir entweder eng Bibliothéik an der Applikatioun oder e fäerdegen Exportateur. An et ginn zimmlech vill esou Exporter. Zum Beispill gëtt et PostgreSQL Exporter: et hëlt Daten aus PostgreSQL a konvertéiert se an de Prometheus-Format sou datt de Prometheus domat ka schaffen.

Prometheus Architektur

Iwwerwaachung vun engem Kubernetes Cluster: Eng Iwwersiicht an Aféierung zum Prometheus

Prometheus Server ass de Réck Enn, d'Gehir vum Prometheus. Metriken ginn hei gespäichert a veraarbecht.

D'Metrike ginn an der Zäitserie Datebank (TSDB) gespäichert. TSDB ass keng separat Datebank, awer e Package an der Go Sprooch déi am Prometheus agebonnen ass. Grof geschwat ass alles an engem Binär.

Späichert keng Daten an TSDB fir eng laang Zäit

D'Prometheus Infrastruktur ass net gëeegent fir laangfristeg Späichere vu Metriken. D'Standard Retentiounsperiod ass 15 Deeg. Dir kënnt dës Limit iwwerschreiden, awer behalen: wat méi Daten Dir an TSDB späichert an wat Dir méi laang maacht, wat méi Ressourcen et verbraucht. D'Späichere vun historeschen Donnéeën am Prometheus gëtt als schlecht Praxis ugesinn.

Wann Dir e grousse Traffic hutt, ass d'Zuel vun de Metriken Honnerte vun Dausende pro Sekonn, dann ass et besser hir Späichere per Disk Space oder no Period ze limitéieren. Normalerweis ginn "waarm Daten" an TSDB gespäichert, Metriken an nëmmen e puer Stonnen. Fir méi laang Späichere gëtt extern Späichere benotzt an deenen Datenbanken déi wierklech dofir gëeegent sinn, zum Beispill InfluxDB, ClickHouse, asw. Ech hunn méi gutt Kritiken iwwer ClickHouse gesinn.

Prometheus Server funktionnéiert um Modell zitt: hie geet fir Metriken op déi Endpunkter, déi mir him ginn. Si soten: "Gitt op den API Server", an hien geet do all n-ten Zuel vu Sekonnen an hëlt d'Metriken.

Fir Objete mat enger kuerzer Liewensdauer (Job oder Cron Job) déi tëscht Schrauwenperioden erschéngen kënnen, gëtt et e Pushgateway-Komponent. Metriken aus kuerzfristeg Objete ginn an et gedréckt: d'Aarbecht ass eropgaang, eng Handlung gemaach, Metriken op Pushgateway geschéckt a fäerdeg. No enger Zäit wäert de Prometheus a sengem eegene Tempo erofkommen an dës Metriken aus Pushgateway ophuelen.

Fir Notifikatiounen am Prometheus ze konfiguréieren gëtt et eng separat Komponent - Alertmanager. An d'Alarmregelen. Zum Beispill musst Dir eng Alarm erstellen wann de Server API 0. Wann d'Evenement brennt, gëtt d'Alarm un den Alarmmanager fir weider Verschécken iwwerginn. Den Alarmmanager huet zimmlech flexibel Routing-Astellungen: eng Grupp vun Alarmer kann an den Administrateuren'Telegram Chat geschéckt ginn, eng aner an den Entwéckler'Chat, an en Drëttel un den Infrastrukturaarbechter'Chat. Notifikatioune kënnen op Slack, Telegram, E-Mail an aner Kanäl geschéckt ginn.

A schliisslech wäert ech Iech iwwer d'Prometheus Killer Feature soen - entdecken. Wann Dir mat Prometheus schafft, musst Dir keng spezifesch Adresse vun Objeten fir Iwwerwaachung spezifizéieren, et ass genuch fir hiren Typ ze setzen. Dat ass, Dir musst net schreiwen "hei ass d'IP Adress, hei ass den Hafen - Monitor", amplaz, musst Dir bestëmmen no wéi enge Prinzipien dës Objeten ze fannen (Ziler - Ziler). Prometheus selwer, jee no wéi enge Objeten am Moment aktiv sinn, zitt déi néideg op a füügt se un d'Iwwerwaachung.

Dës Approche passt gutt mat der Kubernetes Struktur, wou och alles schwëmmt: haut sinn et 10 Server, muer 3. Fir net all Kéier d'IP Adress vum Server ze spezifizéieren, hu se eng Kéier geschriwwen wéi se se fannen - an Discovering wäert et maachen .

D'Prometheus Sprooch gëtt genannt PromQL. Mat dëser Sprooch kënnt Dir d'Wäerter vu spezifesche Metriken kréien an se dann konvertéieren, analytesch Berechnunge baséieren op hinnen.

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)

Prometheus Web Interface

Prometheus huet seng eege, zimlech minimalistesch Webinterface. Nëmme gëeegent fir Debug oder Demonstratioun.

Iwwerwaachung vun engem Kubernetes Cluster: Eng Iwwersiicht an Aféierung zum Prometheus

An der Expression Linn kënnt Dir eng Ufro an der PromQL Sprooch schreiwen.

D'Alarmer Tab enthält Alarmregelen, a si hunn dräi Statusen:

  1. inaktiv - wann d'Alarm am Moment net aktiv ass, dat heescht, alles ass gutt mat him, an et huet net geschafft;
  2. waarden - dëst ass wann d'Alarm funktionnéiert, awer d'Sendung ass nach net passéiert. D'Verzögerung ass agestallt fir d'Netzblénken ze kompenséieren: wann de spezifizéierte Service bannent enger Minutt eropgaang ass, da soll den Alarm nach net geklappt ginn;
  3. Feier ass den drëtte Status wann d'Alarm opléist a Messagen schéckt.

Am Statusmenü fannt Dir Zougang zu Informatioun iwwer wat Prometheus ass. Et gëtt och en Iwwergang zu den Ziler (Ziler), iwwer déi mir uewen geschwat hunn.

Iwwerwaachung vun engem Kubernetes Cluster: Eng Iwwersiicht an Aféierung zum Prometheus

Fir e méi detailléierten Iwwerbléck iwwer d'Prometheus Interface, kuckt am Slurm sengem Virtrag iwwer d'Iwwerwaachung vun engem Kubernetes-Cluster.

Integratioun mat Grafana

An der Prometheus Web-Interface fannt Dir keng schéin a verständlech Grafiken, aus deenen Dir eng Conclusioun iwwer den Zoustand vum Stärekoup zéie kënnt. Fir se ze bauen ass Prometheus mat Grafana integréiert. Mir kréien esou Dashboards.

Iwwerwaachung vun engem Kubernetes Cluster: Eng Iwwersiicht an Aféierung zum Prometheus

D'Integratioun vu Prometheus a Grafana opzestellen ass guer net schwéier, Dir fannt Instruktiounen an der Dokumentatioun: GRAFANA SUPPORT FIR PROMETHEUSGutt, ech wäert mat dësem Enn.

An den folgenden Artikelen wäerte mir d'Thema vun der Iwwerwaachung weiderféieren: mir schwätzen iwwer d'Sammelen an d'Analyse vun Logbicher mat Grafana Loki an alternativen Tools.

Auteur: Marcel Ibraev, zertifizéiert Kubernetes Administrateur, praktizéierend Ingenieur an der Firma Southbridge, Lautsprecher a Course Entwéckler Slurm.

Source: will.com

Setzt e Commentaire