【问题标题】:Cannot get Kubernetes Events filtered by labels无法获取按标签过滤的 Kubernetes 事件
【发布时间】:2021-05-28 07:38:56
【问题描述】:

我正在尝试通过标签过滤一些事件。当我对 pod 执行此操作时,它可以正常工作,但不能用于事件。

kubectl get pods -l env=development(给我结果)

kubectl get events -l env=development(给我:在默认命名空间中找不到资源)

你能帮我找出区别吗?

集群信息

Kubernetes 版本:minikube 版本:v1.17.1

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    恐怕您无法过滤$ kubectl get event 输出的labels/selectors

    如果您使用命令 $ kubectl get events -o json,您将获得类似于以下内容的输出:

            {
                "apiVersion": "v1",
                "count": 1,
                "eventTime": null,
                "firstTimestamp": "2021-02-26T10:34:26Z",
                "involvedObject": {
                    "apiVersion": "v1",
                    "fieldPath": "spec.containers{nginx}",
                    "kind": "Pod",
                    "name": "nginx",
                    "namespace": "default",
                    "resourceVersion": "37393",
                    "uid": "fb62eac8-b6ad-4687-ac8c-1944e426d888"
                    ...
    

    在该输出下方,您将找到有关特定事件的更多信息。

    您只能通过输出中的key: value 过滤事件。例如基于名称(来自involvedObject

    $ kubectl get event --field-selector involvedObject.name=nginx
    LAST SEEN   TYPE     REASON      OBJECT      MESSAGE
    6m26s       Normal   Scheduled   pod/nginx   Successfully assigned default/nginx to gke-cluster-1-default-pool-9a99afef-vdkv
    6m25s       Normal   Pulling     pod/nginx   Pulling image "nginx"
    6m25s       Normal   Pulled      pod/nginx   Successfully pulled image "nginx" in 253.411606ms
    6m25s       Normal   Created     pod/nginx   Created container nginx
    6m25s       Normal   Started     pod/nginx   Started container nginx
    

    正如您在下面的输出中看到的,$ kubectl get event 没有 keyselectorlabel

    $ kubectl get po --show-labels
    NAME    READY   STATUS    RESTARTS   AGE   LABELS
    nginx   1/1     Running   0          10m   evn=test,run=nginx
    $ kubectl get events -o json | grep env
    $ kubectl get events -o json | grep test
    $ kubectl get events -o json | grep label
    $ kubectl get events -o json | grep selector
    $
    

    kubectl get eventsUnderstanding Kubernetes cluster events 博客中描述为:

    Kubernetes 事件是向您展示集群内正在发生的事情的对象,例如调度程序做出了哪些决定或为什么某些 pod 从节点中被驱逐。所有核心组件和扩展(操作员)都可以通过 API Server 创建事件。

    简而言之,他们没有自己的标签。他们更喜欢日志消息。

    【讨论】:

      猜你喜欢
      • 2020-06-20
      • 2021-09-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2019-05-01
      • 2011-04-20
      • 1970-01-01
      • 2017-05-25
      相关资源
      最近更新 更多