user@homelab:~/docs$ cat remote-access.md
Vzdálený přístup (Tailscale, k9s)
SSH na server odkudkoli bez otevřených portů a přehled clusteru v k9s
# obsah
Princip
Tailscale vytvoří soukromou síť (tailnet) jen mezi vlastními zařízeními: server, Mac a iPad. Každé zařízení dostane adresu 100.x.y.z a jméno v doméně <tailnet>.ts.net. Spojení jsou šifrovaná (WireGuard) a navazují se odchozí cestou, takže se na routeru nic neotevírá.
Mac / iPad (kdekoli) ──WireGuard──▶ homelab.<tailnet>.ts.net
(bez otevřených portů, přímé spojení i přes NAT)| Tailscale | Cloudflare Access / WARP | |
|---|---|---|
| SSH z Macu a z Termia na iPadu | ✅ beze změn | ⚠️ ProxyCommand nebo WARP |
| libovolný port (SSH, později Grafana) | ✅ | ⚠️ složitější |
| server viditelný z internetu | ❌ vůbec | přihlašovací stránka |
| závislost | nezávislé na Cloudflare | stejný dodavatel jako web |
Proto: veřejný web přes Cloudflare, správa přes Tailscale.
Server
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale uptailscale up vypíše přihlašovací odkaz. Otevře se v prohlížeči a server se přidá do tailnetu. Instalační skript přidá oficiální apt repozitář, takže se Tailscale aktualizuje se systémem.
tailscale ip -4
tailscale status- SSH zůstává OpenSSH s klíči a zakázanými hesly. Funkci
tailscale up --ssh(vlastní přihlašování Tailscale) nepoužíváme. Tailscale slouží jen jako šifrovaná cesta. - Expirace klíče: v admin konzoli (Machines → homelab → Disable key expiry) je u serveru vypnutá. Jinak by se po 180 dnech odpojil. U klientů zůstává zapnutá.
Mac a iPad
- Aplikace Tailscale (Mac App Store / App Store), přihlášení stejným účtem.
- macOS se zeptá na přidání VPN konfigurace a síťového rozšíření. Obojí je potřeba povolit. Přes Tailscale jde jen provoz do tailnetu, ostatní provoz beze změny (žádný exit node).
- MagicDNS dává zařízením jména, server je
homelab.<tailnet>.ts.net.
SSH config na Macu:
Host homelab
HostName homelab.<tailnet>.ts.net
User <uživatel>
IdentityFile ~/.ssh/id_ed25519
AddKeysToAgent yes
UseKeychain yesJedna konfigurace funguje doma i venku. Doma Tailscale pozná společnou síť a spojí se přímo po Wi-Fi.
Termius na iPadu: host s hostname homelab.<tailnet>.ts.net, stejný uživatel a klíč. Volitelně druhý host s domácí IP adresou pro případ, kdy Tailscale na iPadu neběží.
Ověření
tailscale ping homelab
ssh homelabVýstup tailscale ping | Význam |
|---|---|
via <lan-ip>:41641 | doma, přímo po Wi-Fi |
via <veřejná-ip>:<port> | venku, přímé spojení přes NAT |
via DERP(<region>) | přes přenosový server Tailscale, funguje, jen pomaleji |
Test zvenku: Mac na hotspotu z mobilu, iPad na mobilních datech.
kubectl jen na serveru
Cluster se ovládá na serveru přes SSH (ssh homelab → k …). kubectl na Macu záměrně není nastavený:
- administrátorský certifikát clusteru zůstává jen na serveru,
- nehrozí záměna s jinými clustery v kubeconfigu na Macu,
- na CKAD se stejně pracuje v terminálu na vzdáleném stroji.
k9s
k9s je terminálové „GUI“ pro Kubernetes: přehled podů, logů, událostí a zdrojů. Funguje přes SSH z Macu i z iPadu.
Instalace z oficiálního vydání s ověřením kontrolního součtu:
K9S_VER=$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/derailed/k9s/releases/latest | sed 's#.*/tag/##')
cd /tmp
curl -fsSLO "https://github.com/derailed/k9s/releases/download/${K9S_VER}/k9s_linux_amd64.deb"
curl -fsSLO "https://github.com/derailed/k9s/releases/download/${K9S_VER}/checksums.sha256"
grep ' k9s_linux_amd64.deb$' checksums.sha256 | sha256sum -c -
sudo apt install -y ./k9s_linux_amd64.deb
rm -f k9s_linux_amd64.deb checksums.sha256sha256sum -cmusí vypsatOK, jinak se balíček neinstaluje,- k9s používá stejný kubeconfig jako
kubectl(~/.kube/config), .debz GitHubu se neaktualizuje přesapt upgrade. Nová verze = zopakovat postup.
Užitečné příkazy v k9s: :pods, :deploy, :events, :kustomizations (Flux), l logy, d describe, 0 všechny namespaces.