11 instrumente care îmbunătățește Kubernetes

11 instrumente care îmbunătățește Kubernetes

Nu toate platformele de server, chiar și cele mai puternice și scalabile, satisfac toate nevoile așa cum sunt. Deși Kubernetes funcționează excelent de la sine, s-ar putea să-i lipsească părțile necesare pentru a fi complet. Vei găsi întotdeauna un caz particular care ignoră nevoia ta sau în care Kubernetes nu va funcționa cu setările implicite — de exemplu, suportul pentru baze de date sau funcționarea CD.

Aici apar extensiile, adăugările și alte bunuri pentru acest orchestrator de containere, susținute de o comunitate vastă. În acest articol vor fi prezentate cele 11 cele mai bune lucruri pe care le-am găsit. Ne-am propus Southbridge ele sunt foarte interesante, iar noi plănuim să ne ocupăm de ele practic — să le descompunem în detalii și să vedem ce se află în interior. Unele dintre ele vor completa perfect orice cluster Kubernetes, altele te vor ajuta să rezolvi probleme specifice, care nu sunt implementate în livrarea standard a Kubernetes.

Gatekeeper: gestionarea politicilor

Proiect Open Policy Agent (OPA) oferă posibilitatea de a crea politici deasupra stivelor de aplicații cloud în Kubernetes, începând cu ingress și terminând cu service mesh. Gatekeeper oferă o capacitate nativă pentru Kubernetes de a aplica politicile în cluster automat, precum și de a verifica orice evenimente sau resurse care încalcă politica. Totul este gestionat printr-un mecanism relativ nou al Kubernetes, controlerul de acces Webhooks, care se activează la modificarea resurselor. Cu ajutorul Gatekeeper, politicile OPA devin o parte integrantă a stării clusterului tău Kubernetes, fără a necesita o supraveghere constantă.

Gravity: Clustere Kubernetes portabile

Dacă dorești să lansezi o aplicație în Kubernetes, multe aplicații au un Helm chart care direcționează și automatizează acest proces. Dar ce se întâmplă dacă vrei să iei clusterul Kubernetes „așa cum este” și să-l desfășori undeva altundeva?

Gravity face instantanee ale stării clusterelor Kubernetes, registry-ul lor pentru imagini de containere, precum și aplicațiile în execuție, numite „pachete de aplicații”. Un astfel de pachet, reprezentând un fișier obișnuit .tar, poate replica clusterul oriunde poate funcționa Kubernetes.

Gravity verifică, de asemenea, că infrastructura țintă se comportă la fel ca cea de origine, precum și că mediul Kubernetes de la destinație este disponibil. Versiunea plătită Gravity adaugă, de asemenea, funcții de securitate, inclusiv RBAC și capacitatea de a sincroniza setările de securitate între diverse desfășurări de clustere.

Ultima versiune majoră, Gravity 7, poate desfășura o imagine Gravity într-un cluster Kubernetes existent, în loc să desfășoare un cluster complet nou din imagine. Gravity 7 poate funcționa, de asemenea, cu clustere instalate fără a utiliza imaginea Gravity. De asemenea, Gravity suportă SELinux și funcționează nativ cu gateway-ul Teleport SSH.

Kaniko: Construirea containerelor în clusterul Kubernetes

Cele mai multe imagini de containere sunt construite pe sisteme din afara stivei de containere. Totuși, uneori este necesar să construiești o imagine în interiorul stivei de containere, de exemplu, undeva într-un container activ sau într-un cluster Kubernetes.

Kaniko efectuează construcții de containere în interiorul unui mediu de containere, dar fără a depinde de un serviciu de containerizare, cum ar fi Docker. În schimb, Kaniko extrage sistemul de fișiere din imaginea de bază, execută toate comenzile de construire în spațiul utilizatorului pe sistemul de fișiere extras, realizând o captură a sistemului de fișiere după fiecare comandă.

Notă: Kaniko în prezent (mai 2020) nota traducătoruluinu poate construi containere Windows.

Kubecost: Opțiuni de cost pentru desfășurarea Kubernetes

Cele mai multe instrumente de administrare a Kubernetes sunt orientate spre ușurința de utilizare, monitorizarea și înțelegerea comportamentului din interiorul pod-ului etc. Dar ce zici de urmărirea costului — în lei și bănuți — asociat desfășurării Kubernetes?

Kubecost procesează parametrii Kubernetes în timp real, ceea ce conduce la generarea de informații despre costurile actuale de la clusterele desfășurate de principalii furnizori de servicii cloud, afișate pe un panou cu costul lunar al fiecărui cluster. Prețurile pentru memorie, timp de procesor, GPU și subsistemul de stocare sunt defalcate pe componentele Kubernetes (container, pod, serviciu etc.)

Kubecost urmărește, de asemenea, costul resurselor externe cluster-ului, cum ar fi Amazon S3 buckets, deși este limitat la AWS. Datele despre costuri pot fi trimise în Prometheus, astfel încât să le poți utiliza pentru a modifica comportamentul cluster-ului programatic.

Kubecost este gratuit de utilizat dacă îți sunt suficiente datele din jurnale pentru 15 zile. Pentru funcții suplimentare, prețurile încep de la 199$ pe lună pentru monitorizarea a 50 de noduri.

KubeDB: Rularea bazelor de date în producție în Kubernetes

Bazele de date sunt, de asemenea, destul de dificile de rulat eficient în Kubernetes. Vei găsi operatori Kubernetes pentru MySQL, PostgreSQL, MongoDB și Redis, însă toți au dezavantajele lor. De asemenea, setul standard de funcții Kubernetes nu permite rezolvarea directă a majorității problemelor specifice legate de baze de date.

KubeDB te ajută să creezi operatorii Kubernetes pentru gestionarea bazelor de date. Rularea de backup-uri, clonarea, monitorizarea, realizarea de snapshot-uri și crearea declarativă a bazelor de date sunt componentele sale. Reține că suportul pentru funcții depinde de baza de date. De exemplu, crearea unui cluster funcționează pentru PostgreSQL, dar nu pentru MySQL (este deja există, așa cum a remarcat corect dnbstd, nota traducătorului).

Kube-monkey: Chaos Monkey pentru Kubernetes

Cea mai fiabilă metodă de testare a stresului este considerată a fi accidentele aleatorii. Această teorie stă la baza Chaos Monkey de la Netflix, un instrument de inginerie haotic care oprește aleatoriu mașini virtuale și containere din mediul de producție, pentru a „stimula” dezvoltatorii să creeze sisteme mai rezistente. Kube-monkey — o implementare a aceleași teorii de bază a testării stresului pentru clusterele Kubernetes. Funcționează ucigând aleatoriu module din cluster, desemnate de tine, și poate fi configurat să funcționeze într-un interval de timp specific.

Kubernetes Ingress Controller pentru AWS

Kubernetes oferă un balansator de încărcare extern și servicii de rețea ale clusterului printr-un serviciu numit Ingress AWS oferă funcții de balansare a încărcării, dar nu le leagă automat de aceleași capacități ale Kubernetes. Kubernetes Ingress Controller pentru AWS completează această lacună.

Acesta gestionează automat resursele AWS pentru fiecare obiect ingress din cluster, creând balansatoare de încărcare pentru noile resurse ingress și eliminând balansatoarele atunci când resursele sunt șterse. Folosește CloudFormation pentru a se asigura că starea clusterului rămâne integră. De asemenea, suportă configurațiile CloudWatch Alarm și gestionează automat alte elemente utilizate în cluster, cum ar fi certificatele SSL și grupurile de auto-scalare EC2.

Kubespray: Instalarea automată a Kubernetes

Kubespray automatizează instalarea unui cluster Kubernetes gata de utilizare în producție, începând cu instalarea pe servere fizice și terminând cu cele mai populare clouduri publice. Folosește Ansible (Vagrant – suplimentar) pentru a iniția desfășurarea și a crea un cluster de înaltă disponibilitate de la zero cu extensia de rețea aleasă de tine (de exemplu Flannel, Calico și altele) pe distribuția ta Linux preferată atunci când este instalat pe servere fizice.

Skaffold: Dezvoltare iterativă pentru Kubernetes

Skaffold — un instrument dezvoltat de Google, folosit pentru a organiza CD-ul aplicațiilor în Kubernetes. De îndată ce faci modificări în codul sursă – Skaffold le detectează automat, inițiază compilarea și desfășurarea, avertizându-te dacă există erori. Skaffold se execută complet pe partea clientului, așa că pot apărea mici nuanțe legate de instalare sau actualizare. Poate fi utilizat cu pipeline-uri CICD existente și poate interacționa cu unele instrumente externe de compilare, în principal Bazel de la Google.

Teresa: PaaS-ul cel mai simplu pe Kubernetes

Teresa este un sistem de desfășurare a aplicațiilor care rulează un PaaS simplu deasupra Kubernetes. Utilizatorii, împărțiți în echipe, pot desfășura și gestiona aplicațiile care le aparțin. Aceasta simplifică puțin activitatea celor care se încred în această aplicație și nu doresc să se ocupe de Kubernetes și de toate complexitatea sa.

Tilt: Flux de actualizări ale containerelor în clusterele Kubernetes

Tilt, dezvoltat de Windmill Engineering, urmărește modificările diferitelor fișiere Dockerfile și apoi desfășoară treptat containerele corespunzătoare în clusterul Kubernetes. Practic, permite actualizarea clusterului de producție în timp real, actualizând pur și simplu fișierele Dockerfile. Tilt efectuează compilarea în interiorul clusterului, codul sursă fiind tot ce trebuie să schimbi. De asemenea, poți să faci o captură a stării clusterului și să fixezi condițiile de activare a erorilor direct din Tilt, pentru a le împărtăși cu colegii de echipă pentru depanare.

P.S. Toate aceste instrumente le-am testat de nenumărate ori cu Southbridge mâinile noastre curioase. Pentru a prezenta practici reale deja (sper!) la intensificările offline din februarie. Kubernetes Baza 8–10 februarie 2021. Și Kubernetes Mega 12–14 februarie. Sincer, ne e dor și nouă de atmosfera caldă și energizantă a învățământului offline. Indiferent cât de avansate ar fi tehnologiile, ele nu pot înlocui comunicarea umană directă și atmosfera specială creată când se adună oameni cu aceleași pasiuni.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster