如何使用kubectl命令仅获取Kubernetes集群所有Namespace的名称
只获取Kubernetes集群命名空间名称的kubectl命令方案
方案1:使用kubectl原生自定义列输出(最推荐,兼容性最好)
直接通过-o custom-columns参数指定仅返回name列,同时关闭表头输出:kubectl get namespaces -o custom-columns=NAME:.metadata.name --no-headers执行后会直接逐行输出所有命名空间名称,无多余内容,可直接存入数组,比如Bash下可以这么写:
ns_array=($(kubectl get namespaces -o custom-columns=NAME:.metadata.name --no-headers))方案2:使用jsonpath输出
利用kubectl的jsonpath解析能力直接提取所有名称字段:kubectl get namespaces -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'方案3:结合Linux管道工具过滤(仅推荐固定本地环境使用)
如果你不需要跨环境兼容,也可以通过awk过滤默认输出的第一列,跳过表头行:kubectl get namespaces | awk 'NR>1 {print $1}'
内容的提问来源于stack exchange,提问作者Kerbol
相关产品推荐
相关产品推荐

