我将根据特定标签获取Kubernetes命名空间的列表

whhtz7ly  于 2023-01-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(107)

我正在编写一个bash脚本,需要使用kubectl命令根据特定标签获取集群中的所有名称空间。

kubectl get ns -l=app=backend

当我运行上面的命令时,我得到:no resources found

gojuced7

gojuced71#

只有在ns中的pod有那个标签.想知道是否有一种方法我可以操纵kubectl输出只有ns的pod有那个标签
您可以合并几个命令来执行以下操作:

kubectl get pods -A -l app=backend  -o json |
  jq -r '.items[]|.metadata.namespace' |
  sort -u

这将获得所有名称空间中与标签选择器匹配的所有pod的列表;使用jq从每个pod提取命名空间名称,然后使用sort -u生成唯一列表。
实际上,不用jq,也可以使用go-template输出格式来实现这一点,但对我来说,这意味着要访问go模板文档:

kubectl get pods -A -l app=backend \
  -o go-template='{{range .items}}{{.metadata.namespace}}{{"\n"}}{{end}}' |
  sort -u

相关问题