Zum Hauptinhalt springen

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:

BefehlZweck
kubectl config get-contextsListet Cluster-Name, Benutzer und Namespaces auf
kubectl cluster-infoZeigt die Adressen von Control Plane und Cluster-Diensten
kubectl versionZeigt die Version von Client und Server
kubectl get nodesListet alle Nodes des Clusters auf
kubectl helpZeigt 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
Hinweis

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.

Verwandte Themen