Our Jenkins server has multiple addresses (local 10.206.x.x and public via balanser ). The load balancer doesn’t allow any traffic except ports 80 and 443 through, so we have to connect to Docker JNLP containers by yet-another-docker-plugin.
JENKINS_URL variable is set to private URL without balanser. But each time slave try connect to host via balanser host name. Because via JNLP slave recieve two URLs (local 10.206.x.x and public balanser name), them list of Jenkins URL set to
JnlpAgentEndpointResolver. Resolve method return JnlpAgentEndpoint for first available via http(s) (in list first element usual is default Jenkins URL) . But Engine can not be created because JNLP port is not available from slave. If reconnect oprion is enabled slave again try use firs address to create JNLP connection and again port is unreachable.