Kube-API-Zugriff
Dieser Dienst befindet sich derzeit im Early Access. Kontaktieren Sie uns, um Zugang zu beantragen.
Bei Xelon haben Sie vollen Zugriff auf die Kube API über die Admin Kube-Config, die Sie im HQ herunterladen können. Navigieren Sie zum Dashboard Ihres Clusters und klicken Sie auf "Download Config" im Segment "Kubernetes Configuration".
Kubectl
Kubectl ist das bekannteste Tool für den Zugriff auf die Kubernetes-API und ermöglicht die Erstellung und Manipulation von Kubernetes-Ressourcen.
Installation
Gerne verweisen wir auf die offizielle Dokumentation, die je nach Betriebssystem variiert. Nachfolgend finden Sie die direkten Links für die Installation auf den gängigsten Betriebssystemen:
Um zu überprüfen, ob das Tool korrekt installiert ist, können Sie ein Terminal öffnen und den folgenden Befehl ausführen, um die Version auszulesen:
kubectl version
Die Ausgabe dieses Befehls sollte wie folgt aussehen - mit dem Unterschied, dass Sie wahrscheinlich eine neuere Version haben und möglicherweise noch nicht auf ein Kubernetes-Cluster zugreifen können (Server-Version), aber wenn die Client-Version angezeigt wird, ist kubectl installiert.
Client Version: v1.30.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.30.3
Als Faustregel gilt, dass Kubectl nicht mehr als +/- eine Minor-Version von der Serverversion abweichen sollte.
Konfiguration
Das Konfigurieren des kubectl binaries ist einfach, das Werkzeug muss wissen, welche Verbindungsdatei es nutzen soll. Hierzu gibt es drei Methoden, die nachfolgend erläutert sind. Die erste Methode wird generell empfohlen, wer jedoch oft mit verschiedenen Kubernetes Clustern arbeitet, bevorzugt höchstwahrscheinlich Methode 2 oder 3 in Kombination mit Option 1.
Methode 1 - Standardpfad:
Standardmässig wird die Verbindungsdatei ("config") im Ordner ".kube" verwendet, der sich im Benutzerordner befindet (~/.kube/config). Wenn Sie Ihre kubeconfig in dieses Verzeichnis (mit dem korrekten Namen) verschieben, wird diese standardmässig verwendet.
kubectl get nodes
Methode 2 - Argument:
Bei der Ausführung des Befehls kubectl kann als Argument eine kubeconfig-Datei angegeben werden. Dieses Argument muss dann bei jedem kubectl-Befehl übergeben werden.
kubectl --kubeconfig=./Downloads/kubeconfig get nodes
Methode 3 - Umgebungsvariable:
Wenn die Umgebungsvariable "KUBECONFIG" auf einen Pfad gesetzt ist, wird diese kubeconfig-Datei verwendet.
KUBECONFIG=./Downloads/kubeconfig kubectl get nodes
Diese Methode sieht auf den ersten Blick aus wie die zweite Methode (mit Argument), hat aber den Vorteil, dass man mehrere Terminals geöffnet haben kann, in denen man die Umgebungsvariablen auf unterschiedliche Kubeconfig-Dateien setzt und dann für beide Terminals die gleichen Befehle verwenden kann.
Stage-Umgebung (Terminal 1):
export KUBECONFIG=./.kube/config-stage
kubectl get nodes
Produktive Umgebung (Terminal 2)
export KUBECONFIG=./.kube/config-prod
kubectl get nodes
Talos-API-Zugriff
Bei uns haben Sie auch vollen Zugriff auf die Kubernetes-Nodes über die Talos-Config. Dabei handelt es sich um eine Verbindungsdatei ähnlich der Kube-Config. Mit diesem Tool können Sie jedoch das Betriebssystem der Kubernetes-Nodes selbst ändern. Navigieren Sie zum Dashboard Ihres Clusters und klicken Sie auf "Download Config", im Segment "Cluster info".
Dieser Zugriff wird in den meisten Fällen nicht benötigt, kann aber für eine erweiterte Kontrolle verwendet werden.
Talosctl
Das talosctl ist stark vom kubectl inspiriert, verwendet ähnliche Prinzipien und ist wie das kubectl "nur" ein Werkzeug, um auf die Talos API zuzugreifen. Die Talos API hat jedoch eine etwas andere Architektur als die Kube API. Die Kube API läuft auf allen Controlplane-Knoten, aber nicht auf den Worker-Knoten. Die Talos API hingegen läuft auf allen Nodes. Der Ansatz, den Talos Linux verwendet, ist die Steuerung des gesamten Betriebssystem über die API.
Installation
Siderolabs (Hersteller von Talos Linux) bietet Talosctl als Binary an, das automatisch mit den Talos Linux Binaries veröffentlicht wird. Die Binaries können auf der Github Releases Page unter "Assets" gefunden werden. Besuchen Sie dazu die folgende URL und passen Sie die Versionsnummer an Ihre Talos-Version an.
https://github.com/siderolabs/talos/releases/tag/v1.7.5
In den Assets gibt es verschiedene Variationen des talosctl-Binaries. Hier finden Sie die entsprechende Variation für Ihr Betriebssystem, von dem aus Sie talosctl ausführen möchten: "talosctl-<Betriebssystem>-<CPU-Architektur>".
Die folgenden Schritte sind betriebssystemspezifisch, aber in der Regel gleich.
1. Verschieben Sie die Binärdatei in einen Ordner, der von Ihrer Umgebung als Applikationsordner verwendet wird.
Linux/MacOS: Unter POSIX-Betriebssystemen kann der Pfad über die Systemvariable $PATH ermittelt werden.
In den meisten Fällen enthält diese Variable einen Pfad, der wie folgt aussieht:
/home/<username>/.local/bin
Dieser Pfad ist optimal für Binärdateien, die nur für den aktuellen Benutzer ausführbar sind. Wenn der Benutzer existiert, können Sie Ihre Binärdateien hier ablegen.
Windows: Unter Windows finden Sie diese Variabel in den Einstellungen. Klicken Sie dazu auf "Einstellungen" ->"System" -> "Info" -> "Erweiterte Systemeinstellungen" -> "Erweitert" -> "Umgebungsvariabeln..."
In diesem Menü können Sie der Variablen "Path" einen weiteren Pfad hinzufügen:
Wir empfehlen, hier den Ordner "%USERPROFILE%\AppData\Local\bin" anzulegen, in dem Sie dann Ihre Binaries ablegen können.
2. Falls erforderlich, die Rechte zum Ausführen der Binärdatei hinterlegen.
3. Überprüfen Sie Ihre vorherigen Schritte, indem Sie den folgenden Befehl ausführen:
talosctl version
Wenn Sie eine Client-Version sehen, ist die Binärversion für Sie nun korrekt verfügbar.
Beispiel Ausgabe:
Client:
Tag: v1.7.2
SHA: f876025b
Built:
Go version: go1.22.3
OS/Arch: linux/amd64
Server:
nodes are not set for the command: please use `--nodes` flag or configuration file to set the nodes to run the command against
Usage:
talosctl version [flags]
Flags:
--client Print client version only
-h, --help help for version
-i, --insecure use Talos maintenance mode API
--short Print the short version
Global Flags:
--cluster string Cluster to connect to if a proxy endpoint is used.
--context string Context to be used in command
-e, --endpoints strings override default endpoints in Talos configuration
-n, --nodes strings target the specified nodes
--talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order.
Konfiguration
Die Konfiguration von talosctl ist fast identisch mit der von kubectl. Es stehen wieder alle drei Methoden zur Verfügung, es ändert sich nur, dass nicht mehr kubeconfig sondern talosconfig verwendet wird.
Der Standardpfad der Talosconfig ist ebenfalls im Benutzerordner, aber nicht im Ordner ".kube", sondern im Ordner ".talos": (~/.talos/config). Wenn die Talosconfig dorthin verschoben wird, kann der Befehl talosctl ausgeführt werden.
talosctl dashboard -n 100.110.255.11
Das Subkommando-Dashboard gibt einen Überblick über den aktuellen Node, der mit "-n <ip>" angegeben wird. Die IPs der einzelnen Knoten können mit dem Befehl kubectl ausgelesen werden:
kubectl get nodes -o wide
Beispiel Ausgabe:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
customer-cp-1-1 Ready control-plane 6d19h v1.30.3 100.110.255.11 <none> Talos (v1.7.5) 6.6.33-talos containerd://1.7.18
customer-w-1-1 Ready <none> 5d22h v1.30.3 100.110.255.21 <none> Talos (v1.7.5) 6.6.33-talos containerd://1.7.18
customer-w-1-2 Ready <none> 5d22h v1.30.3 100.110.255.22 <none> Talos (v1.7.5) 6.6.33-talos containerd://1.7.18
customer-w-1-3 Ready <none> 5d22h v1.30.3 100.110.255.23 <none> Talos (v1.7.5) 6.6.33-talos containerd://1.7.18
In der Spalte "INTERNAL-IP" wird die IP-Adresse angezeigt.
Methode 2 - Argument:
Bei talosctl kann die Konfigurationsdatei auch mit einem Argument angegeben werden, in diesem Fall ist das Argument "--talosconfig".
talosctl --talosconfig=./Downloads/talosconfig dashboard -n 100.110.255.11
Methode 3 - Umgebungsvariable:
Wenn die Umgebungsvariable "TALOSCONFIG" auf einen Pfad gesetzt ist, wird diese Verbindungsdatei verwendet.
TALOSCONFIG=./Downloads/talosconfig talosctl dashboard -n 100.110.255.11