{"id":1620,"date":"2025-08-09T17:57:35","date_gmt":"2025-08-09T17:57:35","guid":{"rendered":"https:\/\/virtualall.sk\/?p=1620"},"modified":"2026-09-11T13:50:23","modified_gmt":"2026-09-11T13:50:23","slug":"k3s-na-raspberry-pi-od-napadu-po-funkcny-kubernetes-klaster","status":"publish","type":"post","link":"https:\/\/virtualall.sk\/en\/2025\/08\/k3s-na-raspberry-pi-od-napadu-po-funkcny-kubernetes-klaster\/","title":{"rendered":"K3s on Raspberry Pi &#8211; From Idea to Functional Kubernetes Cluster"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">K3s je od\u013eah\u010den\u00e1 distrib\u00facia Kubernetes, vyvinut\u00e1 spolo\u010dnos\u0165ou Rancher Labs, ktor\u00e1 umo\u017e\u0148uje r\u00fdchle a jednoduch\u00e9 nasadenie Kubernetes klastra aj na zariadeniach s obmedzen\u00fdmi zdrojmi. Je optimalizovan\u00fd na n\u00edzku spotrebu RAM, CPU a \u00falo\u017eiska, pri\u010dom si zachov\u00e1va v\u0161etky k\u013e\u00fa\u010dov\u00e9 funkcie Kubernetes \u2013 od nasadzovania aplik\u00e1ci\u00ed a\u017e po ich spr\u00e1vu a \u0161k\u00e1lovanie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">V\u010faka malej pam\u00e4\u0165ovej stope (typicky do 512 MB RAM na uzol) a jednoduchosti in\u0161tal\u00e1cie je k3s ide\u00e1lnym rie\u0161en\u00edm pre projekty&nbsp;<strong>Edge computingu<\/strong>,&nbsp;<strong>IoT<\/strong>, v\u00fdvojov\u00e9 prostredia a men\u0161ie produk\u010dn\u00e9 nasadenia.<br>Jeho hlavn\u00e1 sila spo\u010d\u00edva v tom, \u017ee sp\u00fa\u0161\u0165a kompletn\u00fd Kubernetes control plane v jednom bin\u00e1rnom s\u00fabore a odstra\u0148uje nepotrebn\u00e9 komponenty, \u010d\u00edm \u0161etr\u00ed v\u00fdkon a zjednodu\u0161uje konfigur\u00e1ciu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pre\u010do pr\u00e1ve Raspberry Pi &#8211; beby cloud<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Raspberry Pi je cenovo dostupn\u00fd a energeticky nen\u00e1ro\u010dn\u00fd jednodeskov\u00fd po\u010d\u00edta\u010d, ktor\u00fd sa vo svete IT stal popul\u00e1rnym pre svoje \u0161irok\u00e9 mo\u017enosti nasadenia \u2013 od dom\u00e1cich serverov a\u017e po komplexn\u00e9 clustre.<br>V kombin\u00e1cii s k3s dok\u00e1\u017ee Raspberry Pi sl\u00fa\u017ei\u0165 ako plnohodnotn\u00fd Kubernetes klaster vhodn\u00fd na:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>v\u00fdvoj a testovanie aplik\u00e1ci\u00ed,<\/li>\n\n\n\n<li>simul\u00e1ciu distribuovan\u00fdch prostred\u00ed,<\/li>\n\n\n\n<li>be\u017eiace IoT projekty,<\/li>\n\n\n\n<li>v\u00fdu\u010dbu a experimenty s cloud-native technol\u00f3giami.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00fdhodou je aj n\u00edzka spotreba energie, tich\u00e1 prev\u00e1dzka a mo\u017enos\u0165 fyzicky umiestni\u0165 viacero uzlov na mal\u00fd priestor, \u010do z neho rob\u00ed atrakt\u00edvnu alternat\u00edvu pre dom\u00e1cich nad\u0161encov aj profesion\u00e1lov, ktor\u00ed chc\u00fa experimentova\u0165 s Kubernetes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u010co v \u010dl\u00e1nku n\u00e1jdete<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">V \u010fal\u0161\u00edch \u010dastiach sa budeme venova\u0165:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pr\u00edprave Raspberry Pi na in\u0161tal\u00e1ciu k3s<\/strong>\u00a0(OS, sie\u0165, SSH, nastavenia).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Postupu nasadenia master uzla<\/strong>\u00a0s k3s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pridaniu worker uzlov<\/strong>\u00a0do klastra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kontrole funk\u010dnosti a testovaniu nasadenia<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pr\u00edprava Raspberry Pi na in\u0161tal\u00e1ciu k3s<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aby bol k3s klaster na Raspberry Pi stabiln\u00fd a pripraven\u00fd na dlhodob\u00fa prev\u00e1dzku, je potrebn\u00e9 pred samotnou in\u0161tal\u00e1ciou pripravi\u0165 v\u0161etky uzly. Nasleduj\u00face kroky zabezpe\u010dia optimalizovan\u00e9 prostredie pre Kubernetes a minimalizuj\u00fa probl\u00e9my po\u010das prev\u00e1dzky.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">1. V\u00fdber a in\u0161tal\u00e1cia opera\u010dn\u00e9ho syst\u00e9mu<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Odpor\u00fa\u010dan\u00e9 je pou\u017ei\u0165\u00a0<strong>Raspberry Pi OS Lite (64-bit)<\/strong>\u00a0alebo\u00a0<strong>Ubuntu Server 22.04 LTS (64-bit)<\/strong>.<\/li>\n\n\n\n<li>Vyhnite sa desktopov\u00fdm verzi\u00e1m \u2013 zbyto\u010dne spotreb\u00favaj\u00fa RAM a CPU.<\/li>\n\n\n\n<li>OS nahrajte na microSD kartu alebo SSD pomocou\u00a0<strong>Raspberry Pi Imager<\/strong>.<\/li>\n\n\n\n<li>Pri in\u0161tal\u00e1cii nastavte:\n<ul class=\"wp-block-list\">\n<li>Hostname (napr.\u00a0<code>rpi-master<\/code>,\u00a0<code>rpi-worker1<\/code>,\u00a0<code>rpi-worker2<\/code>).<\/li>\n\n\n\n<li>Povolenie SSH pr\u00edstupu.<\/li>\n\n\n\n<li>Nastavenie siln\u00e9ho hesla pre pou\u017e\u00edvate\u013ea\u00a0<code>pi<\/code>\u00a0alebo vytvorenie nov\u00e9ho pou\u017e\u00edvate\u013ea.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Aktualiz\u00e1cia syst\u00e9mu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Po prvom spusten\u00ed sa prihl\u00e1ste na ka\u017ed\u00fd uzol a aktualizujte bal\u00ed\u010dky:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt full-upgrade -y\nsudo reboot<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00fdm zabezpe\u010d\u00edte aktu\u00e1lne bezpe\u010dnostn\u00e9 z\u00e1platy a kompatibilitu kni\u017en\u00edc potrebn\u00fdch pre k3s.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. Nastavenie statickej IP adresy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">K3s klaster vy\u017eaduje, aby sa master aj workery vedeli navz\u00e1jom spo\u013eahlivo n\u00e1js\u0165. Najjednoduch\u0161ie je priradi\u0165 im statick\u00e9 IP adresy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nastavte IP adresy bu\u010f v DHCP serveri (statick\u00e9 lease) alebo priamo v s\u00fabore\u00a0<code>\/etc\/dhcpcd.conf<\/code>\u00a0(Raspberry Pi OS) \/ Netplan konfigur\u00e1cii (Ubuntu Server).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. Aktiv\u00e1cia a zabezpe\u010denie SSH<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ak ste SSH nepovolili u\u017e pri in\u0161tal\u00e1cii, zapnite ho:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable ssh\nsudo systemctl start ssh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Odpor\u00fa\u010dan\u00e9 bezpe\u010dnostn\u00e9 opatrenia:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zak\u00e1za\u0165 prihlasovanie cez heslo a povoli\u0165 iba SSH k\u013e\u00fa\u010de.<\/li>\n\n\n\n<li>Zmeni\u0165 \u0161tandardn\u00fd port 22 na in\u00fd (napr. 2222).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. Nastavenie hostname<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Na ka\u017edom Raspberry Pi nastavte jedine\u010dn\u00fd hostname:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo hostnamectl set-hostname rpi-master<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">(re\u0161tartujte alebo odhl\u00e1ste a prihl\u00e1ste sa znova, aby sa zmena prejavila)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Vypnutie nepotrebn\u00fdch slu\u017eieb a swapu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">K3s na Raspberry Pi pracuje lep\u0161ie bez swapu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dphys-swapfile swapoff\nsudo systemctl disable dphys-swapfile<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7. Povolenie cgroups (Control Groups)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cgroups s\u00fa potrebn\u00e9 na spr\u00e1vu zdrojov v Kubernetes.<br>Otvorte s\u00fabor&nbsp;<code>\/boot\/cmdline.txt<\/code>&nbsp;a pridajte na koniec riadku:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cgroup_memory=1 cgroup_enable=memory<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Potom re\u0161tartujte zariadenie.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8. Synchroniz\u00e1cia \u010dasu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pre stabilitu klastra je d\u00f4le\u017eit\u00e1 synchroniz\u00e1cia syst\u00e9mov\u00e9ho \u010dasu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo timedatectl set-ntp true<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Overte nastavenie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"986\" height=\"237\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/image-1.png\" alt=\"8. Synchroniz\u00e1cia \u010dasu\" class=\"wp-image-1622\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/image-1.png 986w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/image-1-300x72.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/image-1-768x185.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/image-1-18x4.png 18w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">T\u00fdmto je Raspberry Pi pripraven\u00e9 na in\u0161tal\u00e1ciu k3s. V \u010fal\u0161ej \u010dasti sa bude pokra\u010dova\u0165 nastaven\u00edm\u00a0<strong>master uzla<\/strong>\u00a0a n\u00e1sledn\u00fdm pridan\u00edm\u00a0<strong>worker uzlov<\/strong>\u00a0do klastra.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">In\u0161tal\u00e1cia k3s na master uzol<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Po pr\u00edprave Raspberry Pi m\u00f4\u017eeme prist\u00fapi\u0165 k in\u0161tal\u00e1cii&nbsp;<strong>master uzla<\/strong>&nbsp;(control plane). Tento uzol bude riadi\u0165 cel\u00fd Kubernetes klaster a uchov\u00e1va\u0165 jeho stav.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Prihl\u00e1senie na master uzol<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pripojte sa na master Raspberry Pi cez SSH (z in\u00e9ho po\u010d\u00edta\u010da alebo priamo cez konzolu):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh pi@IP_ADRESA_MASTER<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><em>(IP_ADRESA_MASTER nahra\u010fte skuto\u010dnou IP adresou master uzla)<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Spustenie in\u0161tal\u00e1cie k3s<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">K3s poskytuje jednoduch\u00fd in\u0161tala\u010dn\u00fd skript, ktor\u00fd nain\u0161taluje v\u0161etky potrebn\u00e9 komponenty a nakonfiguruje klaster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Spustite:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -sfL https:\/\/get.k3s.io | sh -<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Skript automaticky:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stiahne najnov\u0161iu verziu k3s.<\/li>\n\n\n\n<li>Nain\u0161taluje ju ako syst\u00e9mov\u00fa slu\u017ebu (<code>\/etc\/systemd\/system\/k3s.service<\/code>).<\/li>\n\n\n\n<li>Spust\u00ed API server, scheduler a controller manager.<\/li>\n\n\n\n<li>Ulo\u017e\u00ed konfigur\u00e1ciu do\u00a0<code>\/etc\/rancher\/k3s\/k3s.yaml<\/code>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1641\" height=\"557\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-19.59.39-2.png\" alt=\"2. Spustenie in\u0161tal\u00e1cie k3s\" class=\"wp-image-1633\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-19.59.39-2.png 1641w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-19.59.39-2-300x102.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-19.59.39-2-1024x348.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-19.59.39-2-768x261.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-19.59.39-2-1536x521.png 1536w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-19.59.39-2-18x6.png 18w\" sizes=\"auto, (max-width: 1641px) 100vw, 1641px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3. Overenie stavu klastra<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Po dokon\u010den\u00ed in\u0161tal\u00e1cie skontrolujte, \u010di k3s be\u017e\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status k3s<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2561\" height=\"964\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.03.22.png\" alt=\"3. Overenie stavu klastra\" class=\"wp-image-1634\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.03.22.png 2561w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.03.22-300x113.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.03.22-1024x385.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.03.22-768x289.png 768w\" sizes=\"auto, (max-width: 2561px) 100vw, 2561px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Z\u00edskajte inform\u00e1cie o uzle a podoch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl get nodes\nk3s kubectl get pods -A<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1432\" height=\"385\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.05.18.png\" alt=\"3. Overenie stavu klastra (2)\" class=\"wp-image-1635\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.05.18.png 1432w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.05.18-300x81.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.05.18-1024x275.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.05.18-768x206.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.05.18-18x5.png 18w\" sizes=\"auto, (max-width: 1432px) 100vw, 1432px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Ak v\u0161etko prebehlo spr\u00e1vne, uvid\u00edte master uzol so stavom\u00a0<strong>Ready<\/strong>\u00a0a z\u00e1kladn\u00e9 syst\u00e9mov\u00e9 komponenty v stave\u00a0<strong>Running<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Z\u00edskanie tokenu pre worker uzly<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aby sa \u010fal\u0161ie Raspberry Pi mohli pripoji\u0165 ako worker uzly, potrebujete&nbsp;<strong>join token<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cat \/var\/lib\/rancher\/k3s\/server\/node-token<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00fdstup bude vyzera\u0165 napr\u00edklad takto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K10f9c4a8bcd89f8b3cbb98b8d5c8fdaac5a678c47a7e90a3d3bb8c1234567890::server:1234567890abcdef<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tento token si ulo\u017ete \u2013 pou\u017eijete ho pri konfigur\u00e1cii worker uzlov.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pridanie worker uzlov do klastra<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Po \u00faspe\u0161nej in\u0161tal\u00e1cii master uzla m\u00f4\u017eeme k3s klaster roz\u0161\u00edri\u0165 o \u010fal\u0161ie Raspberry Pi ako&nbsp;<strong>worker uzly<\/strong>. Tie bud\u00fa vykon\u00e1va\u0165 re\u00e1lnu pr\u00e1cu \u2013 sp\u00fa\u0161\u0165a\u0165 va\u0161e aplik\u00e1cie, kontajnery a slu\u017eby.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">1. Pr\u00edprava worker uzlov<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pred samotn\u00fdm pripojen\u00edm sa uistite, \u017ee ka\u017ed\u00fd worker uzol m\u00e1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nain\u0161talovan\u00fd a aktualizovan\u00fd OS pod\u013ea postupu z \u010dasti\u00a0<strong>Pr\u00edprava Raspberry Pi<\/strong>.<\/li>\n\n\n\n<li>Statick\u00fa IP adresu a hostname (napr.\u00a0<code>rpi-worker1<\/code>,\u00a0<code>rpi-worker2<\/code>).<\/li>\n\n\n\n<li>Povolen\u00fd SSH pr\u00edstup.<\/li>\n\n\n\n<li>Povolen\u00e9 cgroups v\u00a0<code>\/boot\/cmdline.txt<\/code>\u00a0(rovnako ako master).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Prihl\u00e1senie na worker uzol<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pripojte sa cez SSH na jeden z worker uzlov:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh pi@IP_ADRESA_WORKER<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Spustenie in\u0161tal\u00e1cie k3s pre worker<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Na worker uzloch nein\u0161talujeme kompletn\u00fd control plane, ale iba&nbsp;<strong>k3s agent<\/strong>.<br>Potrebujete pozna\u0165:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>IP adresu master uzla (<code>MASTER_IP<\/code>).<\/li>\n\n\n\n<li>Join token z mastera (<code>NODE_TOKEN<\/code>), ktor\u00fd ste z\u00edskali pr\u00edkazom:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cat \/var\/lib\/rancher\/k3s\/server\/node-token<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Spustite na worker uzle:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -sfL https:\/\/get.k3s.io | K3S_URL=https:\/\/MASTER_IP:6443 K3S_TOKEN=NODE_TOKEN sh -<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2550\" height=\"701\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.13.32.png\" alt=\"3. Spustenie in\u0161tal\u00e1cie k3s pre worker\" class=\"wp-image-1636\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.13.32.png 2550w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.13.32-300x82.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.13.32-1024x281.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.13.32-768x211.png 768w\" sizes=\"auto, (max-width: 2550px) 100vw, 2550px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4. Overenie stavu worker uzla<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Po in\u0161tal\u00e1cii sa worker automaticky pripoj\u00ed k masteru. Overte to na&nbsp;<strong>master uzle<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl get nodes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mali by ste vidie\u0165 master aj worker uzly so stavom\u00a0<strong>Ready<\/strong>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1208\" height=\"170\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.14.47.png\" alt=\"4. Overenie stavu worker uzla\" class=\"wp-image-1637\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.14.47.png 1208w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.14.47-300x42.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.14.47-1024x144.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.14.47-768x108.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.14.47-18x3.png 18w\" sizes=\"auto, (max-width: 1208px) 100vw, 1208px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">5. Opakovanie pre \u010fal\u0161ie workery<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ak m\u00e1te viac worker uzlov, zopakujte postup od kroku 2 pre ka\u017ed\u00fd z nich s rovnak\u00fdm&nbsp;<code>K3S_URL<\/code>&nbsp;a&nbsp;<code>K3S_TOKEN<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">6. Tip: Overenie komunik\u00e1cie v klastri<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Na master uzle m\u00f4\u017eete otestova\u0165 komunik\u00e1ciu a nasadi\u0165 jednoduch\u00fd testovac\u00ed pod:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl run test-nginx --image=nginx --port=80\nk3s kubectl get pods -o wide<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pod by sa mal spusti\u0165 na jednom z worker uzlov, \u010do potvrd\u00ed funk\u010dnos\u0165 klastra.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1704\" height=\"136\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.16.54.png\" alt=\"6. Tip: Overenie komunik\u00e1cie v klastri\" class=\"wp-image-1638\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.16.54.png 1704w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.16.54-300x24.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.16.54-1024x82.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.16.54-768x61.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.16.54-1536x123.png 1536w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.16.54-18x1.png 18w\" sizes=\"auto, (max-width: 1704px) 100vw, 1704px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Kontrola funk\u010dnosti a testovanie nasadenia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Po pridan\u00ed v\u0161etk\u00fdch worker uzlov je potrebn\u00e9 overi\u0165, \u010di cel\u00fd k3s klaster funguje spr\u00e1vne, \u010di s\u00fa v\u0161etky uzly v stave&nbsp;<strong>Ready<\/strong>a \u010di je mo\u017en\u00e9 nasadi\u0165 aplik\u00e1cie. Tento krok je k\u013e\u00fa\u010dov\u00fd na potvrdenie, \u017ee sie\u0165ov\u00e1 komunik\u00e1cia, pl\u00e1novanie podov a orchestrace v klastri prebiehaj\u00fa bez probl\u00e9mov.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Overenie stavu uzlov<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Na master uzle spustite:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl get nodes -o wide<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Skontrolujte:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>STATUS<\/strong>: v\u0161etky uzly by mali ma\u0165 stav\u00a0<code>Ready<\/code>.<\/li>\n\n\n\n<li><strong>ROLES<\/strong>: master m\u00e1 rolu\u00a0<code>control-plane<\/code>, workery nemusia ma\u0165 definovan\u00fa rolu.<\/li>\n\n\n\n<li><strong>VERSION<\/strong>: verzia Kubernetes (k3s) by mala by\u0165 rovnak\u00e1 na v\u0161etk\u00fdch uzloch.<\/li>\n\n\n\n<li><strong>INTERNAL-IP<\/strong>: IP adresy by mali zodpoveda\u0165 nastaveniam z pr\u00edpravy.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2558\" height=\"251\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25.png\" alt=\"1. Overenie stavu uzlov\" class=\"wp-image-1639\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25.png 2558w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25-300x29.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25-1024x100.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25-768x75.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25-1536x151.png 1536w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25-2048x201.png 2048w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.20.25-18x2.png 18w\" sizes=\"auto, (max-width: 2558px) 100vw, 2558px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">2. Overenie syst\u00e9mov\u00fdch podov<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">K3s pri \u0161tarte sp\u00fa\u0161\u0165a viacer\u00e9 syst\u00e9mov\u00e9 komponenty \u2013 CoreDNS, traefik (ak ste ho ponechali), storage provisioner a \u010fal\u0161ie.<br>Zobraz\u00edte ich pr\u00edkazom:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl get pods -A<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">V\u0161etky syst\u00e9mov\u00e9 pody by mali by\u0165 v stave\u00a0<strong>Running<\/strong>\u00a0alebo\u00a0<strong>Completed<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1436\" height=\"366\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.21.45.png\" alt=\"2. Overenie syst\u00e9mov\u00fdch podov\" class=\"wp-image-1640\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.21.45.png 1436w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.21.45-300x76.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.21.45-1024x261.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.21.45-768x196.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.21.45-18x5.png 18w\" sizes=\"auto, (max-width: 1436px) 100vw, 1436px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3. Nasadenie testovacej aplik\u00e1cie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Na overenie funk\u010dnosti je dobr\u00e9 nasadi\u0165 jednoduch\u00fa aplik\u00e1ciu \u2013 napr\u00edklad Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl create deployment test-nginx --image=nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Po nasaden\u00ed skontrolujte, na ktorom uzle be\u017e\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl get pods -o wide<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00fdstup uk\u00e1\u017ee IP adresu podu a uzol, na ktorom bol napl\u00e1novan\u00fd. Ak sa pod spustil na workeri, znamen\u00e1 to, \u017ee pl\u00e1novanie funguje spr\u00e1vne.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1938\" height=\"194\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.26.45.png\" alt=\"3. Nasadenie testovacej aplik\u00e1cie\" class=\"wp-image-1641\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.26.45.png 1938w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.26.45-300x30.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.26.45-1024x103.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.26.45-768x77.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.26.45-1536x154.png 1536w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.26.45-18x2.png 18w\" sizes=\"auto, (max-width: 1938px) 100vw, 1938px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">4. Spr\u00edstupnenie aplik\u00e1cie cez Service<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aby ste si mohli testovaciu aplik\u00e1ciu zobrazi\u0165 v prehliada\u010di, vytvorte slu\u017ebu typu NodePort:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl expose deployment test-nginx --type=NodePort --port=80\nk3s kubectl get service test-nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00fdstup uk\u00e1\u017ee priraden\u00fd\u00a0<strong>NodePort<\/strong>\u00a0(napr. 30080).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1505\" height=\"194\" src=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.28.12.png\" alt=\"4. Spr\u00edstupnenie aplik\u00e1cie cez Service\" class=\"wp-image-1642\" srcset=\"https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.28.12.png 1505w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.28.12-300x39.png 300w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.28.12-1024x132.png 1024w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.28.12-768x99.png 768w, https:\/\/virtualall.sk\/wp-content\/uploads\/2025\/08\/Snimka-obrazovky-2025-08-09-o-20.28.12-18x2.png 18w\" sizes=\"auto, (max-width: 1505px) 100vw, 1505px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Potom otvorte prehliada\u010d a zadajte:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;IP_ADRESA_KTOR\u00c9HOKO\u013dVEK_UZLA:NodePort<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ak sa zobraz\u00ed predvolen\u00e1 str\u00e1nka Nginxu, klaster je plne funk\u010dn\u00fd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Vy\u010distenie testovac\u00edch zdrojov<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Po teste m\u00f4\u017eete pod a slu\u017ebu odstr\u00e1ni\u0165:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k3s kubectl delete deployment test-nginx\nk3s kubectl delete service test-nginx<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>V \u010dl\u00e1nku sa venujeme praktick\u00e9mu postupu, ako si vytvori\u0165 vlastn\u00fd Kubernetes klaster na Raspberry Pi pomocou od\u013eah\u010denej distrib\u00facie k3s. Tento n\u00e1vod je zameran\u00fd na IT nad\u0161encov aj profesion\u00e1lov, ktor\u00ed chc\u00fa spozna\u0165 Kubernetes v prostred\u00ed s n\u00edzkou spotrebou a minim\u00e1lnymi hardv\u00e9rov\u00fdmi n\u00e1rokmi, pri\u010dom si zachovaj\u00fa plnohodnotn\u00e9 funkcie pre orchestr\u00e1ciu kontajnerov.<\/p>\n","protected":false},"author":1,"featured_media":1645,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[325,337],"class_list":["post-1620","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-cloud-native","tag-container-orchestration"],"_links":{"self":[{"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/posts\/1620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/comments?post=1620"}],"version-history":[{"count":9,"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/posts\/1620\/revisions"}],"predecessor-version":[{"id":2246,"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/posts\/1620\/revisions\/2246"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/media\/1645"}],"wp:attachment":[{"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/media?parent=1620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/categories?post=1620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtualall.sk\/en\/wp-json\/wp\/v2\/tags?post=1620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}