use*_*259 3 json go kubernetes kubectl
我正在尝试从处于运行状态的部署中获取第一个pod(按标签过滤)- 目前我只能实现以下目标,这只会给我一个部署中的第一个 pod(按标签过滤) - 而不是肯定的一个正在运行的 pod,例如它也可能是一个终止的 pod:
kubectl get pod -l "app=myapp" -l "tier=webserver" -l "namespace=test"
-o jsonpath="{.items[0].metadata.name}"
Run Code Online (Sandbox Code Playgroud)
怎么可能
a) 仅获取“正在运行”的 pod 列表并且(在此处或在 google 上找不到任何内容)
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'
Run Code Online (Sandbox Code Playgroud)
结果是 4 个“空”——有 4 个正在运行的 Pod。
Edit2:已解决 - 见评论
从 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}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4982 次 |
最近记录: |