Sari la conținut

Noțiuni de bază despre observabilitatea Kubernetes cu Prometheus și Grafana

Sursa: bmmagazine.co.uk

Lectură: 6 min
Noțiuni de bază despre observabilitatea Kubernetes cu Prometheus și Grafana

Imaginați-vă că tocmai v-ați configurat clusterul Kubernetes; aplicațiile rulează fără probleme și totul pare în regulă. Credeți că munca dvs. este terminată?

Ne-am dori să fie atât de simplu. În timp ce aplicațiile rulează, trebuie să observați în permanență cum se desfășoară lucrurile, ceea ce necesită date pentru astfel de informații.

Capacitatea dvs. de a recunoaște modelele potențiale de probleme și de a înțelege modul în care Kubernetes gestionează anumite sarcini de lucru va face diferența între o rezolvare rapidă a problemei sau un site web oprit pentru întreaga zi.

Iată că vine observabilitatea Kubernetes.

Ce este Kubernetes Observability?

Observabilitatea Kubernetes înseamnă monitorizarea și analizarea stării și comportamentului unui cluster Kubernetes și a aplicațiilor care rulează pe acesta.

Acest proces implică colectarea diferitelor tipuri de date din diferite surse din cadrul clusterului, cum ar fi metrici, jurnale și urme, și utilizarea de instrumente și tehnici pentru a vizualiza și a da sens acestor date.

Observabilitatea este esențială pentru a asigura disponibilitatea, fiabilitatea și performanța mediului Kubernetes.

Prin monitorizarea parametrilor cheie, cum ar fi utilizarea CPU, consumul de memorie și traficul de rețea, operatorii pot identifica și rezolva proactiv problemele înainte ca acestea să evolueze în probleme mai mari.

Dar cum faceți acest lucru?

Două instrumente care vă pot ajuta în acest sens sunt – Prometheus și Grafana. Ambele instrumente sunt open source. Prometheus adună cel mai bine metricele din diverse surse, în timp ce Grafana vizualizează date complexe din serii de timp.

Combinația dintre cele două ar putea fi foarte puternică.

Utilizarea Prometheus și Grafana

Vom vedea acum cum să configurăm Prometheus și Grafana pe un cluster Kubernetes existent. De asemenea, vom configura un tablou de bord în Grafana pentru a vizualiza datele provenite din cluster. După aceea, puteți alege orice instalare Kubernetes găzduită pe un server cloud sau pe mașina dvs. locală.

Instalarea lui Prometheus

Înainte de a instala Prometheus, trebuie să adăugați depozitul Helm corespunzător utilizând comanda Heml repo-add și să actualizați metadatele depozitului utilizând Helm repo update. Pentru acest ghid, vom folosi depozitul Bitnami Helm, care oferă o diagramă Helm cuprinzătoare pentru Prmetheus, cu o gamă largă de opțiuni de configurare.

Dacă nu sunteți familiarizat cu Helm, vă recomandăm să consultați acest ghid – Getting Started with Helm.

helm repo add bitnami https://charts.bitnami.com/bitnami

Pentru a asigura o instalare fără probleme a Prometheus, este esențial să verificați diferitele opțiuni de configurare disponibile. Cu numeroase opțiuni care variază de la expunerea fiecărei componente (de exemplu, echilibrul de sarcină și tipul de intrare) până la stocarea datelor, evaluarea acestor opțiuni înainte de instalare este importantă.

Deși este esențial să configurați în mod corespunzător aceste opțiuni pentru instalațiile de producție, acest articol va presupune instalarea Prometheus cu configurația implicită într-un cluster Kubernetes fără cerințe specifice. Configurația implicită poate fi instalată cu ajutorul comenzii Helm install, simplificând procesul de instalare.

helm install prometheus bitnami/kube-prometheus

Veți vedea un nou pod după câteva secunde:

alertmanager-prometheus-prometheus-oper-alertmanager-0 2/2 Rulând 0 25m
prometheus-kube-state-metrics-68cbb46fdd4-gk4jh 1/1 Rulând 0 25m
prometheus-node-exporter-rkg84 1/1 Rulând 0 25m
prometheus-prometheus-oper-operator-745f4b599c-xjjsn 1/1 Rulând 0 25m
prometheus-prometheus-prometheus-oper-prometheus-prometheus-0 3/3 Rulând 1 25m

Prometheus poate fi accesat în diferite moduri, în funcție de configurația clusterului Kubernetes. Conform documentației Prometheus, o metodă tipică este de a expune serverul prin intermediul unui proxy invers, cum ar fi Nginx. Cu toate acestea, configurația implicită a graficului Prometheus Helm îl face accesibil doar altor poduri din cadrul clusterului Kubernetes. Prin urmare, o abordare alternativă recomandată este utilizarea comenzii kubectl port-forward. După ce executați următoarea comandă, deschideți un nou terminal, introduceți comanda și păstrați-o deschisă:

kubectl port-forward -namespace default svc/prometheus-kube-prometheus-prometheus 9090:9090

Excelent! Comanda menționată mai sus va redirecționa tot traficul către portul 9090 al podului Prometheus-server către mașina dvs. locală. Acum puteți accesa Prometheus deschizând browserul web și accesând http://localhost:9090.

Instalarea Grafana

Similar cu Prometheus, Grafana oferă, de asemenea, o diagramă Helm convenabilă pentru instalare. Veți găsi diverse opțiuni de configurare pentru a personaliza instalarea în funcție de cerințele dumneavoastră. Cu toate acestea, pentru acest tutorial, îl puteți instala pur și simplu cu configurația implicită pentru a fi martori ai funcționalităților sale. Diagrama Helm bitnami/grafana poate fi instalată prin rularea următoarei comenzi:

helm install grafana bitnami/grafana bitnami/grafana

Veți vedea noi poduri în câteva secunde.

grafana-66c98bcbb86-xpd5t 1/1 Rulând 0 2d23h

Va trebui să faceți un pas suplimentar înainte de a continua. Instalarea graficului Grafana Helm generează o parolă randomizată și o stochează ca secret în clusterul Kubernetes. Pentru a prelua această parolă, va trebui să executați următoarea comandă:

echo „$(kubectl get secret grafana-admin -namespace default -o jsonpath=”{.data.GF_SECURITY_ADMIN_PASSWORD}” base64 -decode)”

Notați parola generată, deoarece veți avea nevoie de ea în scurt timp. Pentru a accesa serviciul în afara clusterului Kubernetes, utilizați comanda kubectl port-forward într-un nou terminal:

export POD_NAME=$(kubectl get pods -namespace default -l „app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana” -o jsonpath=”{.items[0].metadata.name}”)
kubectl -namespace default port-forward $POD_NAME 3000

După executarea comenzii, Grafana va fi accesibilă la http://localhost:3000. La accesarea URL-ului, vi se va solicita un nume de utilizator setat în mod implicit la „admin”, împreună cu parola pe care ați obținut-o în pasul anterior. Cu toate acestea, la conectare, s-ar putea să observați că tabloul de bord Grafana apare incomplet.

Acest lucru se datorează faptului că, în timp ce Prometheus colectează în mod automat măsurători de la clusterul dvs. Kubernetes, Grafana nu este încă conștient de instalarea Prometheus. Grafana poate fi configurat cu ușurință pentru a utiliza Prometheus ca sursă de date și pentru a comunica fără probleme cu serverul Prometheus.

Rezumat

În acest articol, am discutat despre importanța observabilității Kubernetes și am prezentat două instrumente open-source, Prometheus și Grafana, pentru a monitoriza și analiza starea și comportamentul unui cluster Kubernetes și al aplicațiilor care rulează pe acesta.

Apoi, am parcurs un ghid pas cu pas despre cum să configurăm Prometheus și Grafana pe un cluster Kubernetes existent pentru a crea un tablou de bord în Grafana pentru a vizualiza datele colectate.

Distribuie

Corina Popescu scrie la rubricile Externe, Politică și Actual de pe news24.ro. Toate articolele →

Citește și

Parteneri Articole recomandate din rețeaua noastră