It is recommended to install all nodes of the controller in same network to avoid latency between nodes. The controller - even when it is deployed on multiple machines (nodes) - is one unit. It is a collection of micro-services. Scheduling of micro-service in controller is done by internal orchestrator. That is how, master service is able to move micro-services around in case of partial failure. Theoretically, the nodes can be deployed anywhere as long as they can connect. However, having them apart will introduce communication issues within the controller because of network delays. Hence, it not recommended to deploy the nodes apart.