Kubernetes内部的高可用ActiveMQ

Kubernetes内部的高可用ActiveMQ,kubernetes,activemq,Kubernetes,Activemq,我们有一个使用面向服务架构的应用程序。它使用ApacheActiveMQ作为消息总线。我们在两个地理位置不同的数据中心的虚拟机上安装了服务器应用程序。此外,安装在远程设备上的客户端应用程序通过消息总线与服务器应用程序通信。除此之外,还有一些web应用程序允许操作员与服务器应用程序交互或控制远程设备上的操作。web应用程序使用WebSocket和HTTP的组合与服务器通信。当然,所有的连接都是加密的 我们正在考虑将服务器应用程序迁移到Kubernetes或Swarm中托管的容器中。这将有助于我们简

我们有一个使用面向服务架构的应用程序。它使用ApacheActiveMQ作为消息总线。我们在两个地理位置不同的数据中心的虚拟机上安装了服务器应用程序。此外,安装在远程设备上的客户端应用程序通过消息总线与服务器应用程序通信。除此之外,还有一些web应用程序允许操作员与服务器应用程序交互或控制远程设备上的操作。web应用程序使用WebSocket和HTTP的组合与服务器通信。当然,所有的连接都是加密的

我们正在考虑将服务器应用程序迁移到Kubernetes或Swarm中托管的容器中。这将有助于我们简化部署。在大多数情况下,我们可以在各种网站和文档页面上找到有用的信息。然而,对于ActiveMQ,我们仍然发现很难找到正确的设置

我们当前的设置使用代理网络,因此确保了高可用性和可扩展性。可伸缩性(目前)并非真正必要。单个代理可以轻松处理流经系统的消息数量。主要是由于可用性要求,我们有多个代理(每个VM一个)

在Kubernetes内部运行ActiveMQ(或可能的ApacheArtemis)时,什么是满足这些需求的好方法?我们可以运行一个POD,让Kubernetes处理HA特性。但是,客户端怎么知道ActiveMQ POD已经死亡,Kubernetes已经开始了一个新的副本,可能是在另一个数据中心

当然,我们可以部署多个pod,将其配置为一个代理网络,类似于我们现在所拥有的。但是,我们可能还需要为每个POD生成证书,以使客户端和服务器之间的加密工作正常


理想情况下,我们只有一个连接到单个DNS名称的证书,在这个DNS名称后面运行我们的整个应用程序集。证书将以HAProxy或类似的方式配置。在内部,我们将只使用自签名证书,这将是可交付成果的一部分。通过这种方式,我们可以完全相同地将相同的应用程序部署到每个客户视线中,唯一的变量是一个SSL证书,用于加密从外部到入口点的流量。

当前遇到相同的问题。我想知道是否找到了解决办法?