Bidirectional communication from and to linkerd-tcp


#1

Hi all, here is my goal

To connect multiple instances of application (cluster of applications with hazelcast) which communicate using specific port.

Applications are on VMs in different data-centers, so they are not visible to each other.
Communication port will be exposed to external world.
Binary data will be exchanged over this port (no http request/response scheme).
TLS will be required.
Docker will be used.
No Kubernetes (for now).

Will it be possible using linkerd / linkerd-tcp / namerd?
Could you provide some base configurations to start playing with?

Br


#2

Hi @wald, you can use linkerd, linkerd-tcp and namerd together. Linkerd-tcp also supports TLS. A good reference you can start playing around with is this project in the linkerd-examples repo. Let me know if you have specific questions on getting things set up.


#3

Hi @dennis.ab

Thanks, and yes, I tried with linkerd-tcp project, without success in my case.
In my opinion linkerd expects that every node in cluster is visible to each other.
I thought that linkerd provides layer for it, to make nodes visible to each other, but not.
Please correct me if this is not true.
Br


#4

What issues did you run into when trying out linkerd-tcp? Linkerd-tcp works together with Namerd to send TCP traffic to hosts in a network. Namerd gives linkerd-tcp a set of endpoint addresses to load balance TCP traffic and assumes that linkerd-tcp is able to connect to those endpoints.

It sounds like, in your case, each node in your cluster will only have one port exposed to the external world. If that is the case, your Namerd instance needs to be aware of a host with an “external world”. Then, Namerd will send those endpoints to your linkerd instances so that they can connect and send traffic to those nodes/hosts in your cluster.