go - 在 k8s golang api 中观看并获取事件,但一段时间后不再获取任何事件
问题描述
我正在使用 AKS 和 K8s golang API。
我正在创建一个 Kubernetes 观察者来观察诸如
watchres, error := jobsClient.Watch(metav1.ListOptions{})
在那之后,我得到了像这样的事件频道
eventres := watchres.ResultChan()
之后,我使用循环获取事件
we := <-eventres
然后基于这些事件,我正在执行一些操作(例如,当 kubernetes 作业成功时删除资源)
我面临的问题是一切似乎都工作正常,但一段时间后,观察者不会删除资源,但作业会成功,可能是什么问题,频道是否超时?但是我并没有隐式关闭频道。
解决方案
手表上有默认超时。我相信它设置为30分钟。
您可以在 中覆盖此值ListOptions
。例如,将超时设置为一小时:
timeout := int64(3600)
watchres, error := jobsClient.Watch(metav1.ListOptions{
TimeoutSeconds: &timeout,
})
推荐阅读
- react-native - 本机模块不能为空
- fullscreen - Uno 平台中非 UWP 应用程序头的全屏模式
- javascript - 为什么我尝试克隆对象没有按预期工作?
- yugabyte-db - 在 YugabyteDB 中,当一个节点发生故障时,故障节点上的 tablet 负载是否均匀分布在其他节点之间?
- python - 命令引发异常:AttributeError: 'Context' object has no attribute 'members'
- node.js - 如何使用 Node.Js 在 MongoDB 中插入或更新数组?
- python - 切片一个nd数组的中间
- javascript - AngularJS:自定义组件不会显示(吐司)
- redis - 如何以服务器端时间戳作为分数存储在 Redis 排序集中?
- python - Tornado Web 服务器在线程中启动时返回“线程中没有当前事件循环”