运行kubectl get events
时,有没有一种方法可以根据事件进行过滤而又不知道容器的名称?
我正在尝试使用Azure Pipeline's Kubectl task进行此操作,它仅限于将参数传递给kubectl get events
,但不允许使用子外壳程序和管道,因此grep
和awk
不可用。
我尝试使用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*
。
非常感谢您的帮助。
谢谢!
我没有天蓝色的环境,但是我可以在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.kind
和involvedObject.name
。
为什么我知道kind
有效,因为它的json输出显示密钥存在
您需要尝试的另一种方法是jsonpath
,以json格式获取输出
kubectl get events -o json
然后将json复制并粘贴到https://jsonpath.com/并与jsonpath practices一起播放