könyv: Kubernetes Patterns, 2nd Edition

Borítókép a Kubernetes Patterns, 2nd Edition című könyvhöz.

Újrahasznosítható Elemek Cloud Native Alkalmazások Tervezéséhez

Szerzők: Bilgin Ibryam és Roland Huß

A Kubernetes a modern szoftverfejlesztés és -üzemeltetés egyik meghatározó eszköze lett. Ez a rendszer lehetővé teszi alkalmazások skálázható és rugalmas üzemeltetését konténeres környezetben, ami alapvető fontosságú a felhőalapú architektúrákban. A Kubernetes elősegíti a DevOps kultúra, a folyamatos integráció és kiszolgáltatás (CI/CD), valamint a mikroszolgáltatások architektúrájának megvalósítását.

A könyv célközönsége és céljai

Az ingyenesen letölthető „Kubernetes Patterns, 2nd Edition” könyv elsősorban azok számára íródott, akik már ismerik a Kubernetes alapjait és szeretnének mélyebb ismereteket szerezni a platform fejlettebb használatához. A könyv célja, hogy bemutassa a Kubernetesben alkalmazható legjobb gyakorlatokat, mintákat, és megoldásokat a különböző kihívásokra. Az olvasók megtanulhatják, hogyan alkalmazzák ezeket a mintákat a gyakorlatban, hogy hatékonyabban tudják kezelni és üzemeltetni a Kubernetes környezeteket.

Újdonságok a második kiadásban

A második kiadás frissítéseket és új tartalmakat tartalmaz, amelyek az előző kiadás óta történt változásokra és fejlesztésekre reflektálnak a Kubernetes ökoszisztémában. Ezek közé tartoznak az új minták és legjobb gyakorlatok, amelyek a közösség tapasztalatai alapján alakultak ki, valamint a legújabb Kubernetes verziókban bevezetett funkciókra való kiterjesztések.

Konvenciók, amelyeket a könyv használ

A könyv különböző konvenciókat alkalmaz a tartalom könnyebb értelmezése és alkalmazása érdekében. Ezek közé tartoznak a kód kivonatok, diagramok, példa konfigurációk és esettanulmányok, amelyek segítenek az olvasónak jobban megérteni és alkalmazni a Kubernetes mintákat a valós környezetekben.

Bevezető: Az Út a Felhő Nativitás Felé

A Kubernetes Patterns könyv első része, az „Alapvető Minták”, a Kubernetes alapvető fogalmainak és architektúrának mélyreható megértésére összpontosít. A bevezető fejezet, „Az Út a Felhő Nativitás Felé”, bemutatja, hogyan alakult ki a modern felhő natív architektúra, és miért vált a Kubernetes az ilyen típusú infrastruktúrák kulcsfontosságú elemévé. Ez a fejezet áttekintést nyújt a Kubernetes alapvető fogalmainak, mint a konténerek, podok, szolgáltatások, címkék és névterek fogalmáról.

illusztráció

Alapvető Minták

2. Fejezet: Előrejelzhető Igények

Az első technikai fejezet, a „Predictable Demands” (Előrejelzhető Igények), a Kubernetesben való erőforrás-kezelés alapelveit tárgyalja. Ez a fejezet olyan mintákat mutat be, amelyek segítenek a fejlesztőknek és rendszergazdáknak meghatározni és kezelni az alkalmazásaik által igényelt erőforrásokat. Az előrejelzhető igények megértése kritikus a hatékony és megbízható rendszerek tervezésében és működtetésében.

3. Fejezet: Nyilatkozat Alapú Telepítés

Ez a fejezet különböző telepítési stratégiákat tárgyal, mint a Rolling Deployment, Fixed Deployment, Blue-Green Release és Canary Release. Ezek a stratégiák kulcsfontosságúak a folyamatos integrációs és kiszolgáltatási (CI/CD) folyamatokban, lehetővé téve az alkalmazások zökkenőmentes frissítését és skálázását.

4. Fejezet: Egészségügyi Ellenőrzés

A következő fejezet, az „Egészségügyi Ellenőrzés” (Health Probe), az alkalmazások egészségének monitorozására koncentrál. Ez magában foglalja a Process Health Checks, Liveness Probes, Readiness Probes és Startup Probes technikákat. Ezek az eszközök segítenek a Kubernetes rendszereknek megbízhatóan kezelni az alkalmazások állapotát, javítva ezzel a rendszer stabilitását és reagálási képességét.

5. Fejezet: Kezelt Életciklus

A „Kezelt Életciklus” (Managed Lifecycle) fejezet a konténer-alkalmazások életciklusának kezelésével foglalkozik. Ez a rész bemutatja a SIGTERM és SIGKILL jeleket, a PostStart és PreStop horgokat, valamint más életciklus-vezérlési technikákat. Ezek az eszközök segítenek a fejlesztőknek és rendszergazdáknak finomhangolni az alkalmazások indítását, leállítását és menedzselését.

6. Fejezet: Automatizált Elhelyezés

Az „Automatizált Elhelyezés” (Automated Placement) fejezet a Kubernetes erőforrás-tervezési és ütemezési képességeit tárgyalja. Ez magában foglalja a Node és Pod Affinity/Anti-Affinity, Topology Spread Constraints, valamint Taints és Tolerations technikákat. Ezek a stratégiák segítenek optimalizálni az alkalmazások elosztását a klaszterben, növelve ezzel a rendszer teljesítményét és megbízhatóságát.

Viselkedési Minták

7. és 8. Fejezetek : Batch és Periodikus Job

A „Batch Job” és „Periodic Job” fejezetek a különböző típusú feladatok végrehajtásának mintáival foglalkoznak a Kubernetes környezetben. Ezek a fejezetek bemutatják, hogyan lehet hatékonyan kezelni időszakos és egyszeri batch feladatokat, lehetővé téve a felhasználók számára, hogy maximalizálják a Kubernetes automatizálási képességeit.

9. Fejezet: Daemon Service

A „Strukturális Minták” rész első fejezete, a „Daemon Service”, olyan mintákat tárgyal, amelyek a háttérszolgáltatások futtatására vonatkoznak minden egyes csomóponton a Kubernetes klaszterben. Ezek a szolgáltatások folyamatosan futnak, és fontos szerepet töltenek be, mint például naplózás, monitorozás, vagy biztonsági felügyelet.

10. Fejezet: Singleton Service

A „Singleton Service” fejezet a Kubernetesben futó egyedi (singleton) szolgáltatások kezelésével foglalkozik. Bemutatja az olyan megoldásokat, mint az alkalmazáson kívüli és alkalmazáson belüli zárolás, valamint a Pod Disruption Budget használatát. Ezek a technikák segítenek biztosítani, hogy egy adott szolgáltatásból mindig csak egy példány fusson a klaszterben, elkerülve ezzel az erőforrás-konfliktusokat és redundanciákat.

11. Fejezet: Állapot Nélküli Szolgáltatás (Stateless Service)

Ez a fejezet az állapot nélküli szolgáltatások létrehozásával és kezelésével foglalkozik a Kubernetesben. A fejezet részletezi, hogyan kezeljük az instanciákat, hálózatot és tárolást ilyen típusú szolgáltatások esetén. Az állapot nélküli szolgáltatások alapvető elemei a skálázható és rugalmas felhő alapú architektúráknak.

12. Fejezet: Állapot Megőrző Szolgáltatás (Stateful Service)

A „Stateful Service” fejezet az állapot megőrző szolgáltatások kihívásaival és megoldásaival foglalkozik. Ez magában foglalja a tárolás, hálózat, identitás, ordinalitás és egyéb követelmények kezelését. Az állapot megőrző szolgáltatások kritikusak olyan alkalmazások számára, amelyeknek szükségük van az állapotuk megőrzésére a működés során, mint például adatbázisok vagy üzenetkezelő rendszerek.

13. Fejezet: Szolgáltatás Felfedezés (Service Discovery)

A „Service Discovery” fejezet a Kubernetesben elérhető szolgáltatások felfedezésének különböző módjaival foglalkozik. Ez magában foglalja a belső szolgáltatás felfedezést, a kézi szolgáltatás felfedezést, a klaszteren kívülről történő szolgáltatás felfedezést és az alkalmazási réteg szolgáltatás felfedezését. Ezek a minták segítenek a Kubernetes alkalmazásoknak hatékonyan megtalálni és kommunikálni egymással a klaszteren belül és kívül.

14. Fejezet: Öntudatosság (Self Awareness)

A „Konfigurációs Minták” rész első fejezete, az „Öntudatosság”, a Kubernetesben futó alkalmazások és konténerek öntudatosságának problémáival foglalkozik. Ez magában foglalja a megoldásokat, amelyek lehetővé teszik az alkalmazások számára, hogy tisztában legyenek a környezetükkel és azon belüli helyzetükkel, így jobban tudnak reagálni a változásokra és igényekre.

Strukturális Minták

15. Fejezet: Init Container

Az „Init Container” fejezet az olyan konténerekkel foglalkozik, amelyek az alkalmazás konténerei előtt futnak, céljuk az előkészítés vagy a beállítások elvégzése. Ez lehetővé teszi a komplex inicializációs folyamatok elvégzését, mielőtt az alkalmazás elindulna.

16. Fejezet: Sidecar

A „Sidecar” fejezet olyan mintákat mutat be, ahol a segéd (sidecar) konténerek kiegészítik és támogatják a fő alkalmazás konténereit. Ezek a sidecar konténerek gyakran végzik a naplózást, monitorozást, adat szinkronizációt, vagy más kiegészítő funkciókat.

17. Fejezet: Adapter

Az „Adapter” fejezet az adapter minta Kubernetesben történő alkalmazásával foglalkozik. Ez magában foglalja az olyan megoldásokat, amelyek segítenek összekapcsolni az alkalmazásokat a különböző külső rendszerekkel és szolgáltatásokkal, lehetővé téve az adatok átalakítását vagy közvetítését.

18. Fejezet: Ambassador

Az „Ambassador” fejezet az ambassador minta használatát tárgyalja a Kubernetesben. Ez a minta különösen hasznos a hálózati kommunikáció kezelésében, segítve az alkalmazásokat abban, hogy hatékonyabban kommunikáljanak külső szolgáltatásokkal.

Konfigurációs Minták

19-21. Fejezetek: Konfigurációs Minták

A következő három fejezet a Kubernetes konfigurációs mintáival foglalkozik:

  • „EnvVar Configuration”: Környezeti változók használata a konfigurációban.
  • „Configuration Resource”: Konfigurációs erőforrások használata az alkalmazások beállításaihoz.
  • „Immutable Configuration”: A változatlan konfigurációk használata, mint a Docker Volumes, Kubernetes Init Containers és OpenShift Templates.

22. Fejezet: Konfigurációs Sablon (Configuration Template)

A „Biztonsági Minták” rész elején a „Konfigurációs Sablon” fejezet foglalkozik a konfigurációs sablonok használatával a Kubernetesben. Ez magában foglalja a megoldásokat és technikákat a konfigurációk hatékony kezelésére és automatizálására, segítve ezzel a fejlesztőket a rendszerbeállítások egyszerűsítésében.

Biztonsági Minták

23. Fejezet: Folyamat Elszigetelés (Process Containment)

A „Process Containment” fejezet a konténerizált alkalmazások biztonsági szempontú elszigetelésével foglalkozik. Bemutatja, hogyan futtathatók a konténerek nem-root felhasználói jogokkal, hogyan korlátozhatók a konténer képességei, hogyan kerülhető el a változtatható konténer fájlrendszer, és hogyan hajthatók végre biztonsági szabályzatok.

24. Fejezet: Hálózati Szegmensek (Network Segmentation)

A „Network Segmentation” fejezet a hálózati politikák és hitelesítési politikák segítségével történő hálózati elszigetelés fontosságát és technikáit tárgyalja. Ezek a megoldások növelik a Kubernetes klaszterek biztonságát azzal, hogy kontrollálják a hálózati forgalmat és hozzáférést.

25. Fejezet: Biztonságos Konfiguráció (Secure Configuration)

Ez a fejezet a biztonságos konfiguráció fontosságát tárgyalja, beleértve a klaszteren kívüli titkosítást és a központosított titokkezelést. Ez a megközelítés segít biztosítani a Kubernetes környezetek biztonságát és a titoktartást.

26. Fejezet: Hozzáférés-ellenőrzés (Access Control)

A „Access Control” fejezet az autentikáció, autorizáció, beléptető vezérlők, tárgy és szerepközpontú hozzáférés-ellenőrzés fontosságát és alkalmazását tárgyalja a Kubernetes környezetben. Ez a fejezet bemutatja, hogyan lehet hatékonyan kezelni a felhasználók és alkalmazások hozzáférését a Kubernetes erőforrásokhoz.

Haladó Minták

27. Fejezet: Vezérlő (Controller)

A „Haladó Minták” rész elején a „Vezérlő” fejezet a Kubernetes vezérlőinek alapelveit és alkalmazásait tárgyalja. Ez magában foglalja a különböző típusú vezérlőket, és hogyan segítenek automatizálni a klaszter működését, beleértve a rendszerállapot fenntartását és a változások kezelését.

28. Fejezet: Operátor (Operator)

Az „Operator” fejezet a Kubernetes operátorokkal foglalkozik, amelyek speciális vezérlőként működnek, automatizálva az alkalmazások telepítését, skálázását és kezelését. Ez a fejezet részletesen bemutatja a Custom Resource Definitions (CRD) használatát, az operátorok fejlesztését és telepítését, valamint egy példát az operátor használatára.

29. Fejezet: Rugalmas Skálázás (Elastic Scale)

A „Rugalmas Skálázás” fejezet a Kubernetes skálázási képességeivel foglalkozik. Bemutatja a manuális horizontális skálázást, a horizontális pod autoscalinget, a vertikális pod autoscalinget és a klaszter autoscalinget. Ez a fejezet segít megérteni a különböző skálázási szinteket és azok alkalmazását a klaszter erőforrásainak hatékony kezelésére.

30. Fejezet: Konténerkép Építő (Image Builder)

Az „Image Builder” fejezet a konténerképek építésének folyamatait és eszközeit tárgyalja. Ez magában foglalja a konténerkép építést, az építési koordinátorokat, az építési podokat, és az OpenShift build megoldásokat. Ezek az eszközök segítenek automatizálni és optimalizálni a konténerképek építési folyamatát.

Az illusztráció, amely fa építőjáték elemekből összerakott stilizált számítógépet ábrázol

A Könyv Jelentősége és Hasznossága

A könyv jelentősége abban rejlik, hogy részletesen bemutatja a Kubernetes legfontosabb mintáit és gyakorlatait, amelyek segítenek a fejlesztőknek és rendszergazdáknak hatékonyabban tervezni, üzemeltetni és skálázni a Kubernetes alapú alkalmazásokat. A könyv olyan olvasók számára készült, akik már ismerik a Kubernetes alapjait, és szeretnének mélyebben megismerni a haladó fogalmakat és legjobb gyakorlatokat.

Kinek Ajánlott a Könyv

Ez a könyv különösen hasznos lehet azok számára, akik fejlesztőként, rendszermérnökként vagy DevOps szakértőként dolgoznak, és szeretnének mélyebb ismereteket szerezni a Kubernetesben. Akik a könyvet elolvassák, azok jobban megérthetik, hogyan alkalmazhatják a Kubernetes mintákat és technikákat a gyakorlatban, javítva ezzel az alkalmazások teljesítményét, megbízhatóságát és skálázhatóságát.

Letöltés

https://developers.redhat.com/e-books/kubernetes-patterns

Avatar photo

Szerző: Istvan Kerekes

Ha úgy érzed, hogy a munkád során tudnék segíteni Red Hat, vagy IBM termékekkel kapcsolatban, akkor keress bátran: https://www.arrow.com/globalecs/hu/munkatarsaink/red-hat/