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.
kubernetes
testTester
quelle
quelle
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .metadata.name'
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
quelle
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önnenkubectl get pod -o wide
Während benutzerdefinierte Formate in anderen Antworten gut sind, kann dies eine praktische Verknüpfung sein.
quelle
kubectl get pod --all-namespaces -o wide
, dies würde alle Details einschließlich der Knoteninformationen geben. Auflisten von Pods für einen bestimmten Namespacekubectl get pod -n YOUR_NAMESPACE -o wide
. Hoffe das hilft.Sie können verwenden,
kubectl get pods --all-namespaces
um alle Pods aus allen Namespaceskubectl get nodes
aufzulisten und um alle Knoten aufzulisten.quelle
Der folgende Befehl macht mehr oder weniger das, was Sie wollten. Es ist jedoch eher ein
jq
Trick als einkubectl
Trick:kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .status.podIP'
quelle
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
quelle
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}'
quelle