Improve RMNodeStarter and scheduler server network interface binding strategy
When several network interfaces are available on the host, both scheduler/rm and nodes often bind to the wrong one, making network configuration nearly unavoidable.
The purpose of this task to improve the binding strategy using the following mechanism:
- The scheduler server will bind preferably to the interface which has an Internet connection (if no internet connexion is available, it will fallback on the standard binding mechanism).
- The node will preferably bind to an interface which can connect to the provided Resource Manager url (in case of pamr, it will check the configured router and port).
What is the standard binding mechanism?
The standard binding mechanism is to try to bind to a public API address preferably, and if no public address is available (which is most often the case), to bind to the first private IP available (which can be anything).
Some improvements have been made to the binding strategy, but there are still cases where the server will bind for example to a docker interface instead of a "standard" one. So I guess there is still a room for improvement here.
Changing the priority to minor, as the chosen network interface can easily be overriden by configuration.