Trace Id is missing
Ugrás a tartalomra

A Kubernetes és a Docker

Az egymást tökéletesen kiegészítő technológiákkal gyorsabban fejlesztheti, terjesztheti és méretezheti az alkalmazásokat.
 

A Kubernetes és a Docker kérdésköre

A Kubernetes és a Docker témájában a párbeszéd általában meglehetősen polarizált: A Kubernetest vagy a Dockert érdemes használni? Ez olyan, mintha az almát hasonlítanánk össze az almás pitével, és gyakori tévhit, hogy vagy az egyiket, vagy a másikat kell használni.

A Kubernetes és a Docker közti különbséget könnyebben megértheti, ha egyszerre használhatóként tekint rájuk. Nem kell ugyanis választania – a Kubernetes és a Docker alapjában eltérő technológiák, amelyek jól használhatók együtt konténerizált alkalmazások fejlesztéséhez, terjesztéséhez és méretezéséhez.

A Docker és a konténerizáció elterjedése

A Docker olyan nyílt forráskódú technológia (illetve tárolófájltípus), amely alkalmazások hordozható, önellátó, a felhőben vagy helyszínen futó tárolókként való üzembe helyezésének automatizálására szolgál. A Docker Inc., bár azonos névvel bír, egy cég, amely a nyílt forráskódú Docker technológia Linux és Windows rendszereke való fejlesztésével foglalkozik, és olyan felhőszolgáltatókkal működik együtt, mint amilyen például a Microsoft.

A környezetek elkülönítése nem új koncepció, és más konténerizációs szoftverek is elérhetők, a Docker mégis az alapértelmezett tárolóformátummá nőtte ki magát az elmúlt években. A Docker a Docker-motort használja, amely egy futtatókörnyezet. Segítségével bármilyen fejlesztési gépen fejleszthet és futtathat olyan tárolókat, amelyeknek a lemezképeit egy tárolóregisztrációs adatbázissal, például a Docker Hub vagy az Azure Container Registry használatával tárolhatja vagy oszthatja meg.

Ahogyan az alkalmazások egyre nagyobbak lesznek, és már több kiszolgálón üzembe helyezett tárolókra is kiterjednek, a működtetésük is egyre összetettebbé válik. A Docker ugyan biztosít egy nyílt szabványt a konténerizált alkalmazások csomagolásához és terjesztéséhez, az esetleges bonyodalmak azonban gyorsan felhalmozódhatnak. Sok tároló esetén hogyan oldható meg a koordinálás és az ütemezés kérdése? Hogyan kommunikálnak egymással az alkalmazása különböző tárolói? Sok tárolópéldány esetén hogyan oldható meg a méretezés kérdése? Ezekben tud segíteni a Kubernetes.

A Kubernetes és a tárolóvezénylés

A Kubernetes olyan nyílt forráskódú vezénylési szoftver, amely egy API-t biztosít a tárolók futtatási módjának és helyének vezérléséhez. Segítségével futtathatja a Docker-alapú tárolóit és számítási feladatait, és könnyebben veheti a több kiszolgálón üzembe helyezett tárolók méretezésével járó működési akadályokat.

A Kubernetesszel virtuális gépek fürtjeit vezényelheti, és tárolókat ütemezhet az ezeken való futásra, a rendelkezésre álló számítási erőforrásaik és az egyes tárolók erőforrásigényei alapján. A tárolók podokba csoportosulnak, amelyek a Kubernetes alapvető műveleti egységei. A tárolókat és podokat a kívánt állapotra méretezheti, az életciklusuk kezelésével pedig működésben tarthatja az alkalmazásait.

Mi a különbség a Kubernetes és a Docker között?

A Kubernetes olyan nyílt forráskódú vezénylési szoftver, amely egy API-t biztosít a tárolók futtatási módjának és helyének vezérléséhez. Segítségével futtathatja a Docker-alapú tárolóit és számítási feladatait, és könnyebben veheti a több kiszolgálón üzembe helyezett tárolók méretezésével járó működési akadályokat.

A Kubernetesszel virtuális gépek fürtjeit vezényelheti, és tárolókat ütemezhet az ezeken való futásra, a rendelkezésre álló számítási erőforrásaik és az egyes tárolók erőforrásigényei alapján. A tárolók podokba csoportosulnak, amelyek a Kubernetes alapvető műveleti egységei. A tárolókat és podokat a kívánt állapotra méretezheti, az életciklusuk kezelésével pedig működésben tarthatja az alkalmazásait.

Kubernetes és Docker – együtt még hatékonyabbak

A tárolók egyik előnye, hogy egyszeri kódolás után bárhol futtathatók, a Kubernetes azonban azt is lehetővé teszi, hogy Ön minden tároló-erőforrását egyetlen vezérlősíkon vezényelje és kezelje. Ez a tárolókban futó összes Kubernetes-csomópont esetében segít a hálózatkezelésben, a terheléselosztásban, a biztonság kiépítésében és a méretezésben. A Kubernetes emellett olyan beépített elkülönítési mechanizmusokkal (például névterekkel) is rendelkezik, amelyekkel engedélyek, átmeneti környezetek és egyéb szempontok alapján csoportosíthat tároló-erőforrásokat. Ezekkel a szerkezetekkel az IT-részleg könnyebben biztosíthat önkiszolgáló erőforrás-hozzáférést a fejlesztőknek, akik pedig egyszerűbben működhetnek együtt a rendkívül összetett mikroszolgáltatási architektúrákon is anélkül, hogy a teljes alkalmazást helyettesíteniük kellene a fejlesztési környezetben. A DevOps-eljárások tárolókkal és Kubernetesszel való egyesítése mindezek mellett olyan mikroszolgáltatási architektúrára vonatkozó alaptervet tesz elérhetővé, amely elősegíti a natív felhős alkalmazások gyors szállítását és méretezhető vezénylését.

A Kubernetest a Dockerrel tehát a következőkre használhatja:

  • Az infrastruktúra robusztusabbá tételére, illetve az alkalmazás magasabb rendelkezésre állásának biztosítására. Az alkalmazás online állapotú marad akkor is, ha néhány csomópont offline állapotba kerül.
  • Az alkalmazás méretezhetőségének növelésére. Ha az alkalmazás egyre több terhelést kap, Önnek pedig horizontálisan fel kell skáláznia, hogy jobb felhasználói élményt nyújthasson, egyszerűen üzembe helyezhet további tárolókat, vagy hozzáadhat további csomópontokat a Kubernetes-fürthöz.

A Kubernetes és a Docker együttműködik egymással. A Docker nyílt szabványt biztosít a konténerizált alkalmazások csomagolásához és terjesztéséhez. A Dockerrel tárolókat fejleszthet és futtathat, illetve tárolólemezképeket tárolhat és oszthat meg. A Docker-buildek könnyen futtathatók a Kubernetes-fürtökön, a Kubernetes önmagában azonban nem teljes körű megoldás. A Kubernetes éles környezetben való optimalizálásához további eszközöket és szolgáltatásokat kell igénybe vennie a biztonság, a cégirányítás, az identitás és a hozzáférés kezeléséhez, és folyamatos integrációs és terjesztési (CI/CD-) munkafolyamatokat és egyéb DevOps-eljárásokat kell alkalmaznia.

A Kubernetes és a Docker megoldásarchitektúrái éles környezetben

A mikroszolgáltatásokat AKS-megoldásarchitektúrával együtt ábrázoló diagram

Mikroszolgáltatások AKS-szel

Az AKS használatával egyszerűsíthető a mikroszolgáltatásokra épülő architektúrák üzembe helyezése és kezelése. Az AKS megkönnyíti a horizontális méretezést, az önjavítást, a terheléselosztást és a titkos kódok kezelését.

Az AKS-megoldásarchitektúrákhoz készült biztonságos DevOps-t ábrázoló diagram

Secure DevOps for AKS

A DevOps és a Kubernetes együtt még hatékonyabb. Ha a biztonságos DevOps-t a Kubernetesszel együtt vezeti be az Azure-ban, azzal egyensúlyt teremthet a sebesség és a biztonság között, és nagy méretekben is gyorsabban szállíthatja a kódot.

Használja ki az Azure-ral a Kubernetes előnyeit

Az Azure Kubernetes Service (AKS) segítségével könnyen helyezheti üzembe és kezelheti a konténerizált alkalmazásokat. Az AKS kiszolgáló nélküli Kubernetest, integrált CI/CD-funkciókat, valamint vállalati szintű biztonságot és cégirányítási lehetőséget tartalmaz. Egyetlen platformon egyesítheti a fejlesztési és műveleti csapatait, így gyorsan és magabiztosan fejlesztheti, szállíthatja és méretezheti az alkalmazásokat.

Bevezetés a Kubernetes és a Docker használatába