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
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.
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.
Források
Videók, webináriumok, demók, technikai előadások
Nyílt forráskódú szoftvereket fejlesztő közösség
A GitHubon, a KubeConon vagy egy Kubernetes-találkozón találkozhat más AKS-felhasználókkal.
További információ a nyílt forráskódok Azure-ban való használatáról