'kubectl get events only for a pod
When I run kubectl -n abc-namespace describe pod my-pod-zl6m6, I get a lot of information about the pod along with the Events in the end.
Is there a way to output just the Events of the pod either using kubectl describe or kubectl get commands?
Solution 1:[1]
You can use the event command of kubectl.
To filter for a specific pod you can use a field-selector:
kubectl get event --namespace abc-namespace --field-selector involvedObject.name=my-pod-zl6m6
To see what fields are possible you can use kubectl describe on any event.
Solution 2:[2]
This answer gives context to @mszalbach's's answer.
You should first understand the data structure of the events object. You can use
kubectl get events --output jsonto check the data structure.$ 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" }, ...Then, you can do something like this
kubectl get events --field-selector involvedObject.name=[...]`.
Solution 3:[3]
Why not display all events and grep for your podname:
kubectl get events --all-namespaces | grep -i $podname
Solution 4:[4]
You can describe you pod and then grep the number of lines after your Events. You can add a watch if you want to monitor it.
watch "kubectl describe pod my-pod-zl6m6 | grep -A20 Events"
Solution 5:[5]
All events specific to Deployment
kubectl get events --field-selector involvedObject.name=$DEPLOYMENT_NAME -n $NAMESPACE
All events except Normal
get events --field-selector type!=Normal -A
Solution 6:[6]
If you only want the Event Messages in a short and clear view, @mszalbach answer is the best one.
But if you want all Events with all their elements to be completely displayed you can run:
kubectl describe event [POD_NAME] --namespace [POD's_NAMESPACE]
Solution 7:[7]
There is a new kubectl command which does what you asked for:
kubectl alpha events pod my-pod-zl6m6
(At some point the alpha will be dropped).
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Gino Mempin |
| Solution 3 | OneK |
| Solution 4 | Chandan Agarwal |
| Solution 5 | Jobin James |
| Solution 6 | froblesmartin |
| Solution 7 | Bryan |
