【发布时间】:2017-10-17 23:09:57
【问题描述】:
我有带有 Kubernetes 主节点和节点的 Kubernetes 集群。当任何节点创建/停止容器时,我有兴趣在 Kubernetes master 上监听事件。
类似 docker events 的东西会继续监听事件并在某些活动的屏幕上弹出输出。
谁能告诉我如何为 Kubernetes 做到这一点?
【问题讨论】:
标签: kubernetes
我有带有 Kubernetes 主节点和节点的 Kubernetes 集群。当任何节点创建/停止容器时,我有兴趣在 Kubernetes master 上监听事件。
类似 docker events 的东西会继续监听事件并在某些活动的屏幕上弹出输出。
谁能告诉我如何为 Kubernetes 做到这一点?
【问题讨论】:
标签: kubernetes
您可能想深入了解API docs 并查看实际文档。
为了查看所有事件,您可以观看感兴趣的对象之一,并可能过滤列表,以便您看不到所有内容。 API operations 指南中描述了这是如何完成的。
第一个超级简单的尝试是:http://<kubernetes-master>:8080/api/v1/pods?watch=true 查看 v1.Pod 对象的事件流。
发现 API 的另一种方法是在详细模式下使用 kubectl。因此,如果您找到了一个 kubectl 命令,它可以满足您的需求,您可以添加 -v=6 以查看调用哪个 API url 来获取数据。然后,在您的程序中,您可以使用相同的 URL 来获取数据,而无需中间有 kubectl。
使用Janos 中的示例,这将是:kubectl get ev -w -v=6,结果如下:
...
I0322 17:03:55.738391 18068 round_trippers.go:318] GET http://127.0.0.1:8080/api/v1/watch/namespaces/default/events?resourceVersion=18474970 200 OK in 0 milliseconds
...
希望这对您有所帮助。
【讨论】:
kubectl get ev -w