Kubernetes
16. března 2026Jsem toho názoru, že pokud chce IT specialista dobře znát a pravidelně používat nějakou serverovou technologi, je ideální si rovnou server s danou technologii sám nainstalovat. Pojďme si tedy Kubernetes nainstalovat a následně provést první deploy.
Co je Kubernetes
Kubernetes (zkráceně K8S) je platforma pro správu kontejnerů, díky které můžete aplikacím zajistit škálování a vysokou dostupnost.
Díky tomu, že Kubernetes je open-source řešení, tak se stalo defakto standardem pro běh cloudových aplikací.
Kubernetes abstrahuje hardwarové zdroje a poskytuje jednotné API správu prostředků
Kubernetes implementuje princip deklarativní konfigurace.
Vy definujete Desired State (požadovaný stav) v YAML souborech a Kubernetes neustále pracuje na tom, aby se Actual State (aktuální stav) s tímto zadáním shodoval.
K čemu se Kubernetes hodí
Kubernetes se hodí tam, kde potřebujete automaticky škálovat,
poskytovat vysokou dostupnost a řešit přístupová práva pro více uživatelů v rámci jednoho výkonového prostředku.
Přesně tyto potřeby mají korporáty.
Pro malé firmy je Kubernetes jen další zbytečný overhead.
Střední firmy mohou využít škálování. Kubernetes nebudou provazovat sami, ale Kubernetes infrastrukturu si nakoupí jako službu.
Kubernetes se hodí pro běh mikroservisní architektury. Takže typickou aplikaci do Kubernetes jen tak nepřesunete, budete s tím mít menší či větší práci. Proto je rozumné si promyslet a vyhodnotiti jestli skutečně využijete výhody Kubernetes.
Jednou z predispozic pro používání Kubernetes je znalost technologie Docker a OS Linux na pokročilé úrovni. Protože pro provoz aplikací v Kubernetes budete muset vytvářet docker image a používat docker kontejnery. Také budete potřebovat dobře rozumět operačnímu systému Linux a sítím, aby jste byli schopni nainstalovat na server Kubernetes a následně tento linuxový server s Kubernetes spravovat.
Pro provoz aplikací v Kubernetes se i předpokládá, že víte jak uděl automatizovaný deploy aplikace na server. Pokud se chcete naučit tyto dovednosti, které se souhrnně nazývají DevOps mám na to video kurz.
Historie Kubernetes
Kubernetes vznikl jako open-source nástupce interního systému Googlu jménem Borg, který Google používal (a stále používá) k orchestraci svých obrovských datových center už od počátku tisíciletí.
- Roku 2014: Google oficiálně oznámil a uvolnil projekt Kubernetes (K8s) jako open-source.
- Roku 2015: Verze 1.0 byla darována nově vzniklé nadaci CNCF (Cloud Native Computing Foundation).
Dnes už Kubernetes nepatří Googlu, ale spravuje ho komunita pod záštitou Linux Foundation, což z něj udělalo celosvětový standard pro cloudové aplikace.
Architektura Clusteru
Control Plane (Master)
- kube-apiserver: Vstupní brána pro veškerou komunikaci (REST).
- etcd: Distribuovaná
key-valuedatabáze pro persistenci stavu clusteru. - kube-scheduler: Algoritmus pro výběr optimálního nodu pro nové Pody.
- kube-controller-manager: Spouští procesy jako
Node ControllerneboJob Controller.
Worker Nodes
- kubelet: Primární agent, který vykonává příkazy z Masteru na konkrétním stroji.
- kube-proxy: Spravuje síťová pravidla (IPtables/IPVS) pro směrování provozu.
- Container Runtime: Vrstva spouštějící kontejnery (např.
containerd).
Pojmy
Bez znalostí pojmů se neobejdeme, takže se pojďme prvně seznámit se základními pojmy:
Klíčové Abstrakce (Objekty)
| Objekt | Popis |
|---|---|
Pod |
Nejmenší atomická jednotka, sdílený network a storage namespace pro jeden či více kontejnerů. |
Deployment |
Kontroler pro bezstavové aplikace, zajišťuje update strategie (RollingUpdate). |
Service |
Abstrakce pro stabilní síťovou identitu (ClusterIP, NodePort, LoadBalancer). |
ConfigMap/Secret |
Injektáž konfigurace a citlivých dat do prostředí kontejneru. |
Co je to namespace?
Namespace umožňuje virtuální rozdělení clusteru na více částí.
Namespace funguje jako izolované pracovní prostředí pro různé projekty nebo týmy.
Hipicky pro každý nový projekt vytvoříte nový samostatný namespace.
Namespace umožňuje:
- Separace: Zabraňuje konfliktům jmen (např. vícero aplikací "web").
- Kvóty: Možnost omezit CPU/RAM pro konkrétní tým.
- Příklad:
prod,staging,dev. - Práva: nastavení práv dle namespace.
Co je to Ingress?
Ingress je inteligentní Load Balancer (Layer 7), který řídí přístup z vnějšího světa k aplikacím uvnitř clusteru.
Ingress umožňuje:
- Routing: Směruje provoz podle URL (
domena.cz/apivsdomena.cz/web). - SSL/TLS: Centrální terminace HTTPS spojení. (Správu certifikátů na jednom místě řeší cert-manager).
- Sdílení veřejné IPv4: Desítky aplikací mohou běžet za jednou veřejnou IPv4 adresou. (Úspora veřejné IPv4)
Typicky tuto úlohu může zajišťovat Nginx ingress nebo Treafik ingress
Instalace Kubernetes
Máme cca čtyři hlavní možnosti, jak nainstalovat jednoduše Kubernetes:
- Microk8s
- K3s
- K3d
- Minicube
Porovnání Microk8s vs K3s vs Minikube.
Osobně jsem zakotvil pro základní vyzkoušení u K3s.
Pro dlouhodobý (byť testovací provoz) však rozhodně doporučuji instalovat Kubernetes kompletně ručně
ať to máte výslednou instalaci plně pod kontrolou.
Microk8s
MicroK8s je to lehká, certifikovaná distribuce Kubernetes od společnosti Canonical (tvůrci Ubuntu), která je navržena tak, aby běžela s minimálními nároky na zdroje, ale s plnou silou velkého orchestrátoru.
🚀 Rychlost a lehkost Instalace pod 60 sekund. Minimální nároky na RAM a CPU, ideální pro Edge a IoT.
🔌 One-click Add-ons Snadná aktivace funkcí (DNS, Dashboard, GPU, Istio) pomocí jediného příkazu.
🛡️ Bezpečnost a izolace Běží jako Snap balíček – izolovaný od systému s automatickými atomickými aktualizacemi.
🔄 High Avalibility provoz (Vysoká dostupnost) MicroK8s podporuje provoz více-nodového clusteru. Tedy automatickou replikaci řídicí roviny při spojení 3 a více uzlů.
MicroK8s je často nejoblíbenější cesta pro začátečníky jak nainstalovat Kubernetes na Linuxu a nebo i na jiných OS za použití virtuálního PC.
K3S
K3S je plně certifikovaná minimalistická distribuce Kubernetes od Rancher Lab navržená pro IoT, Edge a CI/CD systémy.
📦 Jedna binárka Vše potřebné (včetně containerd a Flannelu) je v jednom souboru o velikosti cca 100 MB.
📉 Nízká režie Spotřebovává méně než 512 MB RAM odstraněním nepotřebného kódu a cloudových driverů.
🗄️ SQL místo etcd Jako výchozí databázi používá lehký SQLite, ale podporuje i PostgreSQL nebo MySQL.
🛠️ Helm Ready Obsahuje Helm Controller, který umožňuje automatické nasazení manifestů a chartů po startu.
Ve výchozím nastavení K3S používá Traefik jako „Ingress“ a „Proxy“. Osobně preferuji používat NGINX. S Traefikem nemám zkušenosti, tak preferují používat NGINX, s kterým mám zkušenosti. I když z pohledu konfigurace se stejně budete muset znova učit zápis, protože se konfigurace dělá pře YAML.
Takto jsem nainstaloval k3s bez Treafiku:
apt-get install curl iptables export INSTALL_K3S_EXEC=" --disable=traefik" curl -sfL https://get.k3s.io | sh - #start kubernetes sluzby systemctl status k3s.service #overeni funkcnosti k3s kubectl get node kubectl get pods -ANásledně můžete doinstalovat Nginx jako ingress.
Další informace:
How to create a k3s cluster with Nginx Ingress controller
How to run k3s in LXC container
K3d
K3d je lehký wrapper pro spouštění K3s v Dockeru.
Vlastnosti K3d
🐳 Docker-native Každý uzel (node) clusteru je samostatný Docker kontejner. Stačí mít nainstalovaný Docker.
⚡ Extrémní rychlost Vytvoření a spuštění celého multi-node clusteru trvá doslova pár sekund.
💻 Multi-node na notebooku Snadno simulujete složité topologie (více masterů a workerů) bez potřeby virtuálních strojů.
🛠️ Skvělé pro CI/CD Ideální pro automatizované testování – cluster vytvoříte, otestujete aplikaci a okamžitě smažete.
🌐 Hot Reloading Podpora pro lokální registry a snadné mapování portů z localhostu přímo do clusteru.
Minicube
Minicube může běžet s různými drivery, tedy můžete Kubernetes provozovat nad různými technologii.Konkretně můžete použít tyto technologie pro běh kubernetes pomocí Minicube:
- docker
- kvm2
- qemu2
- podman
- virtualbox
Video návody instalace a první použití Kubernetes
Video návod jak nainstalovat Kubenetes pomocí K3s včetně instalace Nginx ingress:
První deploy jednoduché webové aplikace do Kubenetes, kterým ověříte funkčnost Kubernetes:
PS: vzorový docker image jde spustit i na serveru s CPU ARM.
Zprovoznění SSL/TLS certifikátů let´s encrypt pomocí certmanageru:
Další služby
Pokud provozujete nějaké aplikace,
tak krom vykonávání kódu nějakého programu budete potřebovat ukládat i data na disk nebo do databáze. Jak na to?
Standardní a efektivní řešení, jak provozovat databázi pro projekty v Kubernetes,
je provozovat databázi jako standardní systémovou službu, nikoli v Kubernetes.
Pokud jde o úložiště a nepoužíváte více nodový cluster,
tak nejjednodušší a efektivní řešení pro storage je použít lokální úložiště.
Ano, znamená to, že nemůžete škálovat aplikaci přes více nodů.
Jakmile budete mít více nodový cluster, tak můžete jako úložiště použít NFS nebo distribuované úložiště
Longhorn nebo Ceph ale existují i další.
Závěr
Kubernetes je silný nástroj.
Ovšem vzhledem ke komplexnosti instalace správě a neposlední řade i složitosti přípravy aplikace pro provoz v Kubernetes,
doporučuji se nejdříve zamyslet a prodiskutovat s konzultantem, jestli výhody Kubernetes skutečně využijete.
Pokud chcete s provozem aplikací v Kubernetes
pomocí tak jsem tady pro vás k dispozicí stačí mě kontaktovat a požádat o konzultaci a následně můžeme zahájit spolupráci.
Tento článek slouží primárně jako návod jak si vytvořit Kubernetes prostředí pro testovací účely. Pokud potřebujete produkční provoz doporučuji se na Kubernetes kouknout detailněji a hlouběji nebo si objednat specialistu na linuxové servery.
Články na podobné téma
Databáze SAP HANA
Příkaz AT
Docker build multiarch image
VMware vs Proxmox: porovnání výkonu
GitLab CI/CD: automatizace testů a nasazení aplikace
Migrace VPS z VMware na Proxmox
Změna licencování VMware
Provoz Microsoft SQL serveru na Linuxu
Zálohování: Proxmox backup server
Linux jako router a firewall
Jak náhrát docker image do Docker Registry
Linux: Logical Volume Management
Linuxový softwarový RAID
Provoz webové aplikace za proxy
Migrace mail schránek
Docker multistage build
Zálohování dat zapnutím počítače
Podman
Import Windows do virtualizace Proxmox
Docker a PHP mail
Virtualizace Proxmox
Docker a Cron
Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Příprava linuxového serveru pro běh webové aplikace v jazyce Python
Jak řešit špatný výkon sdílených souborů u Dockeru
Jak začít správně používat Docker
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Mageia Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Operační systém GNU/Linux
Odběr novinek
Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k
odběru novinek.
+