首页 > 解决方案 > 在 k8s golang api 中观看并获取事件,但一段时间后不再获取任何事件

问题描述

我正在使用 AKS 和 K8s golang API。

我正在创建一个 Kubernetes 观察者来观察诸如

watchres, error := jobsClient.Watch(metav1.ListOptions{})

在那之后,我得到了像这样的事件频道

eventres := watchres.ResultChan()

之后,我使用循环获取事件

we := <-eventres

然后基于这些事件,我正在执行一些操作(例如,当 kubernetes 作业成功时删除资源)

我面临的问题是一切似乎都工作正常,但一段时间后,观察者不会删除资源,但作业会成功,可能是什么问题,频道是否超时?但是我并没有隐式关闭频道。

标签: gokubernetes

解决方案


手表上有默认超时。我相信它设置为30分钟。

您可以在 中覆盖此值ListOptions。例如,将超时设置为一小时:

timeout := int64(3600)
watchres, error := jobsClient.Watch(metav1.ListOptions{
    TimeoutSeconds: &timeout,
})

推荐阅读