Ich habe 3 Knoten, auf denen alle Arten von Pods ausgeführt werden. Ich möchte eine Liste von Knoten und Pods erstellen, zum Beispiel:
NODE1 POD1
NODE1 POD2
NODE2 POD3
NODE3 POD4
Wie kann dies bitte erreicht werden?
Vielen Dank.
Ich habe 3 Knoten, auf denen alle Arten von Pods ausgeführt werden. Ich möchte eine Liste von Knoten und Pods erstellen, zum Beispiel:
NODE1 POD1
NODE1 POD2
NODE2 POD3
NODE3 POD4
Wie kann dies bitte erreicht werden?
Vielen Dank.
Antworten:
Sie können dies mit benutzerdefinierten Spalten tun :
kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces
oder nur:
kubectl get pod -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name --all-namespaces
kubectl get pod --all-namespaces -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName
| sort
am Ende des zweiten Befehls hinzuzufügen , damit die Ergebnisse nach Knoten gruppiert werden.
kubectl get pods -o=wide
kubectl
hat ein einfaches, aber nützliches erweitertes Ausgabeformat, das Sie gerne verwenden können
kubectl get pod -o wide
Während benutzerdefinierte Formate in anderen Antworten gut sind, kann dies eine praktische Verknüpfung sein.
kubectl get pod --all-namespaces -o wide
, dies würde alle Details einschließlich der Knoteninformationen geben. Auflisten von Pods für einen bestimmten Namespace kubectl get pod -n YOUR_NAMESPACE -o wide
. Hoffe das hilft.
Sie können verwenden, kubectl get pods --all-namespaces
um alle Pods aus allen Namespaces kubectl get nodes
aufzulisten und um alle Knoten aufzulisten.
Der folgende Befehl macht mehr oder weniger das, was Sie wollten. Es ist jedoch eher ein jq
Trick als ein kubectl
Trick:
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .status.podIP'
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .metadata.name'
Nicht genau so, wie Sie es wollten, weil es viel mehr beschreibt, aber Sie können es verwenden
kubectl describe nodes
Jeder Pod pro Knoten im Cluster wird mit den folgenden Informationen angezeigt
Namespace | Name | CPU-Anfragen | CPU-Limits | Speicheranforderungen | Speichergrenzen
Dadurch erhalten Sie: "nodeName Namespace Pod" im gesamten Cluster:
kubectl get pods --all-namespaces --output 'jsonpath={range .items[*]}{.spec.nodeName}{" "}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}'
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .metadata.name'