【发布时间】:2019-01-26 14:31:24
【问题描述】:
当我运行kubectl -n abc-namespace describe pod my-pod-zl6m6 时,我会得到很多关于 pod 的信息以及最后的事件。
有没有办法使用 kubectl describe 或 kubectl get 命令仅输出 pod 的事件?
【问题讨论】:
标签: kubernetes kubectl
当我运行kubectl -n abc-namespace describe pod my-pod-zl6m6 时,我会得到很多关于 pod 的信息以及最后的事件。
有没有办法使用 kubectl describe 或 kubectl get 命令仅输出 pod 的事件?
【问题讨论】:
标签: kubernetes kubectl
您可以使用kubectl的event命令。
要过滤特定的 pod,您可以使用字段选择器:
kubectl get event --namespace abc-namespace --field-selector involvedObject.name=my-pod-zl6m6
要查看可能的字段,您可以在任何事件中使用kubectl describe。
【讨论】:
Error: unknown flag: --field-selector
get 还是describe?这发生在我身上,因为我首先尝试使用 describe 并且该命令中没有这样的选项
此答案为@mszalbach's 的答案提供了上下文。
您应该首先了解事件对象的数据结构。可以使用kubectl get events --output json查看数据结构。
$ kubectl get events --output json
{
"apiVersion": "v1",
"items": [
{
"apiVersion": "v1",
"count": 259,
"eventTime": null,
"firstTimestamp": "2020-04-15T12:00:46Z",
"involvedObject": { <------ **this**
"apiVersion": "v1",
"fieldPath": "spec.containers{liveness}",
"kind": "Pod",
"name": "liveness-exec", <------ **this**
"namespace": "default",
"resourceVersion": "725991",
"uid": "3f497636-e601-48bc-aec8-72b3edec3d95"
},
...
然后,你可以做这样的事情
kubectl get events --field-selector involvedObject.name=[...]`.
【讨论】:
--field-selector... 字段的额外上下文:)
为什么不显示您的 podname 的所有事件和 grep:
kubectl get events --all-namespaces | grep -i $podname
【讨论】:
field-selector 开关的那个:)
--field-selector开关。
kubectl get events 命令打印的
您可以描述您的 pod,然后 grep 事件后的行数。如果你想监控它,你可以添加一个手表。
watch "kubectl describe pod my-pod-zl6m6 | grep -A20 Events"
【讨论】:
watch 是插件吗?
如果您只希望事件消息在一个简短而清晰的视图中,@mszalbachanswer is the best one。
但是,如果您希望所有事件及其所有元素都完全显示,您可以运行:
kubectl describe event [POD_NAME] --namespace [POD's_NAMESPACE]
【讨论】:
部署特定的所有事件
kubectl get events --field-selector involvedObject.name=$DEPLOYMENT_NAME -n $NAMESPACE
除普通以外的所有事件
get events --field-selector type!=Normal -A
【讨论】:
kubectl get events --field-selector involvedObject.name=$POD_NAME -n $NAMESPACE