<p>We use a kubernetes cluster with installed HAProxy Ingresses. We want to expose RabbitMQ outside of the kubernetes cluster. How is this possible?</p>
<p>Requirement: This is a shared k8s cluster based on OpenShift, where the only way to expose services is using the ingresses.</p>
<ol>
<li><strong>Management-UI</strong> provides basic REST-endpoints which shall not be used for a big amount of data</li>
<li><strong>STOMP-Websockets</strong> looks really unmaintained. Not only the protocoll but also the client libs</li>
<li><strong>MQTT-Websockets</strong> looks not so bad like STOMP but also not very future-proof</li>
<li><strong>own REST-service</strong> can be lots of work</li>
<li><strong>AMQP</strong> not possible to expose via HAProxy</li>
</ol>
<p>I can't imagine that we are the first who needs to connect to RabbitMQ hosted in Kubernetes?!?</p>
<p>The client needs to be <strong>.net</strong> based</p>

masterchris_99
<p>Just define a <code>Service</code>of type <code>NodePort</code> for every component you want to expose outside the cluster.</p>
<p>By default you'll have to &quot;map&quot; the port from your component to a port in the range [32000-32767], and you'll be able to access your components with those ports</p>
<p>Basically, a NodePort service will make each node of your cluster listen on the port from the service and route the traffic to the right pods on the right port. There is no protocol restrictions as for Ingress/Routes.</p>
<p><a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">k8s services</a></p>
<p><a href="https://docs.openshift.com/container-platform/4.5/networking/configuring_ingress_cluster_traffic/configuring-ingress-cluster-traffic-nodeport.html" rel="nofollow noreferrer">OCP doc on nodeport</a></p>
<p><strong>[UPDATED]</strong><br />
This does not answer the problem at all as the requirement as &quot;<em>the only way to expose services is using the ingresses.</em>&quot;</p>
