如何使用 jsonpath 从 kubectl 中提取多个值
How do I extract multiple values from kubectl with jsonpath
我找到了用于测试多个值但不提取多个值的 jsonpath 示例。
我想从 kubectl get pods
得到 image
和 name
。
这让我感动 name
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].name}' | xargs -n 1
这让我感动 image
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].image}' | xargs -n 1
但是
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].[name,image}' | xargs -n 2
抱怨 invalid array index image
- 是否有获取节点相邻值列表的语法?
使用以下命令获取名称和图像:
kubectl get pods -Ao jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.template.spec.containers[].image}{"\n"}{end}'
它将给出如下输出:
name image
有用的命令,我必须稍微修改一下才能使其工作(失败 -a 标志)。另外,我在 app label 中添加了一个过滤器,并添加了一个字段来获取:namespace、pod name、image
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{@.metadata.namespace}{"\t"}{@.metadata.name}{"\t"}{@.spec.containers[*].image}{"\n"}{end}' -l app=nginx
我找到了用于测试多个值但不提取多个值的 jsonpath 示例。
我想从 kubectl get pods
得到 image
和 name
。
这让我感动 name
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].name}' | xargs -n 1
这让我感动 image
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].image}' | xargs -n 1
但是
kubectl get pods -o=jsonpath='{.items[*].spec.containers[*].[name,image}' | xargs -n 2
抱怨 invalid array index image
- 是否有获取节点相邻值列表的语法?
使用以下命令获取名称和图像:
kubectl get pods -Ao jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.template.spec.containers[].image}{"\n"}{end}'
它将给出如下输出:
name image
有用的命令,我必须稍微修改一下才能使其工作(失败 -a 标志)。另外,我在 app label 中添加了一个过滤器,并添加了一个字段来获取:namespace、pod name、image
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{@.metadata.namespace}{"\t"}{@.metadata.name}{"\t"}{@.spec.containers[*].image}{"\n"}{end}' -l app=nginx