Sub*_*wal 5 kubernetes activemq-artemis minikube nginx-ingress
我有一个用于 ActiveMQ-Artemis 的 k8 部署(使用 minikube)。在此,我公开了代理(61616)和控制台(8161)的端口。将端口指向服务。它运行良好。我还为控制台配置了入口控制器。
服务.yaml
kind: Service
metadata:
name: artemis-service
spec:
type: ClusterIP
ports:
- port: 8161
name: http-console
protocol: TCP
targetPort: 8161
- port: 61616
name: netty-connector
protocol: TCP
targetPort: 61616
selector:
app: artemis
Run Code Online (Sandbox Code Playgroud)
Ingress.yaml
kind: Ingress
metadata:
name: broker-ingress
labels:
name: broker-ingress
spec:
ingressClassName: nginx
rules:
- host: artemis.broker.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: artemis-service
port:
number: 8161
Run Code Online (Sandbox Code Playgroud)
当我点击时,我可以访问 activemq 控制台,http://artemis.broker.com
现在我想使用 NGINX 控制器公开 TCP 端口 (61616),通过它我可以使用 TCP URL 将消息发布/消费到 ActiveMQ 队列。
我在Nginx控制器中找到了TransportServer来公开TCP。 https://docs.nginx.com/nginx-ingress-controller/configuration/transportserver-resource/ 有人可以帮助我如何配置此 TransportServer。
PS-我是 kubernetes 新手。
Nginx Ingress不支持TCP或UDP服务
您可以按照本指南设置并公开 TCP 服务:https://kubernetes.github.io/ingress-nginx/user-guide/exusing-tcp-udp-services/
这是我使用的RabbitMQ的YAML配置文件
---
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
61616: "default/artemis-service:61616"
Run Code Online (Sandbox Code Playgroud)
将tcp-service配置放入ingress-nginx命名空间或安装控制器的位置。
将端口添加到Nginx 服务
- name: proxied-tcp-61616
port: 61616
targetPort: 61616
protocol: TCP
Run Code Online (Sandbox Code Playgroud)
现在您将能够NginxIP:61616从外部连接您的经纪人。
如果您对 K8s 非常陌生,请注意:
如果您在同一个 Kubernetes 集群内运行应用程序,则无需公开端口,您可以使用服务名称进行内部通信和连接。
artemis-service:61616其余的将由 K8s 管理 DNS 解析等。
| 归档时间: |
|
| 查看次数: |
2917 次 |
| 最近记录: |