Čo je Kubernetes: orchestrácia kontajnerov zrozumiteľne

Kubernetes (skratka K8s) je dnes základ prevádzky moderných aplikácií vo veľkom. Znie to ako záhadná technológia, no princíp je jasný. Poďme si vysvetliť, čo Kubernetes robí, ako funguje a pre koho má skutočne zmysel.
Čo je Kubernetes
Kubernetes je open source systém na orchestráciu kontajnerov. Automaticky riadi nasadenie, škálovanie a prevádzku kontajnerových aplikácií naprieč celou skupinou serverov. Pôvodne ho vyvinul Google, dnes ho spravuje nezávislá nadácia CNCF (Cloud Native Computing Foundation).
Jednoducho povedané: Kubernetes je dirigent, ktorý sa stará o to, aby kontajnery bežali tam, kde majú, v správnom počte a bez výpadku.
Prečo vôbec vznikol
Kontajnery (napríklad cez Docker) zabalia aplikáciu so všetkým, čo potrebuje na beh. Princíp vysvetľuje článok čo je Docker a kontajnery.
Keď máte kontajnerov pár, zvládnete ich spravovať ručne. Keď ich máte stovky, rozložené na mnohých serveroch, ručná správa prestáva fungovať. Potrebujete niekoho, kto to riadi za vás. Presne tým je Kubernetes.
Kľúčové pojmy jednoducho
- Pod je najmenšia jednotka v Kubernetes. Je to jeden alebo viac kontajnerov, ktoré bežia spolu.
- Node je jeden server (fyzický alebo virtuálny) v klastri. Čo je server, približuje článok čo je server, virtuálne servery zasa čo je hypervízor.
- Cluster je skupina nodov, ktoré Kubernetes riadi spoločne ako jeden celok.
- Deployment je predpis, ktorý hovorí, koľko kópií aplikácie má bežať a v akej verzii.
- Service je stabilný prístupový bod k aplikácii, ktorý zároveň rozkladá záťaž (load balancing) medzi jednotlivé kópie.
Čo Kubernetes zabezpečuje
- Automatické škálovanie. Podľa záťaže pridá alebo uberie kópie aplikácie, aby zvládla nápor aj šetrila zdroje.
- Samoopravu (self-healing). Keď kontajner spadne, Kubernetes ho zaregistruje a spustí nový namiesto neho.
- Rolling updates. Novú verziu nasadí postupne, bez výpadku, kým bežia ešte staré kópie.
- Rozloženie záťaže. Požiadavky rozdeľuje medzi viac kópií, aby sa žiadna nepreťažila.
- Vysokú dostupnosť. Keď zlyhá jeden server, aplikácia beží ďalej na ostatných.
Pre koho má zmysel
Kubernetes naberá zmysel pri veľkých a náročných nasadeniach:
- Veľké aplikácie s množstvom kontajnerov a vysokou prevádzkou.
- Mikroslužby (microservices), kde je aplikácia rozdelená na desiatky samostatných služieb.
- Cloud a tímy s mnohými službami a vysokými nárokmi na dostupnosť.
Pre malé nasadenia je Kubernetes zbytočne zložitý. Tam často stačí jeden server alebo nástroj typu Docker Compose. Zložitosť navyše sa oplatí len vtedy, keď ju naozaj využijete.
Na čo myslieť
Kubernetes je mocný nástroj, no nie je zadarmo, čo do času ani znalostí. Vyžaduje pochopenie, správne nastavenie a údržbu. Pri menších projektoch býva jednoduchšie riešenie spoľahlivejšie a lacnejšie na prevádzku.
Záver
Kubernetes je štandard pre prevádzku kontajnerov vo veľkom. Rieši škálovanie, dostupnosť a automatizáciu, ktoré by sa pri stovkách kontajnerov ručne zvládnuť nedali. Pre veľké a náročné aplikácie je to mimoriadne silný nástroj, pre malé nasadenia zvyčajne zbytočne zložitý.
Ak vás zaujímajú moderné IT témy a technológie v zákulisí webov a aplikácií, sledujte náš blog.
Tento článok je súčasťou prehľadu Softvér a systém.
Potrebujete pomoc s IT?
Postaráme sa o vaše počítače, siete aj bezpečnosť - pre firmy aj domácnosti na Liptove.
Kontaktujte nás