我想使用kubectl命令获得Kubernetes集群中所有名称空间的名称列表。
目前,我正在运行下面的kubectl命令,它为我提供了所有名称空间的列表。
但是,我不想看到"ACTIVE"one_answers"AGE"列。我只想要NAME列。
这背后的原因是,我可以将NAME列中的所有项添加到一个数组中进行进一步处理。
> kubectl get namespaces
NAME STATUS AGE
dread-gorge Active 284d
dread-lagoon Active 210d
carncier-basin Active 164d
chantague-shallows Active 164d
hilraine-loch Active 311d
stangrave-waters Active 271d
解决方案1:
这里有另一种方法:
kubectl get ns --no-headers -o custom-columns=":metadata.name"
-o=自定义列=使用逗号分隔的自定义列列表打印表格
解决方案2:
另一种获取名称和资源类型的方法:
kubectl get ns -o name
使用kubectl备忘单中的jsonpath
kubectl get ns -o jsonpath='{range .items[*]}{.metadata.name}{"n"}{end}'
default
gitlab-runner
kube-node-lease
kube-public
kube-system
如果您想使用go模板,可以选择此选项。不幸的是,当我在Windows中使用该命令时,您需要转义双引号("(。
Linux:
kubectl get namespace -o 'go-template={{range .items}}{{ .metadata.name }}{{"n"}}{{end}}'
Windows:
kubectl get namespace -o 'go-template={{range .items}}{{ .metadata.name }}{{"n"}}{{end}}'
这里还有其他输出样式的参考:https://gist.github.com/hungbang/90b8d71bc659bafb0c96d73144d51c19