Kontejnerizace obecne

Co to je: Kontejnerizace je technologie virtualizace na úrovni aplikace, která umožňuje spouštění aplikací a všech jejich závislostí v izolovaných kontejnerech.

Jak to funguje: Kontejnery sdílejí operační systém hostitelského systému, ale mají vlastní izolovaný souborový systém, procesy, síťové rozhraní a prostředí. To umožňuje konzistentní a spolehlivé spouštění aplikací napříč různými prostředími.

Výhody kontejnerizace:
- Konzistence mezi vývojem, testováním a produkčním prostředím.
- Rychlé nasazení a škálování aplikací.
- Izolace zajišťuje, že aplikace neovlivní ostatní aplikace na stejném serveru.

Populární nástroje: Docker, Podman, Containerd.

Kubernetes

Co to je: Kubernetes je open-source orchestrátor kontejnerů vyvinutý společností Google. Umí automaticky nasazovat, škálovat a spravovat kontejnerizované aplikace.

Jak to funguje: Kubernetes provádí deklarativní konfiguraci pomocí souborů YAML, které popisují stav aplikace a požadované vlastnosti. Kubernetes poté zajišťuje, že stav aplikace odpovídá tomuto deklarativnímu popisu, což zahrnuje spuštění, škálování, obnovení a zotavení aplikace.

Výhody Kubernetes:
- Automatické nasazování a škálování aplikací.
- Široké možnosti pro monitorování, logování a zabezpečení aplikací.
- Efektivní využívání hardwarových zdrojů a dynamické přidělování zdrojů podle potřeby.

Základní pojmy Kubernetes:
- Pod: Nejmenší jednotka v Kubernetes, která obsahuje jeden nebo více kontejnerů a sdílí síťové a úložné zdroje.
- Deployment: Definuje stav aplikace a umožňuje Kubernetes automaticky nasazovat a aktualizovat aplikaci.
- Service: Abstrakce, která umožňuje komunikaci mezi jednotlivými komponentami aplikace.
- Ingress: Mechanismus pro řízení přístupu k aplikaci zvenčí.
- Namespace: Logické oddělení Kubernetes clusteru pro izolaci a správu zdrojů.

Populární nástroje: Kubernetes, OpenShift, Amazon EKS, Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service (AKS).

Shrnutí

Kontejnerizace umožňuje zapouzdření aplikací a všech jejich závislostí do kontejnerů, zatímco Kubernetes poskytuje řešení pro orchestraci, správu a škálování těchto kontejnerů. Společně umožňují

Helm

Helm je nástroj pro správu balíčků (package manager) pro Kubernetes. Je navržen tak, aby usnadnil instalaci, aktualizaci a správu aplikací a služeb na Kubernetes clusteru pomocí jednoduchých a opakovatelných konfigurací.

Funkce Helmu:

Helm je užitečný nástroj pro automatizaci a standardizaci nasazování aplikací na Kubernetes, což usnadňuje správu a udržování Kubernetes clusterů.