通知容器在Kubernetes中更新的Pod

时间:2019-06-27 14:40:00

标签: kubernetes

我有一些要在Kubernetes中部署的服务器。这些服务器的客户端也将在Kubernetes中。客户端和服务器可以独立部署或扩展。

客户端必须知道服务器(IP)的列表。我在客户端上有一个HTTP端点,以在客户端运行时更新服务器列表(热配置重新加载)。

所有这些当前都在Kubernetes之外运行。我想迁移到GCP。

关于广告连播更新和通知的行业标准是什么?我想在服务器更新时收到通知,以调用客户端上的端点以更新服务器列表。

不能使用LoadBalancer,因为客户端确实需要调用特定的服务器(客户端中包含业务逻辑)。

谢谢

2 个答案:

答案 0 :(得分:4)

调用一组提供功能的Pod的标准是services。如果您不想像常规服务那样需要自动负载平衡或单个IP地址,则应查看headless services。调用无头服务会返回指向该服务后面的Pod的DNS A记录列表。当pod可用/不可用时,此列表会自动更新。

答案 1 :(得分:2)

虽然我认为修改现有脚本以从无头列表中提取列表要简单得多,但也值得一提CRDs (Custom Resource Definitions)

您可以构建一个自定义控制器,以监听服务事件,然后将来自该事件的数据发布到另一个Service或Ingress的HTTP端点。自定义资源将定义要观看的服务以及在何处发布结果。

但是,这可能是一个重量更重的解决方案,只需在吊舱中放置一个边车/单独的容器即可轮询服务以进行更改(听起来更接近您现有的模型)。

我赞成Alassane的回答,因为我认为这是在构建CRD之前实现此类目标的正确方法。