使用 jq 从 k8s api json 获取 pod 创建状态

get pod creation status from k8s api json using jq

我正在尝试在下面使用 jq 来获取我的 pod“my pod”的状态:

curl '127.0.0.1:8080/api/v1/pods' | jq -r '.items[] | select(.metadata.name)'

这给了我很多 json,更具体地说,你如何从 k8s api 中读取 json - 以获取 pod 的状态 - 运行 或不是吗?

如果我在 pod 中获取项目:

 curl '127.0.0.1:8080/api/v1/pods' | jq -r 'select(.items[].metadata.name="go-test-volume1").items[]

果然我得到了一个列表,但是选择哪一个 - 所有列表中都有一个 status.phase?

在CrashLoopBackOff状态的情况下:

 curl '127.0.0.1:8080/api/v1/pods' |
  jq -r '.items[] | select(.metadata.name == "my-pod").status.phase'

会显示为运行吗?

这就是您所需要的:

curl '127.0.0.1:8080/api/v1/pods' |
  jq -r '.items[] | select(.metadata.name == "my-pod").status.phase'

这将为您提供正确的状态:

curl '127.0.0.1:8080/api/v1/pods' |
  jq -r '.items[] | select(.metadata.name == "my-pod).status.containerStatuses[0].state'