In diesem Artikel zeige ich dir drei Möglichkeiten wie du dich mit deinem Cluster verbinden kannst – Kubectl Lens und Kubenav.
Während der K3s-Installation wird eine kubeconfig-Datei in ‚/etc/rancher/k3s/k3s.yaml‘ geschrieben. Du benötigst diese Datei, um dich mit einem Kubernetes-Client zu verbinden. Deine kubeconfig sieht in etwa so aus:
apiVersion v1
clusters
cluster
certificate-authority-data LS0...
server https //127.0.0.16443
name default
contexts
context
cluster default
user default
name default
current-context default
kind Config
preferences
users
name default
user
client-certificate-data LS...
client-key-data LS...
Wenn du dich von einem anderen Rechner aus verbinden willst, musst du den Server-Endpunkt anpassen und einen Hostnamen/eine IP-Adresse angeben, unter dem der Cluster erreichbar ist. Wenn auf dem Clusterknoten eine Firewall aktiv ist, musst du eventuell zuerst den Port 6443/tcp öffnen (siehe hier).
Kubectl
Der gängigste Weg, sich mit dem Kubernetes-Cluster zu verbinden, ist der Befehl ‚kubectl‘. Der Befehl wird bei der Installation von K3s automatisch auf dem Clusterknoten installiert.
Um dich mit dem Cluster zu verbinden, musst du kubectl mitteilen, wo die kubeconfig zu finden ist. Dies kannst du tun, indem du entweder die kubeconfig Datei als Option angibst, eine Umgebungsvariable setzt oder sie nach ‚~/.kube/config‚ kopierst – was immer dir besser passt:
# Angabe der kubeconfig Datei als Option,
kubectl --kubeconfig=/etc/rancher/k3s/k3s.yaml get nodes
# <output>
# eine Umgebungsvariable setzen oder
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
kubectl get nodes
# <output>
# Kubeconfig nach '~/.kube/config' kopieren
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
kubectl get nodes
# <output>
Wenn die Verbindung klappt kannst du die folgenden beiden Befehle ausprobieren.
> kubectl get nodes
NAME STATUS ROLES AGE VERSION
vmxx28193.bydddddserver.net Ready control-plane,master 255d v1.20.0+k3s2
> kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system local-path-provisioner-58fb86bdfd-r5zcp 1/1 läuft 0 2m10s
kube-system metrics-server-6d684c7b5-2g7wq 1/1 Läuft 0 2m10s
kube-system helm-install-traefik-zv6bp 0/1 Beendet 0 2m9s
kube-system svclb-traefik-98bgg 2/2 Läuft 0 107s
kube-system coredns-6c6bb68b64-hr2dv 1/1 Läuft 0 2m10s
kube-system traefik-7b8b884c8-qqhgf 1/1 Läuft 0 107s
Der erste Befehl zeigt dir die Nodes, die Teil deines Clusters sind, während der zweite Befehl die deployten Pods anzeigt. Für weitere Befehle empfehle ich dir einen Blick auf den kubectl Cheet Sheet zu werfen.
Lens Kubernetes IDE
Wenn du eine grafische Oberfläche zur Verwaltung deines Clusters bevorzugst, solltest du dir unbedingt Lens anschauen. Es erleichtert dir die Verwaltung deiner Workloads, ConfigMaps, Secrets, Services, Ingresses und gibt dir einen besseren Überblick über den Cluster. Das Beste daran ist, dass es komplett kostenlos und Open Source ist.
„Lens provides the full situational awareness for everything that runs in Kubernetes. It’s lowering the barrier of entry for people just getting started and radically improving productivity for people with more experience.“
https://github.com/lensapp/lens/
Lens ist für Windows, Linux und MacOS verfügbar und kann von https://github.com/lensapp/lens/ heruntergeladen werden.
Um einen eigenen Cluster hinzuzufügen, navigierst du einfach zu File / Add Cluster und hinterlegst deine Kubeconfig.


Kubenav
Kubenav ist ebenfalls ein grafisches Kubernetes-Tool. Das Beste an Kubenav ist, dass es für mobile Android- und iOS-Geräte verfügbar ist, sodass du deinen Kubernetes-Cluster auch von unterwegs) verwalten kannst. Kubenav ist ebenfalls Open Source und im iOS App Store und Play Store erhältlich. Du kannst auch die Desktop-Version aus dem Github Repository herunterladen.
Nach der Installation navigiere zu ‚Cluster‘ und drücke das Pluszeichen, um einen Cluster hinzuzufügen. Scrolle nach unten zu ‚Import Kubeconfig‘, füge den Inhalt in das Textfeld ein und drücke auf ‚Hinzufügen‘.

Hinweis: Der Kubernetes API Port (TCP/6443) muss für dein Handy verfügbar sein. Wenn du diesen Port nicht für das Internet öffnen willst, kannst du dich über VPN mit dem Cluster verbinden. Siehe meine Anleitung zur Einrichtung von Wireguard unter Ubuntu.