Ce este Kubernetes?

Fiind considerată adesea „sistemul de operare pentru cloud”, Kubernetes este o platformă open source pentru gestionarea clusterelor de aplicații și serviciilor containerizate. Dezvoltată în 2014 de inginerii Google Joe Beda, Brendan Burns și Craig McLuckie și devenind curând o sursă deschisă, platforma Kubernetes este un ecosistem înfloritor, nativ în cloud, de sine stătător. Astăzi, Kubernetes - cuvânt care înseamnă „timonier” sau „cârmaci” în greaca veche - este gestionată de Cloud Native Computing Foundation (CNCF), o componentă a Linux Foundation.

Kubernetes a fost primul proiect realizat de CNCF, devenind unul dintre proiectele cu cea mai rapidă dezvoltare din istorie. Kubernetes are în prezent peste 2.300 de contribuitori și este utilizată de nenumărate companii, mari și mici, inclusiv de jumătate dintre cele aflate în clasamentul Fortune 100.

Kubernetes 101 - termeni importanți

Pentru început, iată câțiva termeni importanți legați de Kubernetes. Lista completă a termenilor este disponibilă pe pagina Glosar standard Kubernetes. De asemenea, puteți utiliza Fițuica pentru Kubernetes, care conține o listă de comenzi și marcaje kubectl utilizate frecvent.

Cluster

Este un set de mașini, denumite individual noduri, utilizate pentru rularea aplicațiilor containerizate administrate de Kubernetes.

Nod

Este o mașină virtuală sau fizică. Un cluster constă dintr-un nod master și mai multe noduri worker.

Container cloud

Este o imagine care conține software și dependențele sale.

Container

Este un singur container sau un set de containere care rulează pe un cluster Kubernetes.

Implementare

Este un obiect care administrează aplicațiile replicate reprezentate de containere. Containerele sunt implementate pe nodurile unui cluster.

Set

Asigură rularea simultană a unui anumit număr de containere.

pentru securitate

Descrie modul de accesare a aplicațiilor reprezentate de un set de containere. Serviciile descriu de obicei containerele și load balancerele și pot fi utilizate pentru controlarea accesului intern și extern la un cluster.

Ce este KubeCon?

KubeCon este conferința anuală a dezvoltatorilor și utilizatorilor Kubernetes. De la primul KubeCon, din 2015, care a avut 500 de participanți, KubeCon a devenit un eveniment important pentru comunitatea cloudului nativ. În 2019, ediția KubeCon din San Diego, California, a atras 12.000 de dezvoltatori și ingineri de sistem, care au salutat explozia ecosistemului open source din jurul platformei de orchestrare a cloud Kubernetes.

Ce sunt containerele Kubernetes?

Deoarece dezvoltatorii implementează tot mai mult software pentru diverse medii de calcul utilizând diverse clouduri, medii de testare, laptopuri, dispozitive, sisteme de operare și platforme, problema încrederii în software este extrem de importantă. Aici intervin containerele: acestea împachetează o aplicație împreună cu întregul său mediu runtime. În acest sens, containerele sunt o formă de virtualizare, deoarece oferă o „bulă” pentru rularea aplicației, în care sunt incluse bibliotecile, dependențele și sistemele de operare corecte. Dar containerele sunt mai mici decât mașinile virtuale, deoarece conțin doar resursele de care are nevoie o aplicație și nimic mai mult.

Kubernetes în comparație cu Docker

Deși containerele Linux există din 2008, abia lansarea containerelor Docker, în 2013, le-a adus celebritatea. Interesul la fel de mare față de implementarea aplicațiilor containerizate - care conțin tot ce este necesar pentru funcționare - a creat, însă, o nouă problemă: gestionarea a mii de containere. Kubernetes orchestrează automat ciclul de viață al containerelor, distribuind containerele din infrastructura de găzduire. Kubernetes scalează resursele în sus sau în jos, în funcție de cerere. De asemenea, prevede, programează, șterge și monitorizează integritatea containerelor.

Care sunt componentele Kubernetes?

Principalele componentele ale Kubernetes sunt clusterele, nodurile și planul de control. Clusterele conțin noduri. Fiecare nod conține un set cu cel puțin o mașină worker. Nodurile găzduiesc containere care conțin elemente ale aplicației implementate. Planul de control administrează nodurile și containerele din cluster, adesea pe mai multe computere, pentru disponibilitate ridicată.

ce este kubernetes

Planul de control conține:

  • Serverul API Kubernetes: oferă interfața de programare (API) pentru controlul Kubernetes
  • etcd: o memorie de stocare a datelor clusterului
  • Programatorul Kubernetes: repartizează noile containere la nodurile disponibile
  • Managerul de control Kubernetes: rulează un număr de procese pentru a gestiona eșecul nodurilor, a controla replicarea, a intra în servicii și containere prin puncte finale, precum și pentru a controla conturile și a accesa tokenuri
  • Managerul de control în cloud: ajută la gestionarea API-urilor de la anumiți furnizori de cloud, în funcție de anumite aspecte, cum ar fi rutele de infrastructură și echilibrarea traficului

Componentele nodului includ:

  • kubelet: un agent care verifică dacă containerele rulează într-un set
  • Proxy de rețea Kubernetes: menține regulile de rețea
  • Docker, containerd sau alt tip de runtime pentru containere

Care sunt avantajele Kubernetes?

Cu containerele, puteți avea încredere că aplicațiile dumneavoastră sunt grupate împreună cu tot ce le trebuie pentru a rula. Dar, chiar dacă adăugați containere, care conțin adesea microservicii, le puteți administra și distribui automat, utilizând Kubernetes.

Cu ajutorul Kubernetes, organizațiile pot:

să scaleze automat; să mute implementările în sus sau în jos, în funcție de cerere;
să descopere servicii; să găsească servicii containerizate prin intermediul adresei DNS sau IP;
să echilibreze traficul; să stabilizeze implementarea prin distribuirea traficului din rețea;
să gestioneze spațiul de stocare; să aleagă stocarea locală sau în cloud;
să controleze versiunile; să aleagă tipurile de containere pe care doresc să le ruleze și pe cele care să le înlocuiască, utilizând imagini sau resurse noi;
să mențină securitatea; să actualizeze în mod securizat parolele, tokenurile OAuth și cheile SSH corelate cu anumite imagini de containere.

Care sunt provocările utilizării Kubernetes?

Deși tehnologia Kubernetes este extrem de versatilă și poate accepta orice tip de aplicație, poate fi dificil de înțeles și de utilizat. Kubernetes nu este întotdeauna soluția corectă pentru un anume volum de lucru, susțin mai mulți membri ai CNCF. Din acest motiv, ecosistemul Kubernetes conține o serie de instrumente native în cloud pe care organizațiile le-au creat pentru a rezolva anumite probleme legate de fluxurile de lucru.

Kubernetes implementează containere, nu coduri sursă, și nu generează aplicații. Pentru jurnalizare, middleware, monitorizare, configurare, CI/CD și multe alte activități de producție, veți avea nevoie de instrumente suplimentare. Acestea fiind spuse, platforma Kubernetes este extensibilă și s-a dovedit a fi potrivită pentru o gamă largă de cazuri de utilizare, de la avioanele cu reacție până la machine learning. De fapt, furnizorii de cloud, inclusiv Oracle, Google, Amazon Web Services și alții, au utilizat extensibilitatea Kubernetes pentru a crea serviciile Kubernetes gestionate, care reduc complexitatea operațiunilor și sporesc productivitatea dezvoltatorilor.

Ce este o platformă Kubernetes gestionată?

Cloud Native și Kubernetes transformă stilul de lucru al AgroScout.

Infrastructura noastră cloud Container Engine for Kubernetes este un serviciu gestionat dedicat dezvoltatorilor, pe care îl puteți utiliza pentru a implementa aplicațiile containerizate în cloud. Utilizați Container Engine for Kubernetes atunci când echipa de dezvoltare are nevoie de o modalitate sigură de creare, implementare și gestionare a aplicațiilor native în cloud. Specificați resursele de calcul de care au nevoie aplicațiile, iar Container Engine for Kubernetes le alocă într-un tenancy Cloud Infrastructure existent.

Chiar dacă nu trebuie neapărat să utilizați un serviciu Kubernetes gestionat, Cloud Infrastructure Container Engine for Kubernetes este un mod simplu de a rula clustere cu disponibilitate ridicată beneficiind de controlul, securitatea și performanța caracteristice Oracle Cloud Infrastructure. Container Engine for Kubernetes acceptă ca noduri atât servere bare metal, cât și mașini virtuale și este certificat ca fiind conform cu CNCF. De asemenea, obțineți toate actualizările Kubernetes și mențineți compatibilitatea cu ecosistemul CNCF fără a depune eforturi suplimentare.


Ecosistemul și comunitatea Kubernetes

Oracle este membru Platinum al Cloud Native Computing Foundation (CNCF), o comunitate open source care conține zeci de proiecte de dezvoltare de software, organizate după nivelul de maturitate. Proiectele promovate (Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd, Jaeger, Vitess, TUF și Helm) s-au dovedit a fi neprețuite pentru aspectele privind dezvoltarea nativă în cloud.

Cum începeți să utilizați Kubernetes

Kubernetes are un vast ecosistem de proiecte de suport, care au apărut în jurul său. Peisajul poate fi descurajant, iar căutarea de răspunsuri la întrebări simple vă poate conduce către piste false. Dar primii pași pe acest drum sunt simpli, iar de acolo puteți explora concepte avansate, după cum dictează nevoie dumneavoastră. Aflați cum să:

  • configurați un mediu de dezvoltare local, cu Docker și Kubernetes;
  • creați un microserviciu Java simplu, cu Helidon;
  • creați microserviciul într-un container de imagini, cu Docker;
  • implementați microserviciul într-un cluster local Kubernetes;
  • scalați microserviciul în sus și în jos în cluster.

Kubernetes pentru dezvoltatori

Dezvoltatorii care sunt nerăbdători să pornească primul lor proiect Kubernetes pot descărca portalul nostru pentru dezvoltatori, unde pot afla cum să își creeze prima aplicație Arm în Kubernetes sau să implementeze un cluster Kubernetes utilizând Cloud Shell.


Introducere în Kubernetes pe OCI (8:32)