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.1:6443 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.