【发布时间】:2021-08-03 23:04:46
【问题描述】:
我有一个 Kubernetes 集群,我需要收集各种 pod 和节点事件时间戳。
我通过构建一个 go 服务来做到这一点,该服务通过 client-go 库与我的 Kubernetes 集群进行通信。我为订阅的 pod 和节点对象获取的时间戳仅显示时间,精度为秒。
有没有一种方法可以获得毫秒精度级别的时间?我找到了similar issue raised,但没有解决方法。
有人可以帮我吗?
【问题讨论】:
-
您是否已经尝试过 Watch api,AIUI 会在它们发生时触发(而不是轮询方法,然后咨询事件的时间戳)?我想剩下的问题是通过知道 Pod 被安排在 1620936556001 而不是 1620936556002,您的系统会做什么?您是否正在尝试构建 lambda 计费替代品?
-
@mdaniel 感谢您的回复。我已经编写了一个客户控制器,它使用通知者来获取我订阅的资源对象的事件(我没有使用 watch api),因为它们发生(它使用 Kubernetes 中当前存在的相同概念,用于监视资源的现有控制器添加/删除或更新的对象)。我得到的时间戳是第二个精度级别。
-
@mdaniel 另外,我正在尝试在毫秒级别测量开销,因此需要这样的时间戳。存储在 etcd 数据存储中的时间戳是秒级精度还是知道它在哪里被截断?
标签: go kubernetes events client-go