如何在kubernetes中过滤集群自动缩放器的事件?

时间:2019-12-04 19:56:38

标签: kubernetes

我看到来自kubectl get events的以下事件:

  {
        "apiVersion": "v1",
        "count": 1,
        "eventTime": null,
        "firstTimestamp": "2019-12-04T19:52:51Z",
        "involvedObject": {
            "apiVersion": "v1",
            "kind": "Pod",
            "name": "example-deployment-55f789d54c-tlwnz",
            "namespace": "default",
            "resourceVersion": "82663",
            "uid": "2fdbd034-16cf-11ea-bc4a-42010a800186"
        },
        "kind": "Event",
        "lastTimestamp": "2019-12-04T19:52:51Z",
        "message": "Unable to mount volumes for pod \"example-deployment-55f789d54c-tlwnz_default(2fdbd034-16cf-11ea-bc4a-42010a800186)\": timeout expired waiting for volumes to attach or mount for pod \"default\"/\"example-deployment-55f789d54c-tlwnz\". list of unmounted volumes=[nfs-volume]. list of unattached volumes=[nfs-volume default-token-kc7ks]",
        "metadata": {
            "creationTimestamp": "2019-12-04T19:52:51Z",
            "name": "example-deployment-55f789d54c-tlwnz.15dd430deb31e8fd",
            "namespace": "default",
            "resourceVersion": "1529",
            "selfLink": "/api/v1/namespaces/default/events/example-deployment-55f789d54c-tlwnz.15dd430deb31e8fd",
            "uid": "a7c80266-16cf-11ea-bc4a-42010a800186"
        },
        "reason": "FailedMount",
        "reportingComponent": "",
        "reportingInstance": "",
        "source": {
            "component": "kubelet",
            "host": "gke-test-a2e50ea5b9f1dd9-my-node-pool-5a20b1ac-vk9q"
        },
        "type": "Warning"
    }

....

我尝试通过以下方式进行过滤:kubectl get events --all-namespaces -o json --field-selector source.component=cluster-autoscaler,但是出现以下错误:

{
    "apiVersion": "v1",
    "items": [],
    "kind": "List",
    "metadata": {
        "resourceVersion": "",
        "selfLink": ""
    }
}
Error from server (BadRequest): Unable to find "/v1, Resource=events" that match label selector "", field selector "source.component=cluster-autoscaler": field label not supported: source.component

如何过滤?

1 个答案:

答案 0 :(得分:2)

可以使用jq完成(尽管它不会返回JSON数组-而是由换行符分隔的单个JSON对象):

kubectl get events --all-namespaces  -o json | jq '.items[]|select(.source.component=="cluster-autoscaler")'