Strapi cluster on multiple servers

What do you mean by sharing controllers and public assets?

You can configure multiple clusters by using Nginx load balancer. Take a look at this example:
http://nginx.org/en/docs/http/load_balancing.html