Hello Devs, I have a Mesos setup where master and slave both are running on the same network of my university campus. Mesos agent node is situated under a firewall and only port: 5000 to port:6000 are open for incoming traffic whereas Mesos master has no such restrictions. I am running master service on master:5050 and agent is running on agent:5051 as default.
I can see agent is communicating correctly to master and offering the available resources. I have mentioned the available ports for agents are are ports:[5001-6000] in *src/slave/constants.cpp* file so that framework can communicate only through those ports which are open for my agent system behind the firewall. Now when I am launching jobs through Mesosphere marathon framework, I can see all jobs are connected to mesos-agent through those mentioned port ranges[5001-6000]. But my jobs are not getting submitted. So I started debugging and realised that when launching jobs mesos slaves create and launch an executor (*/erc/executor/executor.cpp*) which communicates to the mesos master through a random port. Which is outside my available range of 5000-6000 open ports. Now as through those ports my agent machine can not take any requests so executor is getting timed out and restarting the executor again and again after every 1 min of time limit.. I could not find out where exactly that random port is assigned. Is there any socket connection that we can change to get executor connection happen on desired range of ports? Please let me know if my understanding is correct and how can I change those ports for executor registration. Thanks Pankaj