K8s Cluster — Findings
Syntéza zjištění z analýzy clusteru. Stav k 2026-05-07.
Aktuální stav v kostce
| Oblast | Verze / config | Stav |
|---|---|---|
| Kubernetes | v1.26.0 | ❌ EOL od února 2024 |
| Hostitelské OS | Ubuntu 20.04.6, kernel 6.12.79 | ✅ aktuální kernel |
| Container runtime | containerd 1.7.27 | ✅ ok |
| Nody | 3 (1 master + 2 workers) Ready | ✅ |
| CNI | Flannel VXLAN | ✅ funguje, low-latency |
| kube-proxy | iptables mode | ✅ ok pro tento scale |
| Load balancer | MetalLB Layer2 (ConfigMap config) | ⚠️ pre-CRD verze (před v0.13) |
| Ingress | ingress-nginx, 20 ingressů, deprecated anotace | ⚠️ chybí IngressClass resource |
| Storage | 1 nepoužitá NFS SC, vše ostatní hostPath | ⚠️ data přilepená na nody |
| NetworkPolicies | žádné | ⚠️ flat L3, žádná izolace |
| metrics-server | nenainstalovaný | ⚠️ kubectl top nefunguje |
| etcd | healthy | ✅ |
| API server | za WireGuard (172.16.16.1:6443) | ✅ dobrá praxe |
| cert-manager, dashboard | běží | ✅ funkční (verze stará) |
Co funguje dobře
- Inter-node konektivita je stabilní a rychlá (sub-ms latency v overlay).
- VXLAN backend je správná volba pro LXC prostředí — alternativy (host-gw, native routing) nejsou v LXC dostupné.
- WireGuard pro API server access schovává control plane mimo veřejnou síť.
- MetalLB Layer2 s jednou public IP funguje a je jednoduchý.
- etcd, controller-manager, scheduler běží zdravě (despite deprecated
componentstatuseswarning).
Co tikne (priorita podle naléhavosti)
🔴 Vysoká: k8s 1.26 EOL
- Žádné security patche od února 2024.
- Cca 1.5 roku za aktuální stable větev.
- Akce: postupný upgrade
1.26 → 1.31(5 hopů, plán viz upgrade-plan).
🔴 Vysoká: Postgres na hostPath bez zálohy a replikace
- Data v
/k8s/kubernetes-postgresqlna konkrétním nodu. - Při ztrátě nodu = ztráta DB.
- Akce: minimálně automatizovaný
pg_dumpcron + off-site copy. Dlouhodobě úvaha o CloudNativePG s replikami.
🟡 Střední: chybí IngressClass resource
- 20 ingressů spoléhá na deprecated anotaci
kubernetes.io/ingress.class: nginx. - ingress-nginx ji aktuálně pořád respektuje, ale není to garantováno do budoucna.
- Akce: jeden YAML — vytvořit
IngressClass nginxjako default. Existující ingressy fungují dál.
🟡 Střední: MetalLB v pre-CRD verzi
- Konfigurace přes ConfigMap (před v0.13).
- Verze nedostává security updates.
- Migrace na CRD-based config znamená krátký výpadek public IP (~30s).
- Akce: udělat samostatně, mimo k8s upgrade hopy.
🟡 Střední: hostPath všude
- Data většiny stateful workloadů jsou přilepená na nody (
/k8s/*). - Bez NFS PVC (které je nasazené, ale nepoužívané kromě testu).
- Akce: postupná migrace nekritických workloadů (krcmar/media, blog, sellapp, pgadmin, wireguard) na NFS PVC. Postgres a OpenLDAP záměrně zůstávají na hostPath.
🟢 Nízká: chybí NetworkPolicies
- Flat L3 — jakýkoli pod si může povídat s jakýmkoli.
- Pro osobní cluster ok, ale citlivé namespacy (postgres, openldap) by mohly mít izolaci.
- Akce: postupně přidávat per-namespace policy podle potřeby.
🟢 Nízká: chybí metrics-server
kubectl topnefunguje, žádné HPA.- Pro homelab obvykle nekritické.
- Akce: jeden
kubectl applyna deploy manifest.
🟢 Nízká: cleanup
docker0interface na masteru (Docker daemon nainstalovaný, nepoužívaný).- Test workload
nfs-nginxvdefaultnamespace (pravděpodobně už nepotřebný). - 50 restartů ingress-nginx-controller za 230 dní (sledovat, jestli se trend nezhoršuje).
Souvislost s plánovanými změnami
- Nextcloud bude zrušen a nahrazen Rust aplikací na Turris routeru. K8s pro tu službu bude jen public proxy přes Service+Endpoints+Ingress. Nextcloud workload tedy v migračních plánech vynechat.
- Postgres zůstává na fixed nodu s hostPath i během upgradu. Migrace na CloudNativePG (s replikami) je samostatný projekt na později.
- Migrace nekritických workloadů na NFS PVC se hodí udělat před k8s upgrade — méně proměnných najednou.
Co je vůbec mimo dosah v tomto prostředí
vpsfree.cz LXC kontejnery brání použití některých „enterprise" řešení:
- ❌ Ceph / Rook — kernel moduly, block devices, privileged ops.
- ❌ Longhorn — iSCSI (kernel moduly).
- ❌ OpenEBS Mayastor / cStor — hugepages, NVMe features.
- ❌ DRBD / LINSTOR — kernel modul.
Jediná reálně dostupná HA storage v LXC = NFS (přes vpsfree nebo vlastní NFS server) + aplikační replikace pro databáze. Pro plnou HA distribuovanou storage by byl potřeba přechod z LXC na KVM.