====== Kubernetes (K8s) ====== **Kubernetes** je orchestrátor kontejnerů, který spravuje životní cyklus aplikací běžících v [[Docker|Dockeru]] nebo jiných kontejnerových technologiích. Název pochází z řečtiny a znamená "kormidelník" nebo "lodivod". ===== Hlavní koncepty Kubernetes ===== Kubernetes pracuje s hierarchií objektů, které zajišťují běh aplikací: * **Pod:** Nejmenší jednotka v K8s. Obsahuje jeden nebo více kontejnerů, které sdílejí síť a úložiště. * **Node (Uzel):** Fyzický nebo virtuální stroj, na kterém běží Pody. * **Cluster:** Skupina uzlů (Nodes) spravovaných jako jeden celek. * **Service:** Zajišťuje stabilní síťovou adresu pro skupinu Podů (umožňuje komunikaci mezi částmi aplikace). * **Deployment:** Definice, jak má aplikace vypadat (kolik kopií má běžet, jakou verzi obrazu použít). ===== Jak Kubernetes funguje? ===== K8s funguje na principu **deklarativního řízení**. Uživatel neříká systému, co má udělat ("spusť kontejner"), ale v jakém stavu má systém být ("chci, aby běžely 3 kopie této aplikace"). 1. **Control Plane:** Mozek clusteru, který sleduje stav a rozhoduje o umístění Podů. 2. **Worker Nodes:** Stroje, které skutečně vykonávají práci a spouštějí kontejnery. 3. **Reconciliation Loop:** Neustálý proces, kdy K8s kontroluje aktuální stav oproti požadovanému. Pokud některý kontejner spadne, K8s ho automaticky restartuje. ===== Hlavní výhody ===== ^ Výhoda ^ Popis ^ | **Self-healing** | Automaticky restartuje kontejnery, které selžou, a nahrazuje uzly, které přestanou odpovídat. | | **Auto-scaling** | Dynamicky mění počet běžících instancí aplikace podle aktuální zátěže (CPU/RAM). | | **Zero-downtime** | Umožňuje aktualizovat aplikaci na novou verzi bez přerušení provozu (Rolling updates). | | **Service Discovery** | Automaticky přiřazuje Podům DNS jména a vyvažuje zátěž (Load Balancing). | ===== Srovnání: Docker vs. Kubernetes ===== | Vlastnost | Docker (samostatný) | Kubernetes | |-----------|----------------------|------------| | **Účel** | Vytváření a běh kontejnerů. | Správa stovek kontejnerů na mnoha serverech. | | **Škálování** | Manuální. | Automatické (HPA). | | **Vhodnost** | Vývoj a malé projekty. | Produkce a rozsáhlé systémy. | ===== Nástroje v ekosystému ===== * **kubectl:** Příkazová řádka pro ovládání clusteru. * **Helm:** "Balíčkovací systém" pro Kubernetes (umožňuje snadnou instalaci složitých aplikací). * **Minikube / k3s:** Odlehčené verze K8s pro lokální vývoj a [[Edge computing]]. --- > **Víte, že?** Číslo **8** v zkratce **K8s** zastupuje osm písmen mezi "K" a "s" v anglickém slově Kubernetes. //Související: [[DevOps]], [[Docker]], [[Cloud Computing]], [[https://kubernetes.io|Oficiální web Kubernetes]]//