Kubernetes

A Wikipédiából, a szabad enciklopédiából
Kubernetes

FejlesztőCloud Native Computing Foundation
Első kiadás2014
Legfrissebb stabil kiadás1.19
(2020.08.26.)
Programozási nyelvGo
Operációs rendszerLinux, Windows, macOS
Platformx86-64
KategóriaCluster management software
LicencApache Licenc 2.0
A Kubernetes weboldala

A Kubernetes (gyakran hivatkoznak rá a k8s rövidített formában) egy nyílt forráskódú konténer alapú alkalmazáskezelő szoftver, amellyel automatizálható az alkalmazások telepítése, skálázása és menedzselése. Eredetileg a Google mérnökei kezdték el a fejlesztését, jelenleg a Cloud Native Computing Foundation gondozza. Számos konténeres megoldást használó infrastruktúrát támogat, többek között a Dockert is.

Története[szerkesztés]

A Kubernetes elnevezés a görög κυβερνήτης szóból származik; magyarul: irányító vagy kormányos — amelyre utalás a logójában található hajókormány is. A szoftvert Joe Beda, Brendan Burns és Craig McLuckie kezdte el fejleszteni, de hamarosan csatlakozott a fejlesztéshez több Google mérnök is, mint Brian Grant és Tim Hockin.[1] Az alkalmazás alapjaihoz a Google Borg elnevezésű projektje adta az ihletet,[2] valamint a főbb fejlesztők közül többen dolgoztak is az említett rendszeren. A Google belső kódneve a Kubernetes fejlesztésére "Project Seven of Nine", amely utalás a Star Trek sci-fi egyik szereplőjére (a magyar változatban Hét Kilenced néven ismert), aki a Borg kollektíváról leválva egy "barátságosabb" személlyé válik.[3] Az 1.0-ás verzió 2015. július 21-én lett kiadva. A szoftver publikálása mellett a Google a Linux Foundation konzorciummal létrehozta a Cloud Native Computing Foundation szervezetet, amely azóta is gondozza a projektet.

Architektúra[szerkesztés]

Kubernetes architektúra diagram

Kubernetes Master[szerkesztés]

A "Kubernetes Master" a klaszter fő vezérlő egysége, amely irányító funkciót lát el, az infrastruktúra menedzselése a feladata. A komponensei a következők:

  • etcd: Egy magas rendelkezésre-állású kulcs-érték (eredeti nevén key-value data store) adatbázis, amelyben a Kubernetes állapot információi tárolódnak. Ezek az adatok reprezentálják a rendszer aktuális állapotát, amelynek segítségével a menedzselt szolgáltatások üzemeltetése és ütemezése lehetővé válik.
  • API Server: Ez a komponens egy API amely HTTP protokoll segítségével JSON szabványú felületet biztosít a Kubernetes-hez a kliensek és komponensek számára. Feldolgozza és validálja a REST útján kapott adatokat és beállítja az objektumok státuszát az etcd adatbázisban.
  • Scheduler: Erőforrás elosztó szoftver, ami figyeli egy újonnan létrehozott erőforrás kéréshez tartozik-e már lefoglalt erőforrás. Nyomon követi a különböző node-ok erőforrásait, tehát ismernie kell a kívánt erőforrás igényeket, a rendelkezésre álló szabad erőforrásokat és minden egyéb felhasználó által meghatározott követelményeket és szabályokat, hogy megfelelően tudja kiosztani a szükséges feladatokat a node-ok számára.
  • Controller manager: Háttérfolyamat, amely biztosítja a Kubernetes alapvető funkcióinak a működtetését.

Kubernetes node[szerkesztés]

A node avagy worker node (esetleg minion néven is szokás rá hivatkozni) egy logikai egység, ami lehetővé teszi, hogy egy fizikai szerver master és worker funkciót is elláthasson. A worker node magában foglalja a Kubernetes egyik alapvető objektumait, a pod-okat, amelyek egy vagy több konténert tartalmaznak.

  • Kubelet: A node erőforrásait monitorozza és menedzseli a pod-okat.
  • Kube-proxy: A Kubernetes belső hálózatért felelős, hogy a kiosztott címeken elérhetőek legyenek a szolgáltatások.

Alkalmazása[szerkesztés]

A Kubernetes szoftvert elsősorban mikroszolgáltatásokon alapuló megvalósítások menedzselésére használják, mivel minden olyan képességet biztosít, amely a mikroszolgáltatási architektúrák legfontosabb problémáinak a kezeléséhez szükséges.

Jegyzetek[szerkesztés]

  1. Google Open Sources Its Secret Weapon in Cloud Computing (angol nyelven). [2015. szeptember 10-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. április 16.)
  2. Borg, Omega, and Kubernetes - ACM Queue (angol nyelven). [2016. július 9-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. április 16.)
  3. Early Stage Startup Heptio Aims to Make Kubernetes Friendly (angol nyelven). (Hozzáférés: 2020. április 16.)

Fordítás[szerkesztés]

  • Ez a szócikk részben vagy egészben a Kubernetes című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.