首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过部署名称或标签选择器筛选Kubernetes事件

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

Stack Overflow用户
提问于 2020-03-07 22:57:05
回答 1查看 4.8K关注 0票数 1

在运行kubectl get events时,是否有一种方法可以根据事件进行过滤,而不知道吊舱的名称?

我试图用任务来实现这一点,它仅限于向kubectl get events传递参数,但不允许子which和管道,因此grepawk不可用。

我尝试使用kubectl get events --field-selector involvedObject.name=my-microservice-name,它在一定程度上起作用(例如,对于部署资源),但不适用于豆荚。

使用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* ),这将是最好的情况。

任何帮助都是非常感谢的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-03-08 01:29:52

我没有蔚蓝的环境,但我可以在豆荚上显示事件

代码语言:javascript
复制
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

如果您需要在特定的pod上设置目标,您应该与involvedObject.kindinvolvedObject.name一起工作。

代码语言:javascript
复制
master $ kubectl run redis --image=redis --generator=run-pod/v1
master $ kubectl run nginx --image=nginx --generator=run-pod/v1
master $ kubectl get events --field-selector involvedObject.kind=Pod,involvedObject.name=nginx
LAST SEEN   TYPE     REASON      OBJECT      MESSAGE
<unknown>   Normal   Scheduled   pod/nginx   Successfully assigned default/nginx to node01
16m         Normal   Pulling     pod/nginx   Pulling image "nginx"
16m         Normal   Pulled      pod/nginx   Successfully pulled image "nginx"
16m         Normal   Created     pod/nginx   Created container nginx
16m         Normal   Started     pod/nginx   Started container nginx

为什么我知道involvedObject.kind工作,因为它的json输出显示关键是存在的。

代码语言:javascript
复制
        "involvedObject": {
            "apiVersion": "v1",
            "fieldPath": "spec.containers{nginx}",
            "kind": "Pod",
            "name": "nginx",
            "namespace": "default",
            "resourceVersion": "604",
            "uid": "7ebaaf99-aa9c-402b-9517-1628d99c1763"
        },

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

代码语言:javascript
复制
kubectl get events -o json

然后将json复制并粘贴到https://jsonpath.com/中,并在其中使用jsonpath实践

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60582972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档