Kubernetes 如何从具有特定标签的名称空间中获取pod?

Kubernetes 如何从具有特定标签的名称空间中获取pod?,kubernetes,kubectl,kubernetes-pod,Kubernetes,Kubectl,Kubernetes Pod,可以获取集群上的所有吊舱: kubectl get pod --all-namespaces -o wide kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node> 还可以使用特定标签获取集群上的所有吊舱: kubectl get pod --all-namespaces -o wide --selector some.specific.pod.label 甚至可以在集群的特

可以获取集群上的所有吊舱:

kubectl get pod --all-namespaces -o wide
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node>
还可以使用特定标签获取集群上的所有吊舱:

kubectl get pod --all-namespaces -o wide --selector some.specific.pod.label
甚至可以在集群的特定节点上获取所有POD:

kubectl get pod --all-namespaces -o wide
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node>
问题是,如何从具有特定标签的名称空间中获取所有pod


e、 g.kubectl get pod-namespace label some.specific.namespace.label-o-wide伪代码

不能一次完成该操作,因为命名空间对象上的标签不会向下传播到其子对象上。因为kubectl只是在做一个GET on/api/v1/whatevers,所以没有明显的方法一次向两个端点发出REST请求并将它们连接在一起

您需要在shell中使用for循环,或者使用许多API客户机绑定中的一个来创建一个执行名称空间提取的程序,然后为那些匹配的名称空间创建一个Pod提取;例如:

对于$kubectl中的n,获取ns-selector some.specific.namespace.label-o name;做 kubectl-n可能会接受-o name的名称空间/foo输出 或者甚至可以-o go-template='{{range.items}}{{{.metadata.name}}{{end}' n=${nnamespace/} kubectl-n$n获得吊舱-o宽 完成
不能一次完成该操作,因为命名空间对象上的标签不会向下传播到其子对象上。因为kubectl只是在做一个GET on/api/v1/whatevers,所以没有明显的方法一次向两个端点发出REST请求并将它们连接在一起

您需要在shell中使用for循环,或者使用许多API客户机绑定中的一个来创建一个执行名称空间提取的程序,然后为那些匹配的名称空间创建一个Pod提取;例如:

对于$kubectl中的n,获取ns-selector some.specific.namespace.label-o name;做 kubectl-n可能会接受-o name的名称空间/foo输出 或者甚至可以-o go-template='{{range.items}}{{{.metadata.name}}{{end}' n=${nnamespace/} kubectl-n$n获得吊舱-o宽 完成
我编辑了你的答案,因为上面有错误。已从n=${namespace/}更改为n=${nnamespace/}。我在我的集群上进行了测试,现在它按预期工作。伟大的解决方案!我编辑了你的答案,因为上面有错误。已从n=${namespace/}更改为n=${nnamespace/}。我在我的集群上进行了测试,现在它按预期工作。伟大的解决方案!