在运行kubectl get events时,是否有一种方法可以根据事件进行过滤,而不知道吊舱的名称?
我试图用任务来实现这一点,它仅限于向kubectl get events传递参数,但不允许子which和管道,因此grep和awk不可用。
我尝试使用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* ),这将是最好的情况。
任何帮助都是非常感谢的。
谢谢!
发布于 2020-03-08 01:29:52
我没有蔚蓝的环境,但我可以在豆荚上显示事件
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.kind和involvedObject.name一起工作。
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输出显示关键是存在的。
"involvedObject": {
"apiVersion": "v1",
"fieldPath": "spec.containers{nginx}",
"kind": "Pod",
"name": "nginx",
"namespace": "default",
"resourceVersion": "604",
"uid": "7ebaaf99-aa9c-402b-9517-1628d99c1763"
},您需要尝试的另一种方式是jsonpath,以json格式获取输出
kubectl get events -o json然后将json复制并粘贴到https://jsonpath.com/中,并在其中使用jsonpath实践。
https://stackoverflow.com/questions/60582972
复制相似问题