Kubernetes és Docker

Egymást tökéletesen kiegészítő technológiákkal buildelhet, valósíthat meg és méretezhet alkalmazásokat gyorsan.

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

A Kubernetes és a Docker körüli 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 az almás pitéhez, és gyakori tévhit, hogy az csak az egyiket vagy a másikat használhatja.

A Kubernetes és a Docker közti különbség könnyebben megérthető, 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 tárolóalapú alkalmazások buildeléséhez, terjesztéséhez és méretezéséhez.

A Docker és a tárolókra bontás elterjedése

A Docker egy nyílt forráskódú technológia (valamint 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 rendszerekre történő fejlesztésével foglalkozik, és olyan felhőszolgáltatókkal működik együtt, mint a Microsoft.

A környezetek elkülönítése nem új koncepció, és egyéb tárolókra bontó 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 buildelhet és futtathat tárolókat, amelyek lemezképeit egy tárolóregisztrációs adatbázissal tárolhatja vagy oszthatja meg (például a Docker Hubbal vagy az Azure Container Registryvel).

Az alkalmazások mérete több kiszolgálón üzembe helyezett tárolókra is kiterjed, a működtetésük is egyre összetettebbé válik. A Docker nyílt szabványt jelent tárolóalapú alkalmazások csomagolásához és terjesztéséhez, azonban könnyen megjelenhetnek összetett kihívások. Hogyan koordinálható és ütemezhető számos tároló egyszerre? Hogyan kommunikálhatnak egymással az alkalmazás különböző tárolói? Hogyan méretezhető egyszerre számos tárolópéldány? Ezekben segít a Kubernetes.

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

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

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

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

Gyakori a Kubernetes és a Docker közti összehasonlítás, azonban jobb példa a Kubernetes és a Docker Swarm. A Docker Swarm a Docker vezénylési technológiája, amely Docker-tárolók fürtözésével foglalkozik, saját API-t alkalmaz, és a Docker ökoszisztémájának szorosan integrált része.

A Kubernetes és a Docker közti alapvető különbség az, hogy a Kubernetest egy fürtön, míg a Dockert egy csomóponton kell futtatni. A Kubernetes kiterjedtebb, mint a Docker Swarm, és éles környezeti csomópontok fürtjeinek nagy léptékű, hatékony koordinálásáért felel. A Kubernetes-podok – ütemezési egységek, amelyek egy vagy több tárolót tartalmaznak a Kubernetes ökoszisztémájában – eloszlanak a csomópontok között, és magas rendelkezésre állást biztosítanak.

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 lehetővé teszi, hogy Ön minden tároló-erőforrását egyetlen vezérlősíkon vezényelje és kezelje. Ez segít a tárolókban futó összes Kubernetes-csomópont hálózatkezelésében, terheléselosztásában, a biztonság kiépítésében és a méretezésben. A Kubernetes emellett beépített elkülönítési mechanizmusokkal is rendelkezik (például névterekkel), amelyekkel engedélyek, átmeneti környezetek és egyéb szempontok alapján csoportosíthat tároló-erőforrásokat. Ezekkel a szerkezetekkel az informatikai részleg könnyebben nyújthat önkiszolgáló erőforrás-elérést a fejlesztőknek, akik pedig könnyebben működhetnek együtt 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 a 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 felhőbeli natív alkalmazások gyors teljesí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ához. 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 fejleszté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ödnek. A Docker nyílt szabványt jelent tárolóalapú alkalmazások csomagolásához és terjesztéséhez. A Dockerrel tárolókat buildelhet és futtathat, valamint tárolólemezképeket tárolhat és oszthat meg. Docker-buildek könnyen futtathatók Kubernetes-fürtökön, azonban a Kubernetes magában 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, valamint folyamatos integrációs/folyamatos üzembe helyezé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

Simplify the deployment and management of Microservices based applicationsSimplify the deployment and management of Microservices based applications12345567778

Áttekintés

Az AKS megkönnyíti a horizontális skálázást, az önjavítást, a terheléselosztást és a titkos kódok kezelését.

Flow

  1. 1 Visual Studiót vagy más IDE-t használhat, hogy a változásokat véglegesítse a GitHubban.
  2. 2 A GitHub elindít egy új buildet az Azure DevOps-on
  3. 3 Az Azure DevOps a mikroszolgáltatásokat tárolókként csomagolja be, és elküldi azokat az Azure Container Registrybe
  4. 4 A tárolók AKS-fürtökben lesznek üzembe helyezve
  5. 5 Az erőforrásokhoz való hozzáférés biztonságáról az Azure Active Directory gondoskodik
  6. 6 A felhasználók alkalmazásokon és webhelyeken keresztül érik el a szolgáltatásokat
  7. 7 A rendszergazda az alkalmazásokat egy különálló rendszergazdai portál használatával érheti el
  8. 8 A mikroszolgáltatások adatbázisokban tárolják és onnan kérik le az adatokat
Secure DevOps for AKSDevOps and Kubernetes are better together. Implementing secure DevOps together with Kubernetes on Azure, you can achieve the balance between speed and security and deliver code faster at scale. Put guardrails around the development processes using CI/CD with dynamic policy controls and accelerate feedback loop with constant monitoring. Use Azure Pipelines to deliver fast while ensuring enforcement of critical policies with Azure Policy. Azure provides you real-time observability for your build and release pipelines, and the ability to apply compliance audit and reconfigurations easily.123456789

Áttekintés

A DevOps és a Kubernetes együtt még hatékonyabb. Ha a biztonságos DevOps-t a Kubernetesszel együtt valósítja meg az Azure-ban, egyensúlyban tarthatja a sebességet és a biztonságot, és nagy méretekben is gyorsabban szállíthatja a kódot. A fejlesztési folyamatot dinamikus szabályzatalapú vezérlést használó CI/CD-vel teheti biztonságossá, a visszajelzési hurkot pedig folyamatos monitorozással gyorsíthatja fel. Az Azure Pipelines használatával gyors munkavégzést érhet el, az Azure Policy révén pedig gondoskodhat a kritikus fontosságú szabályzatok betartásáról is. Az Azure valós idejű megfigyelést tesz lehetővé a buildelési és a kibocsátási folyamatokhoz, és biztosítja a megfelelőségi auditálások és újrakonfigurálások elvégzését is.

Flow

  1. 1 Gyorsan iterálhat és tesztelhet különböző alkalmazásrészeket egyszerre, ugyanazon Kubernetes-fürtön, valamint végezhet rajtuk hibakeresést
  2. 2 A kód egy GitHub-adattárban lesz egyesítve, és utána az Azure Pipelines automatizált buildeléseket és teszteket futtat
  3. 3 A tárolólemezkép regisztrálva lesz az Azure Container Registryben
  4. 4 A Kubernetes-fürtöket olyan eszközökkel lehet kiépíteni, mint a Terraform. A Terraform által telepített Helm-diagramok definiálják az alkalmazás-erőforrások kívánt állapotát és konfigurációit
  5. 5 Operátorok kényszerítésével vezényelheti az AKS-fürtök üzemelő példányait
  6. 6 A kiadási folyamat automatikusan végrehajtja az előre definiált üzembe helyezési stratégiát minden kódváltozásnál
  7. 7 A szabályzat érvénybe léptetése és a naplózás az Azure Policy használatával lesznek hozzáadva a CI/CD-folyamathoz
  8. 8 Az alkalmazástelemetriát, a tárolóállapot figyelését és a valós idejű naplóelemzéseket az Azure Monitor használatával lehet elvégezni
  9. 9 A problémák elhárításához használható információk bekerülnek a következő futamtervekbe

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

Az Azure Kubernetes Service (AKS) segítségével könnyen helyezhet üzembe és kezelhet tárolóalapú 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ást tartalmaz. Egyetlen platformon egyesítheti fejlesztési és műveleti csoportjait, így gyorsan és magabiztosan fejleszthet, szállíthat és méretezhet alkalmazásokat.

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