Kubernetes(kubectl)获得了运行吊舱

时间:2017-09-28 17:21:04

标签: json go kubernetes kubectl

我正在尝试从状态运行的部署(按标签过滤)中获取第一个窗格 - 目前我只能实现以下内容,这只会给出我是部署中的第一个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:已解决 - 请参阅评论

1 个答案:

答案 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}"