Kubernetes:列出所有窗格及其节点

pb3s4cty  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(7)|浏览(211)

我有3个节点,运行各种pod。我想有一个节点和pod的列表,例如:

NODE1 POD1
NODE1 POD2
NODE2 POD3
NODE3 POD4

请问如何才能做到这一点?

  • 谢谢-谢谢
9nvpjoqh

9nvpjoqh1#

您可以使用自定义列来完成此操作:

kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces

或仅:

kubectl get pod -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name --all-namespaces
lx0bsm1f

lx0bsm1f2#

kubectl有一个简单但有用的扩展输出格式,您可以像这样使用

kubectl get pod -o wide

因此,虽然其他答案中提供的自定义格式也很好,但这可能是一个方便的快捷方式。

sczxawaw

sczxawaw3#

您可以使用kubectl get pods --all-namespaces列出所有名称空间中的所有pod,使用kubectl get nodes列出所有节点。

gorkyyrv

gorkyyrv4#

下面的命令或多或少地完成了您想要的任务。但是,它更像是一个jq技巧,而不是kubectl技巧:
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .status.podIP'

3duebb1j

3duebb1j5#

不完全是你想要的,因为它描述了更多,但你可以使用
kubectl describe nodes
它将使用以下信息显示集群中每个节点的每个pod
命名空间|名称名称名称|CPU请求|CPU限制|内存请求|内存限制

jrcvhitl

jrcvhitl6#

这可以让您:跨群集的“nodeName命名空间单元”:

kubectl get pods --all-namespaces --output 'jsonpath={range .items[*]}{.spec.nodeName}{" "}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}'
dw1jzc5e

dw1jzc5e7#

也许答案有点老了,现在你可以简单地启动这个:

kubectl get pods -o wide

相关问题