我需要通过从主节点执行命令来获取在工作节点中运行的 pod 列表。如果我进入工作节点并执行,我可以实现kubectl get pods -n ns
。但我需要从主节点执行此操作并在 worker 中获取 pod。
问问题
5311 次
2 回答
5
您可以使用以下命令让 pod 在特定节点上运行:
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node>
这将列出所有命名空间中的所有 pod,但您可以将其缩小到特定命名空间。
于 2020-05-25T12:21:34.417 回答
3
在特定节点中运行kubectl get pods -n ns
不会给出在该节点中运行的 pod,而是会给出命名空间中的所有 pod,ns
而不管它们运行哪些节点。给出部署在特定节点kubectl get pods -n ns -o wide --field-selector spec.nodeName=<nodename>
中的命名空间中的 pod 。ns
可以从任何节点或有权访问集群的系统执行此命令。
kubectl get pods -n kube-system -o wide --field-selector spec.nodeName=kind-control-plane
要从在特定节点中运行的所有命名空间获取 pod,请使用命令
kubectl get pods -A -o wide --field-selector spec.nodeName=<nodename>
您还可以使用kubectl describe nodes nodename
和检查Non-terminated Pods
部分来查看该特定节点中当前正在运行的 pod。
kubectl describe nodes kind-control-plane
PodCIDRs: 10.244.0.0/24
Non-terminated Pods: (9 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
kube-system coredns-6955765f44-ftkv6 100m (5%) 0 (0%) 70Mi (3%) 170Mi (8%) 56m
kube-system coredns-6955765f44-wgkbn 100m (5%) 0 (0%) 70Mi (3%) 170Mi (8%) 56m
kube-system etcd-kind-control-plane 0 (0%) 0 (0%) 0 (0%) 0 (0%) 56m
kube-system kindnet-248xd 100m (5%) 100m (5%) 50Mi (2%) 50Mi (2%) 56m
kube-system kube-apiserver-kind-control-plane 250m (12%) 0 (0%) 0 (0%) 0 (0%) 56m
kube-system kube-controller-manager-kind-control-plane 200m (10%) 0 (0%) 0 (0%) 0 (0%) 56m
kube-system kube-proxy-n4ntb 0 (0%) 0 (0%) 0 (0%) 0 (0%) 56m
kube-system kube-scheduler-kind-control-plane 100m (5%) 0 (0%) 0 (0%) 0 (0%) 56m
local-path-storage local-path-provisioner-7745554f7f-wgnwm 0 (0%) 0 (0%) 0 (0%) 0 (0%) 56m
Allocated resources:
于 2020-05-25T10:43:04.063 回答