当 Pod、服务或端点发生变化时如何收到通知?

Bla*_*man 3 kubernetes

如果我有一个可以使用选择器查询的服务、pod 等更改其 IP 地址,有没有办法收到通知?

例如,假设我的应用程序需要拥有 pod 的 ip 地址列表或服务的 ip 地址。由于容器可以使用 kubernetes 停止运行并重新创建,有没有办法在容器停止运行并重新创建时收到通知,以便我可以使用 kubernetes API 获取 IP 地址的最新值?

这对于主数据库和从数据库等是必需的。

kubernetes 是否具有可用于通知我的应用程序的 Webhook 类型功能?

wei*_*eld 5

您可以使用手表API 操作。

要查看所有 Endpoints 对象:

GET /api/v1/namespaces/{namespace}/endpoints?watch=true
Run Code Online (Sandbox Code Playgroud)

要观察特定的 Endpoints 对象:

GET /api/v1/watch/namespaces/{namespace}/endpoints/{name}?watch=true
Run Code Online (Sandbox Code Playgroud)

这会创建一个挂起的 HTTP GET 请求,只要任何监视的对象发生更改,您就会收到通知。

请参阅Kubernetes API 参考

  • 这是监视资源的官方方式,所有内置控制器都使用这种方式。Kubernetes 不提供 webhook。但是您可以创建一个在集群中运行的控制器,该控制器在发生特定事件时调用应用程序中的 Webhook。 (3认同)