Cassandra Cluster usando Docker Swarm – Acceso desde el exterior

Tengo un cluster / service de cassandra ejecutándose usando el modo enjambre de docker y usando la networking de superposition. Necesito que mis aplicaciones accedan a la database de cassandra desde fuera de la networking de superposition. Las aplicaciones deberían poder acceder directamente a cualquiera de los nodos de Cassandra. ¿Hay alguna solución que ayude a lograr esto?

Probé mi mano en Docker-Flow-Proxy pero no logro el objective. Esto es lo que intenté.

Creado el grupo de cassandra …

sudo docker service create -e CASSANDRA_SEEDS=192.168.0.3 --detach=false --network overlay-net --network proxy --replicas 5 --name cassclu bitnami/cassandra 

Se inició el contenedor docker-flow-proxy …

 sudo docker service create --name proxy --detach=false -p 80:80 -p 443:443 -p 9042:9042 -p 9160:9160 -p 8080:8080 --network proxy -e MODE=swarm vfarcic/docker-flow-proxy 

Configurado el proxy ….

 sudo curl "192.168.1.76:8080/v1/docker-flow-proxy/reconfigure?reqMode=tcp&serviceName=cassclu&servicePath.1=/&port.1=9042&srcPort.1=9042&&servicePath.2=/&port.2=9160&srcPort.2=9160" 

Pero cuando trato de probar el acceso desde la máquina host usando cqlsh obtengo el siguiente error

 cqlsh -u cassandra Password: Connection error: ('Unable to connect to any servers', {'127.0.0.1': error(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")}) 

ACTUALIZACIÓN: descubrió que el problema estaba sucediendo ya que el nodo Cassandra estaba fuera del clúster Cassandra mientras el contenedor acoplable estaba activo.

¿Hay alguna manera de que podamos hacer que el enjambre portador conozca el estado de la casandra para que las requestes no se enruten al nodo de cassandra que está abajo?