如何使用jsonpath从kubectl中提取多个值

nav*_*ore 4 jsonpath kubernetes kubectl

我找到了用于测试多个值但不提取多个值的jsonpath示例.

我想imagenamekubectl get pods.

这让我受益匪浅 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- 是否有获取节点相邻值列表的语法?

Paw*_*mar 14

使用以下命令获取名称和图像

kubectl get pods -ao jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.template.spec.containers[].image}{"\n"}{end}'

它将提供如下名称图像的输出

  • 谢谢!对我做了一个小调整:`kubectl get pods -ao jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.containers[*].image}{" \n"}{end}'` (2认同)

Gon*_*Cao 8

有用的命令,我必须稍微修改它才能使其工作(因 -a 标志而失败)。另外,我在应用程序标签中添加了一个过滤器,并添加了一个字段来获取:命名空间、pod 名称、图像

kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{@.metadata.namespace}{"\t"}{@.metadata.name}{"\t"}{@.spec.containers[*].image}{"\n"}{end}' -l app=nginx
Run Code Online (Sandbox Code Playgroud)