kubectl-Befehle
kubectl ist der offizielle Kubernetes-Client und das zentrale Werkzeug für die Arbeit mit Ihrem Cluster. Diese Seite fasst die gebräuchlichsten Befehle zusammen.
Verbindung und Kontext
Nach dem Herunterladen der Konfigurationsdatei verweisen Sie mit --kubeconfig auf deren Ablageort:
kubectl --kubeconfig=/<pfad-zum-verzeichnis>/<cluster-name>-kubeconfig.yaml get nodes
Damit der Pfad nicht bei jedem Aufruf angegeben werden muss, setzen Sie die Umgebungsvariable KUBECONFIG:
export KUBECONFIG=/<pfad-zum-verzeichnis>/<cluster-name>-kubeconfig.yaml
Verbindung prüfen
Die folgenden Befehle bestätigen, dass die Verbindung zum Cluster funktioniert:
| Befehl | Zweck |
|---|---|
kubectl config get-contexts | Listet Cluster-Name, Benutzer und Namespaces auf |
kubectl cluster-info | Zeigt die Adressen von Control Plane und Cluster-Diensten |
kubectl version | Zeigt die Version von Client und Server |
kubectl get nodes | Listet alle Nodes des Clusters auf |
kubectl help | Zeigt die verfügbaren Befehle an |
Ressourcen anzeigen
# Nodes mit zusätzlichen Details
kubectl get nodes -o wide
# Pods im aktuellen Namespace
kubectl get pods
# Pods über alle Namespaces hinweg
kubectl get pods --all-namespaces
# Fortlaufende Aktualisierung der Anzeige
kubectl get pods --watch
# Deployments, Services und Ingresses
kubectl get deployments
kubectl get services
kubectl get ingress
# Alle gängigen Ressourcen eines Namespace
kubectl get all -n <namespace>
Details und Fehlersuche
# Ausführliche Informationen inklusive Events
kubectl describe pod <pod-name>
kubectl describe node <node-name>
# Logs eines Pods
kubectl logs <pod-name>
# Logs fortlaufend mitlesen
kubectl logs -f <pod-name>
# Logs eines bestimmten Containers in einem Pod
kubectl logs <pod-name> -c <container-name>
# Logs der vorherigen, abgestürzten Instanz
kubectl logs <pod-name> --previous
# Events des Clusters nach Zeit sortiert
kubectl get events --sort-by=.metadata.creationTimestamp
In einen Container wechseln
kubectl exec -it <pod-name> -- /bin/sh
Port lokal weiterleiten
kubectl port-forward <pod-name> 8080:80
kubectl port-forward service/<service-name> 8080:80
Workloads verwalten
# Manifest anwenden
kubectl apply -f manifest.yaml
# Alle Manifeste eines Verzeichnisses anwenden
kubectl apply -f ./manifeste/
# Ressource löschen
kubectl delete -f manifest.yaml
kubectl delete pod <pod-name>
# Deployment skalieren
kubectl scale deployment <deployment-name> --replicas=3
# Neustart eines Deployments erzwingen
kubectl rollout restart deployment <deployment-name>
# Status eines Rollouts verfolgen
kubectl rollout status deployment <deployment-name>
# Rollout zurücknehmen
kubectl rollout undo deployment <deployment-name>
Auslastung
kubectl top nodes
kubectl top pods --all-namespaces
kubectl top pods --all-namespaces --sort-by=cpu
Namespaces
# Namespaces auflisten
kubectl get namespaces
# Namespace anlegen
kubectl create namespace <namespace>
# Standard-Namespace für den aktuellen Kontext setzen
kubectl config set-context --current --namespace=<namespace>
Nodes für Wartung vorbereiten
# Keine neuen Pods mehr auf dem Node platzieren
kubectl cordon <node-name>
# Vorhandene Pods verlagern
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
# Node wieder für Pods freigeben
kubectl uncordon <node-name>
Storage
kubectl get pvc
kubectl get pv
kubectl get storageclass
kubectl get storageclass listet die verfügbaren Storage-Klassen für Persistent Volumes (CSI/PVC). Siehe Storage Features.
Versionskompatibilität
kubectl unterstützt jeweils eine Minor-Version Abweichung nach oben und unten zur Cluster-Version. Bei einem Cluster mit Version 1.33 sind demnach die kubectl-Versionen 1.32 bis 1.34 geeignet.
Die Versionen von Client und Server vergleichen Sie mit:
kubectl version
Weiterführende Quellen
Die vollständige Referenz finden Sie in der offiziellen kubectl-Dokumentation.