kubectl仅为pod提供事件

Rak*_*h N 20 kubernetes kubectl

当我跑步时kubectl -n abc-namespace describe pod my-pod-zl6m6,我得到了很多关于pod的信息以及最后的事件.

有没有办法使用kubectl describekubectl get命令输出pod的事件?

msz*_*ach 45

你可以使用event命令kubectl.

要过滤特定的窗格,您可以使用字段选择器:

kubectl get event --namespace abc-namespace --field-selector involvedObject.name=my-pod-zl6m6
Run Code Online (Sandbox Code Playgroud)

要查看哪些字段可用,您可以kubectl describe在任何事件中使用.


Job*_*mes 12

特定于部署的所有事件

kubectl get events --field-selector involvedObject.name=$DEPLOYMENT_NAME -n $NAMESPACE
Run Code Online (Sandbox Code Playgroud)

除正常之外的所有事件

get events --field-selector type!=Normal -A
Run Code Online (Sandbox Code Playgroud)


Bry*_*yan 11

有一个新的 kubectl 命令可以满足您的要求:

kubectl events --for pod/my-pod-zl6m6
Run Code Online (Sandbox Code Playgroud)

https://kubernetes.io/docs/reference/kubectl/ generated/kubectl_events/

  • 不太确定它什么时候会退出 alpha 版本。但目前它已经上线 - https://kubernetes.io/docs/reference/kubectl/ generated/kubectl_events/ (2认同)

kya*_*kya 10

  1. 你应该了解这个对象的数据结构。您可以使用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"
            },
            ...
Run Code Online (Sandbox Code Playgroud)
  1. 然后做类似的事情kubectl get events --field-selector involvedObject.name=[...]

这个答案是指@mszalbach 的.

  • 感谢您提供有关如何理解“--field-selector”...字段的额外上下文:) (10认同)

Cha*_*wal 9

您可以描述您的 pod,然后在您的事件之后 grep 行数。如果你想监控它,你可以添加一个手表。

watch "kubectl describe pod my-pod-zl6m6 | grep -A20 Events"
Run Code Online (Sandbox Code Playgroud)

  • no watch 不是任何类型的插件,即使您可以使用“-w”选项并获得相同的结果 (2认同)

One*_*neK 5

为什么不显示您的Podname的所有事件和grep:

kubectl get events --all-namespaces  | grep -i $podname
Run Code Online (Sandbox Code Playgroud)

  • 虽然这提供了结果,但我更喜欢带有“字段选择器”开关的结果:) (3认同)
  • 你甚至无法 grep podname,因为它不是用“kubectl get events”命令打印的 (3认同)