【发布时间】:2017-09-28 17:21:04
【问题描述】:
我正在尝试从具有状态 running 的部署(按标签过滤)中获取 first pod - 目前我只能实现以下目标,这只会给出我是部署中的第一个 pod(按标签过滤) - 不确定正在运行的 pod,例如它也可能是一个终止:
kubectl get pod -l "app=myapp" -l "tier=webserver" -l "namespace=test"
-o jsonpath="{.items[0].metadata.name}"
怎么可能
a) 仅获取“正在运行”的 pod 的 pod 列表,并且(在此处或在 google 上找不到任何内容)
b) 从该列表中选择第一个。 (这就是我目前正在做的)
问候
更新:我已经尝试过之前在 cmets 中发布的链接,内容如下:
kubectl get pod -l "app=ms-bp" -l "tier=webserver" -l "namespace=test"
-o json | jq -r '.items[] | select(.status.phase = "Running") | .items[0].metadata.name'
结果是 4x "null" - 有 4 个正在运行的 pod。
Edit2:已解决 - 请参阅 cmets
【问题讨论】:
-
@kichik:感谢您的回复,我已经知道这个问题 - 无法集成“当前的解决方法”。你知道怎么做吗?
-
当前的解决方案如何/为什么对您来说失败了?
-
要获得第一个,只需附加
| head -n 1 -
更新:好的,通过将jq结果包装在一个数组中,它也可以根据链接工作,然后您可以访问[0]。 〜关闭
标签: json go kubernetes kubectl