Pie*_*ter 5 activemq-classic kubernetes activemq-artemis
我们有一个使用面向服务的架构的应用程序。它使用 Apache ActiveMQ 作为消息总线。我们在两个地理位置不同的数据中心的虚拟机上安装了服务器应用程序。此外,安装在远程设备上的客户端应用程序通过消息总线与服务器应用程序进行通信。除此之外,还有一些 Web 应用程序允许操作员与服务器应用程序交互或控制远程设备上的操作。Web 应用程序使用 websocket 和 HTTP 的组合来与服务器进行通信。当然,所有连接都是加密的。
我们正在考虑将服务器应用程序迁移到 Kubernetes 或 Swarm 中托管的容器。这将帮助我们简化部署。大多数情况下,我们可以在各种网站和文档页面上找到有用的信息。然而,对于 ActiveMQ,我们仍然发现很难找到正确的设置。
我们当前的设置使用代理网络,因此确保高可用性和可扩展性。可扩展性(目前)并不是真正必要的。单个代理可以轻松处理流经系统的消息数量。主要是因为可用性要求,我们有多个代理(每个虚拟机一个)。
在 Kubernetes 中运行 ActiveMQ(或可能的 Apache Artemis)时,满足这些要求的好方法是什么?我们可以运行单个 POD,并让 Kubernetes 来处理 HA 功能。但是客户如何知道 ActiveMQ-POD 已失效并且 Kubernetes 已启动一个新的副本(可能在另一个数据中心)?
当然,我们可以部署多个 POD,将其配置为代理网络,类似于我们现在的网络。但是,我们可能还需要为每个 POD 生成证书,以使客户端和服务器之间的加密正常工作。
理想情况下,我们只有一个证书连接到我们的整套应用程序在其后面运行的单个 DNS 名称。证书将在 HAProxy 或类似的东西中配置。在内部,我们将仅使用自签名证书,该证书将成为可交付成果的一部分。通过这种方式,我们可以以完全相同的方式将相同的应用程序部署到每个客户视野,唯一的变量是一个 SSL 证书,用于加密从外部到入口点的流量。
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |