Kubernetes je dnes standard pro provoz moderních aplikací. Přesto mnoho firem dělá zásadní chyby v jeho implementaci – zejména při nasazování stateful služeb, databází a storage. V článku si ukážeme praktický přístup, který funguje v produkci.
Kubernetes je v roce 2026 standard. Ne buzzword, ne experimentální technologie – standard! Banky, telco, pojišťovny, státní sektor, startupy. Všichni to buď provozují, nebo to plánují. Poptávka po lidech, kteří Kubernetes umí, je obrovská a roste. Jenže s masovou adopcí roste i počet špatných implementací. A většina z nich má stejný kořen: někdo se rozhodl dát do Kubernetes něco, co tam nepatří.
Kubernetes je geniální na stateless workloady. API servery, webové aplikace, mikroservisy, batch joby – prostě cokoliv, co nemá stav a může kdykoliv spadnout a znovu naběhnout na jiném nodu. Na tohle je Kubernetes navržený a na tohle funguje výborně.
Na stateful workloady je to kompromis. A kompromis, který se většinou nevyplatí.
Storage v Kubernetes má fundamentální problém. Network-based storage – NFS, iSCSI přes síť – má vysokou latenci a nízké IOPS. Pro API, které si čte z cache, to nevadí. Pro databázi, která dělá tisíce zápisů za sekundu, je to katastrofa. Pomalé query, timeouty, lock contention, degradace výkonu pod zátěží.
Alternativa je lokální disk nebo Fiber Channel. Tam máte výkon – nízká latence, vysoké IOPS. Ale ztrácíte vysokou dostupnost. Kubernetes umí přesouvat Pody mezi nody. Lokální disk ne. Když odstavíte node – údržba, aktualizace, výpadek hardwaru – odstavíte i aplikaci, která na tom disku závisí. A tím přicházíte o jednu z hlavních výhod celé platformy.
Pragmatický přístup, který funguje v praxi: persistentní vrstva – databáze, message brokery, stavové služby – patří do virtuálních strojů. Stateless vrstva – API, webservery, mikroservisy, frontendy, batch processing – patří do Kubernetes. Propojení přes síť, čisté rozhraní, jasná odpovědnost. Ne proto, že to zní dobře v prezentaci, ale proto, že to reálně funguje v produkci.
Proč to spousta lidí dělá špatně? Protože „to jde" neznamená „je to dobrý nápad". StatefulSety existují, PersistentVolumes existují, operátory pro databáze existují. Technicky to jde nasadit. Ale technicky taky jde jet autem po chodníku. V obou případech je otázka, jestli je to rozumné.
Nainstalovat minikube a spustit nginx – to je tutoriál na dvacet minut. Provozovat Kubernetes v produkci, to je jiná disciplína. A mezera mezi tím je obrovská.
Za roky školení jsem viděl stovky účastníků a jejich přístupy ke Kubernetes. Některé chyby se opakují s železnou pravidelností.
Kopírování manifestů bez porozumění. Stack Overflow, blog post, ChatGPT – zkopíruju YAML, aplikuju, funguje to. Výborně. A pak se něco změní a nic nefunguje a nikdo neví proč. Protože nikdo nerozumí tomu, co ten YAML dělá. Na kurzech proto trváme na tom, aby si účastníci manifesty psali sami a rozuměli každému řádku.
Ignorování resource limitů. Bez limitů může jeden Pod spotřebovat veškeré prostředky nodu. CPU, paměť, všechno. Jeden vývojář nasadí aplikaci s memory leakem, žádné limity – a za dvě hodiny je celý node v OOMKill spirále a s ním všechny ostatní aplikace. Requests a limits nejsou nice-to-have. Jsou nutnost.
Nepochopení rozdílu mezi resource typy. Deployment pro stateless, StatefulSet pro stateful (s výhradami, viz výše), DaemonSet pro node-level služby. Vidím Deploymenty tam, kde má být DaemonSet. StatefulSety tam, kde nemá být Kubernetes vůbec. CronJob tam, kde má být Job. Každý typ existuje z konkrétního důvodu a má konkrétní chování – a to chování je potřeba znát.
Zanedbání bezpečnosti. RBAC nastavení „všichni můžou všechno, pak to opravíme". Security kontext neřešíme. Network policies neexistují – každý Pod komunikuje s každým. Tohle v development prostředí projde. V produkci je to bezpečnostní díra.
A samozřejmě – databáze v Kubernetes. Zmínil jsem to, ale zmíním to znovu, protože je to nejdražší chyba. Ne proto, že to nefunguje – ono to funguje. Tak nějak. Dokud nenastane problém se storage, se škálováním, s backupem, s disaster recovery. A pak zjistíte, že řešit databázi v Kubernetes je násobně složitější než na dedikovaném VM.
Strukturovaný learning path v Pumpedu začíná nejdřív školením na kontejnery – rozumět Dockerfilu, imageům, jak kontejner funguje uvnitř. Pak školení Kubernetes workshop – deklarativní přístup, resource typy, networking, storage, RBAC, troubleshooting. A pak specializace – OpenShift, Helm, ArgoCD, monitoring, logging, podle toho, kam se chcete posunout.
Kubernetes jako investice
Kubernetes je investice. Časová, finanční, mentální. Ale je to investice, která se v dnešním IT vrátí. Pokud ji uděláte správně s pragmatickým přístupem, s pochopením hranic, s jasnými best practices a s vědomím, co nedělat.
Kubernetes Workshop v Pumpedu je přesně o tom.
.