问题描述
是否有更好的方法来列出属于特定 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)