我正在尝试从状态运行的部署(按标签过滤)中获取第一个窗格 - 目前我只能实现以下内容,这只会给出我是部署中的第一个pod(按标签过滤) - 而不是确定正在运行的pod,例如它也可能是终止的:
kubectl get pod -l "app=myapp" -l "tier=webserver" -l "namespace=test"
-o jsonpath="{.items[0].metadata.name}"
怎么可能
a)只获得一个播放列表" RUNNING" pods和(无法在这里或谷歌上找到任何东西)
b)从该列表中选择第一个。 (这就是我目前正在做的事情)
此致
更新:我之前已经尝试过以前评论中发布的链接:
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个跑步吊舱。
Edit2:已解决 - 请参阅评论
答案 0 :(得分:1)
从kubectl 1.9开始,您可以选择传递--field-selector
参数(请参见https://github.com/kubernetes/kubernetes/pull/50140)。例如
kubectl get pod -l app=yourapp --field-selector=status.phase==Running -o jsonpath="{.items[0].metadata.name}"