Motivation: Die Management-IP-Adresse des Kubernetes Cluster ist von meinem Netz nicht direkt erreichbar. Es gibt aber einen Jump-Host, den man per SSH erreichen kann.
Einfache Lösung: SSH-Tunnel
Name des Jump Hosts: jumphost.example.com
Management IP des Kubernetes Clusters: 203.0.113.31
Öffne den SSH-Tunnel:
$ ssh jumphost.example.com -L 9443:203.0.113.31:443
Ändere Deine Kubernetes Config-Datei, dass sie bei "server:" die lokale Adresse des SSH-Tunnels verwendet (localhost=127.0.0.1
, lokaler Port: 9443
):
$ cat ~.kube/config apiVersion: v1 clusters: - cluster: certificate-authority-data: xxxVERYxxxLONGxxxZERTICATExxxSTUFFxx= server: https://127.0.0.1:9443 # more yaml stuff, shortened
Wenn man wegen "Zertifikate passen nicht zur IP-Adresse" die kubernetes-Befehle nicht absetzen kann, nimmt man die Option "--insecure-skip-tls-verify
".
$ kubectl --insecure-skip-tls-verify cluster-info Kubernetes master is running at https://127.0.0.1:9443 GLBCDefaultBackend is running at https://127.0.0.1:9443/api/v1/namespaces/kube-system/services/default-http-backend:http/proxy Heapster is running at https://127.0.0.1:9443/api/v1/namespaces/kube-system/services/heapster/proxy KubeDNS is running at https://127.0.0.1:9443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy Metrics-server is running at https://127.0.0.1:9443/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy
Einen Nachteil gibt es leider schon: Die meisten Plugins, die ich getestet habe, funktionieren leider nicht mit "--insecure-skip-tls-verify
".
Alle Seiten zu Kubernetes und SSH-Tunneln:
gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch,
die hier eher zufällig auch öffentlich lesbar sind
(vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr
Fehler-Hinweise, Dankesschreiben , etc. bitte an: web.21@unixwitch.de
weitere Tools / Spickzettel