user@homelab:~/docs$ cat k3s.md

k3s

Jednonodový k3s v1.35, stejná verze jako na zkoušce CKAD

# obsah

Přehled

Verzekanál k3s v1.35 (CKAD 2026 běží na Kubernetes v1.35)
Součástícontainerd, Flannel, CoreDNS, Traefik, metrics-server, local-path provisioner
Přístupkubectl na serveru přes SSH, alias k s doplňováním

1. Firewall pro provoz clusteru

shell @ server
sudo ufw allow 6443/tcp comment 'k3s API'
sudo ufw allow 80/tcp comment 'Traefik HTTP'
sudo ufw allow 443/tcp comment 'Traefik HTTPS'
sudo ufw allow from 10.42.0.0/16 comment 'k3s pods'
sudo ufw allow from 10.43.0.0/16 comment 'k3s services'

Bez pravidel pro síť podů a služeb by ufw zahazoval provoz uvnitř clusteru, například DNS dotazy na CoreDNS.

2. Instalace

shell @ server
curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=v1.35 INSTALL_K3S_EXEC="--write-kubeconfig-mode 600" sh -
  • INSTALL_K3S_CHANNEL=v1.35: nejnovější opravná verze řady 1.35,
  • --write-kubeconfig-mode 600: kubeconfig čte jen root.

3. kubectl pro správce

shell @ server
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown "$USER:$USER" ~/.kube/config && chmod 600 ~/.kube/config
cat >> ~/.bashrc <<'EOF'
export KUBECONFIG=~/.kube/config
source <(kubectl completion bash)
alias k=kubectl
complete -o default -F __start_kubectl k
EOF
source ~/.bashrc

Ověření

shell @ server
k get nodes
k get pods -A
text
NAME      STATUS   ROLES           AGE   VERSION
homelab   Ready    control-plane   46s   v1.35.9+k3s1
Pod v kube-systemRole
corednsDNS uvnitř clusteru
traefik, svclb-traefikingress controller a jeho load balancer na portech hostitele
local-path-provisionerPersistentVolumes na disku nodu
metrics-servermetriky zdrojů (k top)
helm-install-traefik*jednorázové instalační joby (Completed)

Rychlý test cesty přes ingress:

shell @ server
k create deployment hello --image=nginx
k expose deployment hello --port=80
k create ingress hello --rule="/=hello:80"
curl -s http://localhost | grep -o "<title>.*</title>"
k delete ingress,svc,deployment hello

Poznámky

  • curl … | sh spustí oficiální instalátor bez kontroly; v homelabu přijatelné. V produkci: stáhnout, zkontrolovat, pinovat přes INSTALL_K3S_VERSION.
  • k3s na jednom nodu používá jako datové úložiště SQLite; workloady se spravují deklarativně přes GitOps.