Einführung
Kubectl ist eine Reihe von Befehlen zur Steuerung von Kubernetes-Clustern. Jeder Kubernetes-Befehl hat einen API-Endpunkt, und der Hauptzweck von kubectl besteht darin, HTTP-Anforderungen an die API auszuführen.
Es ist zwar möglich, selbst HTTP-Anfragen zu stellen (z. B. mit curl), aber kubectl wurde entwickelt, um diesen Prozess bequemer und unkomplizierter zu machen.
Dieses Tutorial behandelt alle gängigen kubectl-Operationen und bietet Beispiele, um sich mit der Syntax vertraut zu machen.

Liste der kubectl-Befehle
Verwenden Sie kubectl
Befehle, die unten als Kurzreferenz für die Arbeit mit Kubernetes aufgeführt sind.
Auflisten von Ressourcen
Um einen oder mehrere Pods, Replikationscontroller, Dienste oder Daemon-Sets aufzulisten, verwenden Sie kubectl get
Befehl.
Generieren Sie eine Klartextliste aller Namespaces:
kubectl get namespaces
Eine Klartextliste aller Pods anzeigen:
kubectl get pods
Generieren Sie eine detaillierte Klartextliste aller Pods, die Informationen wie den Knotennamen enthält:
kubectl get pods -o wide
Zeigen Sie eine Liste aller Pods an, die auf einem bestimmten Knotenserver ausgeführt werden:
kubectl get pods --field-selector=spec.nodeName=[server-name]
Einen bestimmten Replikationscontroller im Klartext auflisten:
kubectl get replicationcontroller [replication-controller-name]
Generieren Sie eine Klartextliste aller Replikationscontroller und -dienste:
kubectl get replicationcontroller,services
Zeigt eine Klartextliste aller Daemon-Sets:
kubectl get daemonset
Eine Ressource erstellen
Erstellen Sie mithilfe von kubectl create
eine Ressource wie einen Dienst, eine Bereitstellung, einen Job oder einen Namespace Befehl.
Um beispielsweise einen neuen Namespace zu erstellen, geben Sie Folgendes ein:
kubectl create namespace [namespace-name]
Erstellen Sie eine Ressource aus einer JSON- oder YAML-Datei:
kubectl create -f [filename]
Anwenden und Aktualisieren einer Ressource
Um eine Ressource anzuwenden oder zu aktualisieren, verwenden Sie kubectl apply
Befehl. Die Quelle in diesem Vorgang kann entweder eine Datei oder die Standardeingabe (stdin ).
Erstellen Sie einen neuen Dienst mit der Definition, die in einer [Dienstname].yaml-Datei enthalten ist:
kubectl apply -f [service-name].yaml
Erstellen Sie einen neuen Replikationscontroller mit der Definition, die in einer [Controller-Name].yaml-Datei enthalten ist:
kubectl apply -f [controller-name].yaml
Erstellen Sie die in einer beliebigen .yaml-, .yml- oder .json-Datei definierten Objekte in einem Verzeichnis:
kubectl apply -f [directory-name]
Sie können eine Ressource aktualisieren, indem Sie sie in einem Texteditor mit kubectl edit
konfigurieren Befehl. Dieser Befehl ist eine Kombination aus kubectl get
und kubectl apply
.
Um beispielsweise einen Dienst zu bearbeiten, geben Sie Folgendes ein:
kubectl edit svc/[service-name]
Dieser Befehl öffnet die Datei in Ihrem Standard-Editor. Um einen anderen Editor zu verwenden, geben Sie ihn vor dem Befehl an:
KUBE_EDITOR=”[editor-name]” kubectl edit svc/[service-name]
Status der Ressourcen anzeigen
Um den Status einer beliebigen Anzahl von Ressourcen im Detail anzuzeigen, verwenden Sie kubectl describe
Befehl. Standardmäßig listet die Ausgabe auch nicht initialisierte Ressourcen auf.
Details zu einem bestimmten Knoten anzeigen:
kubectl describe nodes [node-name]
Details zu einem bestimmten Pod anzeigen:
kubectl describe pods [pod-name]
Details zu einem Pod anzeigen, dessen Name und Typ in pod.json aufgelistet sind :
kubectl describe -f pod.json
Details zu allen Pods anzeigen, die von einem bestimmten Replikationscontroller verwaltet werden:
kubectl describe pods [replication-controller-name]
Details zu allen Pods anzeigen:
kubectl describe pods
Ressourcen löschen
Um Ressourcen aus einer Datei oder stdin zu entfernen, verwenden Sie kubectl delete
Befehl.
Entfernen Sie einen Pod mit dem in pod.yaml aufgelisteten Namen und Typ:
kubectl delete -f pod.yaml
Alle Pods und Dienste mit einem bestimmten Label entfernen:
kubectl delete pods,services -l [label-key]=[label-value]
Alle Pods entfernen (einschließlich nicht initialisierter Pods):
kubectl delete pods --all
Einen Befehl ausführen
Verwenden Sie kubectl exec
Befehle in einem Container auszugeben oder eine Shell in einem Container zu öffnen.
Empfangen Sie die Ausgabe eines Befehls, der auf dem ersten Container in einem Pod ausgeführt wird:
kubectl exec [pod-name] -- [command]
Rufen Sie die Ausgabe eines Befehls ab, der für einen bestimmten Container in einem Pod ausgeführt wird:
kubectl exec [pod-name] -c [container-name] -- [command]
Führen Sie /bin/bash aus aus einem bestimmten Pod. Die empfangene Ausgabe kommt aus dem ersten Container:
kubectl exec -ti [pod-name] -- /bin/bash
Ändern von kubeconfig-Dateien
kubectl config
können Sie kubeconfig-Dateien anzeigen und ändern. Auf diesen Befehl folgt normalerweise ein weiterer Unterbefehl.
Aktuellen Kontext anzeigen:
kubectl config current-context
Legen Sie einen Cluster-Eintrag in kubeconfig fest:
kubectl config set-cluster [cluster-name] --server=[server-name]
Setzen Sie einen Eintrag in kubeconfig zurück:
kubectl config unset [property-name]
Containerprotokolle drucken
Verwenden Sie zum Drucken von Protokollen aus Containern in einem Pod die kubectl logs
Befehl.
Protokolle drucken:
kubectl logs [pod-name]
Um Protokolle von einem Pod zu streamen, verwenden Sie:
kubectl logs -f [pod-name]
Kurznamen für Ressourcentypen
Einige der kubectl
Die oben aufgeführten Befehle können aufgrund ihrer Länge unbequem erscheinen. Aus diesem Grund Namen gängiger kubectl-Ressourcentypen haben auch kürzere Versionen.
Betrachten Sie den oben erwähnten Befehl:
kubectl create namespace [namespace-name]
Sie können diesen Befehl auch ausführen als:
kubectl create ns [namespace-name]
Hier ist die vollständige Liste der kubectl-Kurznamen:
Kurzname | Langname |
---|---|
csr | certificatesigningrequests |
cs | componentstatuses |
cm | configmaps |
ds | daemonsets |
deploy | deployments |
ep | endpoints |
ev | events |
hpa | horizontalpodautoscalers |
ing | ingresses |
limits | limitranges |
ns | namespaces |
no | nodes |
pvc | persistentvolumeclaims |
pv | persistentvolumes |
po | pods |
pdb | poddisruptionbudgets |
psp | podsecuritypolicies |
rs | replicasets |
rc | replicationcontrollers |
quota | resourcequotas |
sa | serviceaccounts |
svc | services |
kubectl-Spickzettel
Alle in diesem Artikel aufgeführten Befehle finden Sie im einseitigen Referenzblatt unten. Laden Sie das kubectl-Befehls-PDF herunter und speichern Sie es zur späteren Verwendung.
Spickzettel HERUNTERLADEN
