Das Kubernetes-Befehlszeilentool kubectl wird verwendet, um Befehle für Kubernetes-Cluster auszuführen. Sie verwenden kubectl, um die Cluster-Ressourcen Ihres Dienstes zu untersuchen und zu verwalten und Protokolle anzuzeigen. Einige häufig verwendete Befehle zum Abrufen von Informationen über einen Kubernetes-Cluster lauten wie folgt:
- kubectl get zeigt Informationen über das angegebene API-Objekt an.
- kubectl-Beschreibung gibt mehr Details über das angegebene API-Objekt.
- kubectl-Protokolle Protokollausgabe von Containern anzeigen.
Wenn Sie Zweifel an der Verwendung des kubectl-Tools haben, sind die Befehle kubectl help und kubectl
Wenn beim Ausführen des kubectl-Befehls der folgende Fehler auftritt:
kubectl: command not found
Sie können versuchen, das folgende Paket gemäß Ihrer Distributionswahl zu installieren.
Verteilung | Befehl |
---|---|
OS X | brew install kubernetes-cli |
Debian | apt-get install kubernetes-client |
CentOS | yum installiere den Kubernetes-Client |
Fedora | dnf install kubernetes-client |
kubectl-Befehlsbeispiele
1. Informationen zu einer Ressource mit weiteren Details auflisten:
$ kubectl get pod|service|deployment|ingress|... -o wide
2. Angegebenen Pod mit dem Label „ungesund“ und dem Wert „true“ aktualisieren:
$ kubectl label pods name unhealthy=true
3. Listen Sie alle Ressourcen mit unterschiedlichen Typen auf:
$ kubectl get all
4. Anzeigen der Ressourcennutzung (CPU/Speicher/Speicher) von Knoten oder Pods:
$ kubectl top pod|node
5. Geben Sie die Adresse der Master- und Cluster-Dienste aus:
$ kubectl cluster-info
6. Zeigen Sie eine Erklärung zu einem bestimmten Feld an:
$ kubectl explain pods.spec.containers
7. Drucken Sie die Protokolle für einen Container in einem Pod oder einer angegebenen Ressource:
$ kubectl logs pod_name
8. Führen Sie den Befehl in einem vorhandenen Pod aus:
$ kubectl exec pod_name -- ls /
9. Sie können auch den Befehl exec verwenden, um einen Befehl in einem laufenden Container auszuführen:
$ kubectl exec -it pod_name -- bash
10. Wenn Sie in Ihrem Container keine Bash oder ein anderes Terminal zur Verfügung haben, können Sie jederzeit an den laufenden Prozess anhängen:
$ kubectl attach -it pod_name
11. Sie können Dateien auch mit dem cp-Befehl in einen und aus einem Container kopieren:
$ kubectl cp [pod-name]:[/path/to/remote/file] [/path/to/local/file]
12. Wenn Sie über das Netzwerk auf Ihren Pod zugreifen möchten, können Sie den Port-Forward-Befehl verwenden, um den Netzwerkverkehr von der lokalen Maschine an den Pod weiterzuleiten.
$ kubectl port-forward [pod-name] 8080:80
13. Wenn Sie Kubernetes-Ereignisse anzeigen möchten, können Sie den Befehl kubectl get events verwenden, um eine Liste der letzten 10 Ereignisse für alle Objekte in einem bestimmten Namespace anzuzeigen:
$ kubectl get events
14. Wenn Sie daran interessiert sind, wie Ihr Cluster Ressourcen verwendet, können Sie den top-Befehl verwenden, um die Liste der Ressourcen anzuzeigen, die entweder von Knoten oder Pods verwendet werden. Dieser Befehl:
$ kubectl top nodes
15. Nehmen wir an, Sie haben ein einfaches Objekt in obj.yaml gespeichert. Sie können kubectl verwenden, um dieses Objekt in Kubernetes zu erstellen, indem Sie Folgendes ausführen:
$ kubectl apply -f obj.yaml
16. Nachdem Sie Änderungen am Objekt vorgenommen haben, können Sie den Befehl apply erneut verwenden, um das Objekt zu aktualisieren:
$ kubectl apply -f obj.yaml
17. Wenn Sie ein Objekt löschen möchten, können Sie einfach Folgendes ausführen:
$ kubectl delete -f obj.yaml
18. Labels und Anmerkungen sind Tags für Ihre Objekte. Um beispielsweise das Label color=red zu einem Pod mit dem Namen bar hinzuzufügen, können Sie Folgendes ausführen:
$ kubectl label pods bar color=red
19. Wenn Sie eine Liste der unterstützten Felder für jeden unterstützten Typ von Kubernetes-Objekt sehen möchten, können Sie den EXPLAIN-Befehl verwenden:
$ kubectl explain pods
20. Wenn Sie an detaillierteren Informationen zu einem bestimmten Objekt interessiert sind, verwenden Sie den Befehl "describe":
$ kubectl describe [resource-name] [obj-name]