我有3个节点,可以运行各种Pod。我想举一个节点和吊舱的列表,例如:
NODE1 POD1
NODE1 POD2
NODE2 POD3
NODE3 POD4
请问如何实现?
谢谢。
Answers:
您可以使用自定义列来做到这一点:
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
kubectl get pod --all-namespaces -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName
| sort
在第二个命令的末尾添加有助于将结果按节点分组。
kubectl get pods -o=wide
kubectl
具有简单但有用的扩展输出格式,您可以像
kubectl get pod -o wide
因此,尽管其他答案中提供的自定义格式很好,但这可能是一个方便的快捷方式。
kubectl get pod --all-namespaces -o wide
,这将提供所有详细信息,包括节点信息。列出特定名称空间的Pod kubectl get pod -n YOUR_NAMESPACE -o wide
。希望这可以帮助。
您可以kubectl get pods --all-namespaces
用来列出所有名称空间中的所有Pod以及kubectl get nodes
列出所有节点。
以下命令或多或少地执行了您想要的操作。但是,这jq
绝不是kubectl
技巧:
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'
并非完全如您所愿,因为它描述的更多,但是您可以使用
kubectl describe nodes
它将使用以下信息公开集群中每个节点的每个Pod
命名空间| 姓名| CPU请求| CPU限制| 内存请求| 内存限制
kubectl get pod --all-namespaces -o json | jq '.items[] | .spec.nodeName + " " + .metadata.name'