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