Kubectl 以 yaml 的形式获取 pod 的状态
Kubectl get status of pod as yaml
我可以 运行 kubectl get pod nginx -o=jsonpath={'.status'}
只获取我的广告连播 json 中的状态。
如何进行相同的过滤,但在 yaml 而不是 json 中返回结果?
所以我想通过命令得到这样的输出:
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2019-05-31T14:58:57Z"
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: "2019-05-31T14:59:02Z"
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: "2019-05-31T14:58:57Z"
status: "True"
type: PodScheduled
containerStatuses:
- containerID: docker://5eb07d9c8c4de3b1ba454616ef7b258d9ce5548a46d4d5521a0ec5bc2d36b716
image: nginx:1.15.12
imageID: docker-pullable://nginx@sha256:1d0dfe527f801c596818da756e01fa0e7af4649b15edc3eb245e8da92c8381f8
lastState: {}
name: nginx
ready: true
restartCount: 0
state:
running:
startedAt: "2019-05-31T14:59:01Z"
你不能用 kubectl 做到这一点,它没有这样的输出选项。
但是,提取带有 awk
的行应该很容易。
kubectl get pods -o yaml | awk '/^status:/{flag=1}flag'
这会在 status:
行开始输出。在这种情况下,这正是您想要的。
我可以 运行 kubectl get pod nginx -o=jsonpath={'.status'}
只获取我的广告连播 json 中的状态。
如何进行相同的过滤,但在 yaml 而不是 json 中返回结果?
所以我想通过命令得到这样的输出:
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2019-05-31T14:58:57Z"
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: "2019-05-31T14:59:02Z"
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: "2019-05-31T14:58:57Z"
status: "True"
type: PodScheduled
containerStatuses:
- containerID: docker://5eb07d9c8c4de3b1ba454616ef7b258d9ce5548a46d4d5521a0ec5bc2d36b716
image: nginx:1.15.12
imageID: docker-pullable://nginx@sha256:1d0dfe527f801c596818da756e01fa0e7af4649b15edc3eb245e8da92c8381f8
lastState: {}
name: nginx
ready: true
restartCount: 0
state:
running:
startedAt: "2019-05-31T14:59:01Z"
你不能用 kubectl 做到这一点,它没有这样的输出选项。
但是,提取带有 awk
的行应该很容易。
kubectl get pods -o yaml | awk '/^status:/{flag=1}flag'
这会在 status:
行开始输出。在这种情况下,这正是您想要的。