Docker Swarm: jednoduchšia strana orchestrácie kontajnerov

Docker Swarm je kráľom technológie. Hoci slúži na rovnaký účel ako Kubernetes, neprináša technickú komplexnosť, ktorú so sebou Kubernetes prináša. Režim Swarm premení skupinu Docker Enginov na jeden klaster: manažéri držia požadovaný stav pomocou Raft konsenzu, workery spúšťajú kontajnery a Docker sa stará o overlay sieťovanie a rolling updaty. Preto je ideálny na malý hardvér, akým je Raspberry Pi alebo zastarané stolové počítače, ale aj na výkonné viacjadrové servery.
To je dôležité pre úlohy, ktoré potrebujú flexibilitu a prenosnosť, plus škálovateľnosť a vysokú dostupnosť orchestrátora, a pritom nie sú náročné na zdroje. Docker Swarm je pre presne takéto situácie dar z nebies: beží na dostupnom hardvéri a často predlžuje život strojom, ktoré by inak skončili na skládke.
Je Docker Swarm stále udržiavaný?
Častá námietka je, že Swarm je mŕtvy alebo deprecated. Nie je ani jedno: režim Swarm je súčasťou každého aktuálneho Docker Enginu, stále dostáva opravy a komerčne ho podporuje Mirantis. Prehľad stavu pre rok 2026 od SwarmCLI zhromažďuje datované dôkazy a otvorene hovorí aj o tom, čo Swarm nevie — žiadny autoscaler, žiadny vlastný model zdrojov, žiadny ekosystém operátorov.
A čo k3s?
Zvyčajná námietka je, že túto medzeru už vypĺňa k3s s API kompatibilným s Kubernetes. Vypĺňa — no stále so sebou prináša control plane, ktorý treba prevádzkovať, agenta na každom uzle a slovník objektov, ktoré sa treba naučiť, kým Swarm pridá tri koncepty k Docker Enginu, ktorý už poznáte.
Čo vám swarm prinesie
Po viac ako 18 mesiacoch prevádzky homelabu vidím veľký prínos pre školy, mimovládne organizácie, samosprávu, malé a stredné firmy a podobne. S aktuálnymi možnosťami self-hosted aplikácií prináša prevádzka swarmu obrovskú hodnotu za zlomok celkových nákladov na vlastníctvo (TCO). Príkladmi sú Paperless-ngx, Snipe-IT a n8n — podrobnejšie sa im budem venovať v niektorom z ďalších článkov. Tri stroje nestáli nič, keďže smerovali na skládku, a v nečinnosti spolu odoberajú odhadom 40–60 W, čo je približne 350–525 kWh ročne — asi 90–130 € pri 0,25 €/kWh.
Self-hosting je zároveň poistkou proti závislosti. Každá aplikácia, ktorá beží na swarme, znižuje — a niekedy úplne ruší — nejaké predplatné: miesto v Microsoft 365, zdroj v Azure, službu v AWS, projekt v Google Cloud. Každé z nich je lacné na rozbehnutie, a práve preto sa nepozorovane kopí.
Opätovné využitie starého hardvéru
Homelab, ktorý prevádzkujem, je presne takým prípadom: tri zastarané stolové počítače Dell OptiPlex, každý s Intel Core i5, 16 GB RAM a 256 GB SSD — stroje, ktoré by inak ostali nevyužité. Sú zapojené do gigabitového prepínača Netgear spolu s NAS Synology, ktorý pre celý swarm poskytuje NFS zdieľania. Práve NAS je jediná časť bez redundancie, čo si nechám na niektorý z ďalších článkov. Každý uzol beží na Ubuntu 24.04 LTS a všetky tri sú manažéri — najmenší nepárny počet, ktorý udrží Raft kvórum, ak jeden z nich vypadne.
Homelab som postavil, aby som sa ponoril do orchestrácie kontajnerov a vzdelal sa v novom projekte, na ktorom som začal pracovať. Užil som si každú minútu a stále si užívam. Cesta je kamenistá, ale veľmi odmeňujúca.
Prvotné nastavenie s Ansible
Rozhodol som sa použiť Ansible na automatizáciu, a tak som založil samostatný projekt. Pokrýva prvotné nastavenie:
- inštalácia NFS klienta a konfigurácia mountov z NAS
- inštalácia Dockeru a konfigurácia Docker Swarm
- nastavenie keepalived pre plávajúcu IP
- nastavenie NetBird VPN, aby som sa k swarmu dostal aj mimo LAN
Mám aj niekoľko playbookov na priebežnú údržbu, takže nemusím na každý uzol SSH-ovať a celý postup spúšťať ručne.
Kde Ansible prestal stačiť
Najprv som Ansible používal aj na nasadzovanie kontajnerov, ale čoskoro sa to ukázalo ako príliš zložité na údržbu. Preto som pátral ďalej a vyskúšal niekoľko možností, no ani jedna nefungovala uspokojivo. Vtedy som sa začal pohrávať s myšlienkou vytvoriť nástroj, ktorý by robil GitOps na Docker Swarm spoľahlivo a pohodlne.
Dnes úlohy homelabu bežia na riešení, ktoré som si sám vyvinul. Jeho požadovaný stav je celý definovaný v Gite, vďaka čomu všetko beží hladko.
Nič z toho nie je exotické: tri znovu použité stolové počítače, gigabitový prepínač, NAS a Ansible projekt. Toto je prvý článok série o homelabe a nástroj, ktorý dnes drží jeho požadovaný stav v Gite, bude témou toho ďalšieho.