Mi az a kubernetes ?
A Kubernetes egy hordozható, bővíthető, nyílt forráskódú platform a konténeres számítási feladatok és szolgáltatások kezeléséhez, amely megkönnyíti a deklaratív konfigurációt és az automatizálást is. Nagy, gyorsan növekvő ökoszisztémával rendelkezik. A Kubernetes-szolgáltatások, -támogatás és -eszközök széles körben elérhetők.
A Google 2014-ben nyílt forráskódúvá tette a Kubernetes projektet. A Kubernetes a Google több mint 15 éves tapasztalatát ötvözi az éles számítási feladatok nagy léptékű futtatásában a közösség legjobb ötleteivel és gyakorlataival.
A konténerek népszerűvé váltak, mert extra előnyöket nyújtanak, például:
- Agilis alkalmazások létrehozása és üzembe helyezése: a tárolórendszerképek létrehozásának nagyobb egyszerűsége és hatékonysága a virtuálisgép-rendszerképek használatához képest.
- Folyamatos fejlesztés, integráció és üzembe helyezés: megbízható és gyakori tároló-rendszerképek létrehozását és üzembe helyezését biztosítja gyors és hatékony visszaállításokkal (a rendszerképek megváltoztathatatlansága miatt).
- A fejlesztési és az üzemeltetési feladatok elkülönítése: az alkalmazástároló rendszerképeit az üzembe helyezési idő helyett a build/kiadás időpontjában hozhatja létre, így leválaszthatja az alkalmazásokat az infrastruktúráról.
- Megfigyelhetőség: nem csak az operációs rendszer szintű információkat és metrikákat jeleníti meg, hanem az alkalmazás állapotát és egyéb jeleit is.
- Környezeti konzisztencia a fejlesztés, a tesztelés és a gyártás során: Ugyanúgy fut a laptopokon, mint a felhőben.
- Felhő- és operációsrendszer-terjesztési hordozhatóság: Ubuntun, RHEL-en, CoreOS-en, a helyszínen, a nagyobb nyilvános felhőkön és bárhol máshol fut.
- Alkalmazásközpontú felügyelet: Megemeli az absztrakció szintjét az operációs rendszer virtuális hardveren való futtatásától az alkalmazások operációs rendszeren való futtatásáig logikai erőforrások használatával.
- Lazán összekapcsolt, elosztott, rugalmas, felszabadult mikroszolgáltatások: az alkalmazások kisebb, független részekre vannak bontva, és dinamikusan telepíthetők és kezelhetők – nem pedig egy nagy, egycélú gépen futó monolitikus verem.
- Erőforrás-elkülönítés: kiszámítható alkalmazásteljesítmény.
- Erőforrás-felhasználás: nagy hatékonyság és sűrűség.
Miért van szüksége a Kubernetesre, és mire képes?
A tárolók jó módja az alkalmazások csomagozásának és futtatásának. Éles környezetben kezelnie kell az alkalmazásokat futtató tárolókat, és gondoskodnia kell arról, hogy ne legyen állásidő. Ha például egy tároló leáll, egy másik tárolónak kell elindulnia. Nem lenne egyszerűbb, ha ezt a viselkedést egy rendszer kezelné?
Így jön a Kubernetes a segítségére! A Kubernetes keretrendszert biztosít az elosztott rendszerek rugalmas futtatásához. Gondoskodik az alkalmazás skálázásáról és feladatátvételéről, üzembe helyezési mintákat biztosít és így tovább. A Kubernetes például egyszerűen kezelheti a rendszer kanári-szigeteki üzembe helyezését.
A Kubernetes a következőket nyújtja Önnek:
- Szolgáltatásfelderítés és -terheléselosztás A Kubernetes a DNS-névvel vagy a saját IP-címével teheti elérhetővé a tárolókat. Ha egy tárolóba irányuló forgalom magas, a Kubernetes képes terheléselosztásra és a hálózati forgalom elosztására, hogy az üzembe helyezés stabil legyen.
- Storage vezénylés A Kubernetes lehetővé teszi az Ön által választott tárolórendszer, például helyi tárolók, nyilvános felhőszolgáltatók és egyebek automatikus csatlakoztatását.
- Automatizált bevezetések és visszaállítások: A Kubernetes használatával leírhatja az üzembe helyezett tárolók kívánt állapotát, és szabályozott sebességgel módosíthatja a tényleges állapotot a kívánt állapotra. Automatizálhatja például a Kubernetest, hogy új tárolókat hozzon létre az üzembe helyezéshez, eltávolítsa a meglévő tárolókat, és az összes erőforrásukat az új tárolóba vigye át.
- Automatikus kukába csomagolás: A Kubernetes számára olyan csomópontfürtöt biztosít, amellyel tárolóba helyezett feladatokat futtathat. Megadhatja a Kubernetesnek, hogy az egyes tárolóknak mennyi processzorra és memóriára (RAM) van szükségük. A Kubernetes tárolókat illeszthet a csomópontokra, hogy a lehető legjobban kihasználja az erőforrásokat.
- Az önjavító Kubernetes újraindítja a sikertelen tárolókat, lecseréli a tárolókat, megöli azokat a tárolókat, amelyek nem válaszolnak a felhasználó által megadott állapot-ellenőrzésre, és nem hirdeti meg őket az ügyfeleknek, amíg készen nem állnak a kiszolgálásra.
- Titkos és konfigurációkezelés A Kubernetes lehetővé teszi a bizalmas információk, például jelszavak, OAuth-jogkivonatok és SSH-kulcsok tárolását és kezelését. A titkos kulcsokat és az alkalmazáskonfigurációt a tárolórendszerképek újraépítése nélkül, valamint a veremkonfigurációban lévő titkos kulcsok felfedése nélkül helyezheti üzembe és frissítheti.
Mire nem való a Kubernetes?
A Kubernetes nem egy hagyományos, mindenre kiterjedő PaaS(Platform as a Service) rendszer. Mivel a Kubernetes a tárolók szintjén működik, nem pedig a hardver szintjén, a PaaS-ajánlatokra jellemző néhány általánosan alkalmazható funkciót biztosít, például az üzembe helyezést, a skálázást, a terheléselosztást, és lehetővé teszi a felhasználók számára a naplózási, figyelési és riasztási megoldások integrálását. A Kubernetes azonban nem monolitikus, és ezek az alapértelmezett megoldások nem kötelezőek és csatlakoztathatóak. A Kubernetes biztosítja a fejlesztői platformok építésének építőelemeit, de megőrzi a felhasználói választási lehetőséget és a rugalmasságot ott, ahol ez fontos.
- Nem korlátozza a támogatott alkalmazások típusait. A Kubernetes célja, hogy a számítási feladatok rendkívül változatos skáláját támogassa, beleértve az állapot nélküli, állapot-nyilvántartó és adatfeldolgozási számítási feladatokat. Ha egy alkalmazás futtatható egy tárolóban, akkor nagyszerűen kell futnia a Kubernetesben.
- Nem telepíti a forráskódot, és nem hozza létre az alkalmazást. A folyamatos integrációs, teljesítési és üzembe helyezési (CI/CD) munkafolyamatokat a szervezeti kultúrák és preferenciák, valamint a műszaki követelmények határozzák meg.
- Nem nyújt alkalmazásszintű szolgáltatásokat, például köztes szoftvereket (például üzenetbuszokat), adatfeldolgozási keretrendszereket (például Spark), adatbázisokat (például MySQL), gyorsítótárakat vagy fürttároló rendszereket (például Ceph) beépített szolgáltatásként. Az ilyen összetevők futtathatók a Kubernetesen, és/vagy a Kubernetesen futó alkalmazások hordozható mechanizmusokon, például az Open Service Brokeren keresztül érhetők el.
- Nem diktál naplózási, figyelési vagy riasztási megoldásokat. Néhány integrációt biztosít a koncepció igazolására, valamint mechanizmusokat a metrikák gyűjtésére és exportálására.
- Nem biztosít és nem is rendel el konfigurációs nyelvet/rendszert (például Jsonnet). Deklaratív API-t biztosít, amelyet a deklaratív specifikációk tetszőleges formái célozhatnak meg.
- Nem biztosít és nem fogad el átfogó gépkonfigurációs, karbantartási, felügyeleti vagy öngyógyító rendszereket.
Ezenkívül a Kubernetes nem pusztán vezénylési rendszer. Valójában kiküszöböli a menedzselés szükségességét. A vezénylés technikai definíciója egy meghatározott munkafolyamat végrehajtása: először A,majd B, majd C. Ezzel szemben a Kubernetes független, összeállítható vezérlési folyamatokból áll, amelyek folyamatosan a jelenlegi állapotot a megadott kívánt állapot felé vezetik. Nem számít, hogyan jut el A-ból C-be. Ez könnyebben használható és erősebb, robusztusabb, rugalmasabb és bővíthető rendszert eredményez