登录
首页 >  Golang >  Go问答

有没有更有效的方式获取与特定 Kubernetes 对象相关的 Kubernetes 事件?

来源:stackoverflow

时间:2024-03-19 12:39:31 412浏览 收藏

Kubernetes 中获取特定对象相关事件的最佳实践是使用 `fields.ParseSelector` 函数,它允许你使用更具可读性和结构化的方式构建字段选择器。这种方法更清晰、更易于维护,因为它使用明确的字段名称和值,而不是复杂的 JSON 字符串。

问题内容

是否有更好的方法来列出属于特定 k8s 对象的 k8s 事件?

例如,如果我想列出属于名为“podname”的 pod 的所有事件,我会执行以下操作:

opts := metav1.ListOptions{
    TypeMeta:      metav1.TypeMeta{Kind: "Pod"},
    FieldSelector: "involvedObject.name=podname",
}
    
events, err := clientSet.CoreV1().Events(namespace).List(opts)

go 中是否有替代/更惯用的方法来按 kube 对象的名称进行过滤(而不是在 fieldselector 中使用类似 json 的字符串)?


解决方案


不,但更好的方法是:

fieldSelector, _ := fields.ParseSelector("involvedObject.name=podname,involvedObject.kind=Pod")
opts := metav1.ListOptions{FieldSelector: fieldSelector.String()}

events, err := clientSet.CoreV1().Events(namespace).List(opts)

本篇关于《有没有更有效的方式获取与特定 Kubernetes 对象相关的 Kubernetes 事件?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>