Docker Networking with Jaeger all-in-one container using Python

41 views Asked by At

I have three containers (C, S, and J). C is the client, S is a SQL Server container, and J is J(aeger). All three containers are on a dedicated network.

Traffic between C and S happens without problems. From the Docker Host (in this case, it's a VirtualBox VM), I can push metrics to J without issue. From C, I get timeouts when attempting to send data from C to J. Bizarrely enough, I CAN telnet from C to tcp/4317 on J. Alas, I cannot send our OTLP data from C to J.

Although it's not a best practice (not at all), I'm attempting to use IP addresses (172.16.x.x/16). C, S, and J are on the same subnet. This is being done solely to reduce the complexity (n.b., I do not have the ability to modify /etc/hosts in the Ubuntu-based containers).

The last "bizarre" thing is that I've seen that "something" resolves the hostnames to routable IP addresses (specifically, to a block owned by DigitalOcean). This happens only within the containers; it does not happen from the Docker Host (VM) nor from the Windows laptop running the VirtualBox VM.

BTW: this is the error which is returned (several times until it ultimately times out):

Transient error StatusCode.DEADLINE_EXCEEDED encountered while exporting traces to 172.19.0.3:4317, retrying in 1s.

1

There are 1 answers

0
user2460464 On

So... I'm working in a corporate environment. I do not understand HOW proxy servers are relevant, here... but the issues I faced were ultimately caused by proxy servers. They are defined [not by me, initially] in the Dockerfile.

Unsetting those ENV variables "fixed" my issues. How/why proxies would be used for traffic between non-routable IP addresses (that should never leave the Docker host)... well, I don't understand this.

I hope that my answer helps someone else.