Definition „Kubernetes CLI“ Was ist kubectl?

Autor / Redakteur: zeroshope / Stephan Augsten

Unter kubectl ist die Kommandozeile zu verstehen, mit der sich Kubernetes-Clustern bestimmte Anweisungen geben lassen. In der Hauptsache geht es dabei um die Zuteilung von Ressourcen. Die korrekte Konfiguration ist nicht ganz einfach.

Anbieter zum Thema

Mit kubectl ist es möglich, Befehle per Kommandozeile gegenüber Kubernetes-Clustern abzusetzen.
Mit kubectl ist es möglich, Befehle per Kommandozeile gegenüber Kubernetes-Clustern abzusetzen.
(© AliFuat - stock.adobe.com)

Offiziell ist kubectl ein Interface für die Eingabe von Befehlszeilen für die Steuerung von Kubernetes-Clustern. Oft wird jedoch von kubectl selbst als einem Befehl gesprochen, da dieser Ausdruck in Terminal direkt eingegeben werden muss, um das entsprechende Interface aufzurufen.

Grundsätzlich sucht kubectl nach einer Datei mit der Bezeichnung „config“ im $HOME/.kube Verzeichnis, um seine Konfiguration auszulesen. Es ist allerdings möglich, andere Dateien hierfür zuzuweisen. Hierfür muss entweder die KUBECONFIG Variable oder die -kubeconfig Kennzeichnung (flag) gesetzt werden.

Die Syntax von kubectl

Die Syntax von kubectl besteht aus den folgenden Begriffen:

  • [TYPE] – Dieser Begriff beschreibt den Resourcen-Typ, mit dem gearbeitet werden soll. Dabei kann zwischen Singular und Plural unterschieden werden. Auch Abkürzungen dürfen verwendet werden. Beispielsweise folgende Befehlszeile wäre denkbar: kubetcl delete pods pod 2 – in der Folge wird Pod 2 gelöscht.
  • [NAME] – Eine spezifische Ressource wird über ihren Namen herangezogen. Bleibt die exakte Namensbezeichnung aus, verfährt das Programm mit allen Ressourcen des Typs wie befohlen. Beispielsweise im obigen Beispiel wäre pod 2 der Name. Bliebe er weg, (kubectl delete pods) so würde das Programm einfach nur alle Pods löschen.
  • [command] – Hiermit werden alle Operationen angewiesen, die mit Ressourcen durchgefühlt werden sollen. Typische Befehle sind get, describe, delete, ignore sowie create.
  • [flags] –Die Auszeichnungen dienen dazu, um Spezifikationen zu vermerken. Beispielsweise können die Adresse sowie der Port des API Servers auf diese Weise ausgezeichnet werden. Die zugehörigen flags werden mit -s oder --server eingegeben.

Häufige Befehle in kubectl in alphabetischer Ordnung

  • Annotate: Bemerkungen zu Ressourcen hinzufügen oder diese ändern.
  • Apply: Eine Konfiguration anwenden.
  • Cluster-Info: Ausgabe von Informationen über die Master-Nodes und die laufenden Dienste.
  • Create: Ressourcen erschaffen/ hinzufügen.
  • Edit: Die Definitionen von Ressourcen ändern.
  • Proxy: Einen Proxy zum Kubernetes API Server laufen lassen.
  • Replace: Eine Ressource ersetzen.
  • Run: Ein spezielles Laufwerk im Cluster starten.
  • Version: Anzeige der laufenden Version von Kubernetes auf dem Server und dem Klienten.

Die gängigen Ressourcen-Typen

  • cs: Component Status / Komponentenstatus
  • ep: Endpoints / Endpunkt
  • no: Nodes / Knoten
  • sa: Service Accounts / Dienstkonto
  • po: Pods
  • rc: Replication Controller
  • ds: Daemon Sets
  • Roles / Rollen (keine Abkürzung)

Das Ausgabeformat verändern

Gängig gibt kubetcl angeforderte Daten in einem für Menschen lesbaren Text aus. Allerdings kann das Ausgabeformat auch geändert werden. Beispielsweise kann das System angewiesen werden, eine Tabelle auszugeben. Die Befehlszeile für ein verändertes Ausgabeformat lautet:

kubectl [command] [TYPE] [NAME] -o

Als konkretes Beispiel:

Kubectl describe pods pod 1 -o custom-columns=

Jetzt wird eine Tabelle nach den eigenen Vorgaben ausgegeben.

Durch die zahlreichen Möglichkeiten und den oft komplexen Aufbau der Cluster ist die Anpassung von kubectl an die eigenen Bedürfnisse oft schwierig. Da fehlerhafte Eingaben die Funktionsfähigkeit der Cluster massiv beeinträchtigen können, sollte die Kommandozeile nur von geschultem Personal genutzt werden.

(ID:46229494)