Zobrazit vše

Kubernetes v praxi: chyby, architektura a co do něj (ne)patří

12. 04. 2026 Jiří Snopek Open source: Kubernetes

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 v praxi


Největší omyl: „Dáme všechno do Kubernetes"

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é.

Co znamená opravdu umět Kubernetes

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á.

Deklarativní přístup

  • Umět Kubernetes znamená rozumět deklarativnímu přístupu. Nepíšete příkazy „spusť tenhle kontejner". Popisujete cílový stav – chci tři repliky téhle aplikace, na tomhle portu, s tímhle resource limitem – a Kubernetes se stará o to, aby ten stav existoval. Control loop: pozoruj, porovnej, oprav. Tohle pochopení je fundamentální a bez něj budete Kubernetes používat jako lepší Docker Compose, což je plýtvání.

Klíčové resource typy

  • Znamená to rozumět resource typům. Deployment, StatefulSet, DaemonSet, Job, CronJob – každý má jiný účel a jiné chování. Service, Ingress, NetworkPolicy – networking v Kubernetes je svět sám o sobě. ConfigMap, Secret, PersistentVolume, PersistentVolumeClaim – konfigurace a storage. A nad tím vším RBAC, ServiceAccounts, LimitRanges, ResourceQuotas.

Troubleshooting v Kubernetes

  • A hlavně to znamená umět troubleshootovat. Kubectl logs, describe, exec, get events – to je denní chleba Kubernetes administrátora i vývojáře. Když Pod nenaběhne, potřebujete vědět kde hledat. Když Service neodpovídá, potřebujete vědět proč. Když Deployment zasekne rollout, potřebujete vědět jak diagnostikovat a opravit. A tohle se z dokumentace naučíte těžko – potřebujete to vidět na reálných příkladech a hlavně si to zkusit sami.

Nejčastější chyby při používání Kubernetes

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.

Proč databáze do Kubernetes většinou nepatří

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.

Jak se Kubernetes naučit efektivně

  • Dokumentace Kubernetes je rozsáhlá a kvalitní. Ale je to reference, ne učebnice. Říká vám co existuje, ne jak to používat v praxi. A hlavně vám neřekne, co nedělat.
  • Samoukem se Kubernetes naučit jde. Ale trvá to mnohonásobně déle, protože zkoušíte slepé uličky, opakujete chyby, které už udělal někdo před vámi, a nemáte zpětnou vazbu od někoho, kdo ví, jak to vypadá v produkci.
  • Hands-on přístup je klíčový. Ne přednáška, kde se díváte na slajdy. Lab prostředí, kde si všechno zkoušíte sami na reálném clusteru. Kde můžete něco rozbít – a naučit se to opravit. Protože v produkci tu možnost nemáte.

Školení Kubernetes – ucelený program od základů po pokročilé

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 - Vzdělávací program

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. 

  • Dva dny hands-on na reálném clusteru. 
  • Výklad, pak lab – každá kapitola. 
  • S lektorem z praxe, který vám řekne nejen jak to udělat, ale hlavně co nedělat a proč. 
Název Kód Jazyk Délka Forma Termín konání Cena
Kubernetes workshop PU23010008-0001 cz 2 dny
virtuální učebna
Kurz probíhá online přes počítač a ve stanoveném termínu, lektor je připojen vzdáleně.
virtuální učebna
otevřený termín 20 000 Kč

.






Proč s námi