Kubernetes 上的 ActiveMQ 代理 url

ActiveMQ Broker url on Kubernetes

我已经在 Kubernetes 上部署了我的 ActiveMQ,但是如何配置代理使用端口 61616 连接队列?如果我使用 POD IP,那么它就不是静态 IP,每次 pod recreate 都会创建新的 IP。无论如何要获得静态 IP 或使用入口我们可以在端口 61616 上设置代理吗?

这是一个社区 Wiki 答案,请随时对其进行编辑并添加您认为重要的任何其他详细信息。

为了在外部或内部公开 kubernetes 中的任何微服务,您有一个 Service

正如 David Maze 在他的评论中所说:

There should be a matching Service, which will have a known DNS name; use that. – David Maze yesterday

您无需担心静态 IP。 Services 也分配了动态 IP,但它们提供了一种可靠的方式来通过稳定的 DNS 名称访问您的后端 Pods。另请查看官方码头中的 this section

在您的情况下,足以创建一个简单的 ClusterIP Service(这是默认的 Service 类型)。它可能如下所示:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 61616
      targetPort: 61616

前提是您的应用正在侦听 TCP 端口 61616,并且您希望 Service 公开与 Pods 相同的端口 (port)(targetPort).