恐怕您无法过滤$ 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 没有 key 像 selector 或 label
$ 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 events 在Understanding Kubernetes cluster events 博客中描述为:
Kubernetes 事件是向您展示集群内正在发生的事情的对象,例如调度程序做出了哪些决定或为什么某些 pod 从节点中被驱逐。所有核心组件和扩展(操作员)都可以通过 API Server 创建事件。
简而言之,他们没有自己的标签。他们更喜欢日志消息。