gpt4 book ai didi

kubernetes - 如何从具有特定标签的命名空间中获取 pod?

转载 作者:行者123 更新时间:2023-12-02 11:55:52 27 4
gpt4 key购买 nike

可以获取集群上的所有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 只是在 /api/v1/whatevers 上执行 GET,因此没有明显的方法可以同时向两个端点发出 REST 请求并加入他们。

您需要在 shell 中使用 for 循环,或者使用众多 API 客户端绑定(bind)中的一种来创建执行 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

关于kubernetes - 如何从具有特定标签的命名空间中获取 pod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60437228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com