可以获取群集上的所有Pod:
kubectl get pod --all-namespaces -o wide
也可以使用特定的标签获取集群中的所有Pod:
kubectl get pod --all-namespaces -o wide --selector some.specific.pod.label
甚至有可能在群集的特定节点上获取所有Pod:
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node>
问题是,如何从具有特定标签的命名空间中获取所有Pod?
例如kubectl get pod --namespace-label some.specific.namespace.label -o wide
(伪代码)
不能一次完成该操作,因为Namespace
对象上的标签不会向下传播到其子对象上。由于kubectl
仅做一个GET
on /api/v1/whatevers
,因此没有明显的方法可以立即向两个端点发出REST请求并将它们连接在一起。
您可能需要for
在shell中循环,或使用许多API客户端绑定之一来创建执行Namespace
提取的程序,然后Pod
对匹配的内容进行提取Namespaces
;例如:
for n in $(kubectl get ns --selector some.specific.namespace.label -o name); do
# it's possible kubectl -n will accept the "namespace/foo" output of -o name
# or one can even -o go-template='{{ range .items }}{{ .metadata.name }} {{ end }}'
n=${n##namespace/}
kubectl -n "$n" get pods -o wide
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句