11 instrumente care fac Kubernetes mai bun

11 instrumente care fac Kubernetes mai bun

Nu toate platformele de server, chiar și cele mai puternice și scalabile, satisfac toate nevoile așa cum sunt. În timp ce Kubernetes funcționează grozav pe cont propriu, este posibil să nu aibă piesele potrivite pentru a fi complet. Veți găsi întotdeauna un caz special care vă ignoră nevoia sau în care Kubernetes nu va funcționa la o instalare implicită, cum ar fi suportul bazei de date sau operarea CD.

Aici apar suplimentele, extensiile și alte bunătăți pentru acest orchestrator de containere, susținute de cea mai largă comunitate. În acest articol, vor fi 11 dintre cele mai bune lucruri pe care le-am găsit. Noi înșine în Southbridge sunt foarte interesante și intenționăm să ne ocupăm de ele practic - să le dezasamblam în șuruburi și piulițe și să vedem ce este înăuntru. Unele dintre ele vor completa perfect orice cluster Kubernetes, în timp ce altele vor ajuta la rezolvarea anumitor sarcini care nu sunt implementate în distribuția Kubernetes tipică.

Gatekeeper: managementul politicilor

Proiect Deschideți Politica Agent (OPA) oferă posibilitatea de a crea politici peste stivele de aplicații cloud din Kubernetes, de la intrare la rețea de servicii. Gatekeeper oferă Kubernetes capacitatea nativă de a aplica politicile în cluster în mod automat și oferă, de asemenea, inspecție pentru orice evenimente sau resurse care încalcă politica. Toate acestea sunt gestionate de mecanismul Kubernetes relativ nou, managerul de admitere Webhooks, care se declanșează atunci când resursele se schimbă. Cu Gatekeeper, politicile OPA devin o altă parte a stării clusterului tău Kubernetes fără a fi nevoie de o supraveghere constantă.

Gravity: Clustere Kubernetes portabile

Dacă doriți să lansați o aplicație în Kubernetes, multe aplicații au o diagramă Helm care ghidează și automatizează acest proces. Dar ce se întâmplă dacă doriți să luați cluster-ul Kubernetes „ca atare” și să îl desfășurați în altă parte?

Gravitate face instantanee ale clusterelor Kubernetes, ale registrului lor pentru imaginile containerului, precum și ale aplicațiilor care rulează numite „pachete de aplicații”. Un astfel de pachet, care este un fișier obișnuit .tar, poate replica clusterul oriunde poate rula Kubernetes.

Gravity verifică, de asemenea, dacă infrastructura țintă se comportă la fel ca infrastructura sursă și, de asemenea, dacă mediul Kubernetes de pe țintă este disponibil. Versiunea plătită a Gravity adaugă și funcții de securitate, inclusiv RBAC și capacitatea de a sincroniza setările de securitate în diferite implementări de cluster.

Cea mai recentă versiune majoră, Gravity 7, poate împinge o imagine Gravity într-un cluster Kubernetes existent, în loc să creeze un cluster complet nou din imagine. Gravity 7 poate funcționa și cu clustere instalate fără a utiliza imaginea Gravity. Gravity acceptă, de asemenea, SELinux și funcționează nativ cu gateway-ul Teleport SSH.

Kaniko: Construirea de containere într-un cluster Kubernetes

Majoritatea imaginilor containerelor sunt construite pe sisteme din afara stivei de containere. Cu toate acestea, uneori trebuie să construiți imaginea într-un teanc de containere, cum ar fi undeva într-un container care rulează sau într-un cluster Kubernetes.

Kaniko construiește containere în interiorul unui mediu container, 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 a spațiului utilizatorului deasupra sistemului de fișiere extras, făcând un instantaneu al sistemului de fișiere după fiecare comandă.

Notă: Kaniko este în prezent (mai 2020, aproximativ traducător) nu poate construi containere Windows.

Kubecost: opțiuni de cost de pornire Kubernetes

Majoritatea instrumentelor de administrare Kubernetes se concentrează pe ușurința în utilizare, monitorizare, înțelegere a comportamentului în interiorul unui pod și așa mai departe. Dar cum rămâne cu monitorizarea costului - în ruble și copeici - asociat cu lansarea Kubernetes?

Kubecost procesează parametrii Kubernetes în timp real, rezultând informații actualizate despre costuri de la rularea clusterelor la furnizorii importanți de cloud, afișate într-un panou cu costul lunar pe cluster. Prețurile pentru RAM, durata CPU, GPU și subsistemul disc sunt defalcate pe componente Kubernetes (container, pod, serviciu etc.)

Kubecost urmărește, de asemenea, costul resurselor non-cluster, cum ar fi bucket-urile Amazon S3, deși acest lucru este limitat de AWS. Datele de cost pot fi trimise către Prometheus, astfel încât să le puteți utiliza pentru a modifica comportamentul cluster-ului în mod programatic.

Kubecost este gratuit de utilizat dacă aveți suficiente 15 zile de date de jurnal. Pentru funcții suplimentare, prețul începe de la 199 USD lunar pentru monitorizarea a 50 de noduri.

KubeDB: Rularea bazelor de date de luptă în Kubernetes

Bazele de date sunt, de asemenea, dificil de rulat spectaculos în Kubernetes. Veți găsi operatori Kubernetes pentru MySQL, PostgreSQL, MongoDB și Redis, dar toți au dezavantaje. De asemenea, setul de caracteristici tipic Kubernetes nu abordează în mod direct majoritatea problemelor definite ale bazei de date.

KubeDB vă ajută să vă creați declarațiile Kubernetes pentru gestionarea bazelor de date. Rularea backup-urilor, clonarea, monitorizarea, instantaneele și crearea de baze de date declarative sunt părțile sale constitutive. Rețineți că suportul pentru funcții depinde de baza de date. De exemplu, crearea unui cluster funcționează pentru PostgreSQL, dar nu și pentru MySQL (deja există, după cum s-a subliniat pe bună dreptate dnbstd, aproximativ traducător).

Kube-monkey: Chaos Monkey pentru Kubernetes

Metoda cea mai lipsită de erori de testare a stresului este considerată a fi defecțiuni aleatorii. Această teorie se află în centrul Chaos Monkey de la Netflix, un instrument de inginerie haotic care închide aleatoriu mașinile virtuale și containerele mediului de producție pentru a „stimula” dezvoltatorii să construiască sisteme mai rezistente. kube-maimuță - implementarea aceleiași teorii de bază a testării de stres pentru clusterele Kubernetes. Funcționează prin uciderea aleatorie a modulelor din clusterul pe care îl desemnați și poate fi, de asemenea, setat să ruleze la un interval de timp specific.

Controller de intrare Kubernetes pentru AWS

Kubernetes oferă un echilibrator de încărcare extern și servicii de rețea cluster printr-un serviciu numit Pătrundere AWS oferă funcții de echilibrare a sarcinii, dar nu le include automat cu aceleași caracteristici Kubernetes. Controller de intrare Kubernetes pentru AWS închide acest decalaj.

Gestionează automat resursele AWS pentru fiecare intrare în cluster, creând echilibratori de încărcare pentru noi resurse de intrare și ștergând echilibratorii de încărcare atunci când resursele sunt eliminate. Utilizează CloudFormation pentru a se asigura că starea clusterului rămâne consecventă. De asemenea, acceptă setările CloudWatch Alarm și gestionează automat alte elemente utilizate în cluster, cum ar fi certificatele SSL și EC2 Auto Scaling Groups.

Kubespray: Instalarea automată a Kubernetes

Kubespray automatizează instalarea unui cluster Kubernetes pregătit pentru producție, de la instalarea pe servere hardware până la cloud-uri publice majore. Folosește Ansible (Vagrant opțional) pentru a porni implementarea și pentru a crea un cluster de înaltă disponibilitate de la zero cu suplimentele de rețea alese de dvs. (cum ar fi Flannel, Calico etc.) la alegerea dvs. de distribuție Linux populară atunci când este instalată pe servere hardware.

Skaffold: Dezvoltare iterativă pentru Kubernetes

Scaffold - unul dintre instrumentele Google folosite pentru a organiza CD-urile aplicațiilor în Kubernetes. De îndată ce faceți modificări la codul sursă, skaffold detectează automat acest lucru, începe construirea și implementarea și vă avertizează dacă există erori. Skaffold rulează complet pe partea clientului, așa că pot exista mici nuanțe cu instalarea sau actualizarea. Poate fi utilizat cu conductele CICD existente, precum și cu unele instrumente de construcție externe, în principal Bazel de la Google.

Teresa: Cel mai simplu PaaS de pe Kubernetes

Teresa este un sistem de implementare a aplicațiilor care rulează un simplu PaaS pe Kubernetes. Utilizatorii în echipă își pot implementa și gestiona propriile aplicații. Acest lucru face lucrurile puțin mai ușoare pentru persoanele care au încredere în această aplicație și nu doresc să se ocupe de Kubernetes și de toate complexitățile sale.

Înclinare: transmiteți în flux actualizările containerului către clusterele Kubernetes

Înclina, dezvoltat de Windmill Engineering, monitorizează modificările diferitelor fișiere Dockerfile și apoi implementează progresiv containerele corespunzătoare în clusterul Kubernetes. În esență, vă permite să actualizați clusterul de producție în timp real prin simpla actualizare a fișierelor Dockerfile. Tilt se construiește în interiorul clusterului, codul sursă este tot ce trebuie schimbat. De asemenea, puteți face un instantaneu al stării clusterului și puteți captura condițiile de eroare direct din Tilt pentru a le partaja membrilor echipei pentru depanare.

PS Toate aceste instrumente le-am folosit în mod repetat Southbridge sondat cu mâinile noastre curioase. Pentru a prezenta deja practici reale (sperăm!) la intensivele offline din februarie. Baza Kubernetes 8–10 februarie 2021. Și Kubernetes Mega 12–14 februarie. Sincer, ne-a lipsit și atmosfera caldă și plină de energie a învățării offline. Indiferent cât de avansate ar fi tehnologiile, ele nu vor înlocui comunicarea umană în direct și o atmosferă specială atunci când se adună oameni cu gânduri asemănătoare.

Sursa: www.habr.com

Adauga un comentariu