通过部署名称或标签选择器过滤Kubernetes事件

问题描述 投票:0回答:1

运行kubectl get events时,有没有一种方法可以根据事件进行过滤而又不知道容器的名称?

我正在尝试使用Azure Pipeline's Kubectl task进行此操作,它仅限于将参数传递给kubectl get events,但不允许使用子外壳程序和管道,因此grepawk不可用。

我尝试使用kubectl get events --field-selector involvedObject.name=my-microservice-name,它在一定程度上(即,用于部署资源)有效,但不适用于Pod。

使用kubectl get events --field-selector app.kubernetes.io/name=my-microservice-name不会返回结果,尽管已按照kubectl describe pod <my-microservice-name>-pod-name的方式配置了该标签。

理想情况下,最好是使用通配符的方式,例如kubectl get events --field-selector involvedObject.name=*my-microservice-name*

非常感谢您的帮助。

谢谢!

azure kubernetes kubectl
1个回答
0
投票

我没有天蓝色的环境,但是我可以在Pod上显示事件

master $ kubectl get events --field-selector involvedObject.kind=Pod
LAST SEEN   TYPE     REASON      OBJECT      MESSAGE
<unknown>   Normal   Scheduled   pod/nginx   Successfully assigned default/nginx to node01
5m13s       Normal   Pulling     pod/nginx   Pulling image "nginx"
5m8s        Normal   Pulled      pod/nginx   Successfully pulled image "nginx"
5m8s        Normal   Created     pod/nginx   Created container nginx
5m8s        Normal   Started     pod/nginx   Started container nginx

如果需要定位特定的广告连播,则应同时使用involvedObject.kindinvolvedObject.name

为什么我知道kind有效,因为它的json输出显示密钥存在

您需要尝试的另一种方法是jsonpath,以json格式获取输出

kubectl get events -o json

然后将json复制并粘贴到https://jsonpath.com/并与jsonpath practices一起播放

© www.soinside.com 2019 - 2024. All rights reserved.