【发布时间】:2022-01-20 14:25:30
【问题描述】:
如何从“标签”中获取 1 个输出?
尝试执行 -o=jsonpath='{.metadata.labels[0]}' 以希望获得第一个字符串,但这引发了错误。
"metadata": {
"labels": {
"beta.kubernetes.io/arch": "amd64",
"beta.kubernetes.io/os": "linux",
"kubernetes.io/arch": "amd64",
"kubernetes.io/hostname": "143.110.156.190",
"kubernetes.io/os": "linux",
"node-role.kubernetes.io/controlplane": "true",
"node-role.kubernetes.io/etcd": "true",
"node-role.kubernetes.io/worker": "true"
},
【问题讨论】:
-
为什么要获取
1st字符串?为什么不按名称获取? -
这只是一个例子。我正在学习 JSONPATH 如何与 kubectl 一起工作。并且想知道我是否可以只得到一个字符串而不是所有字符串。
-
在这个特定的问题中,最好按名称获取,因为输入不是用于索引的数组。另外,为了学习它是有意义的,但在现实世界中这个问题没有任何意义。
-
是的!本来要说的是不保证条目的顺序,可能会改变,但如果只是为了学习,那为什么不呢!
-
$.metadata.labels['beta.kubernetes.io/arch'] 是唯一的选择。
标签: kubernetes kubectl jsonpath