It is tricky. It is also hard to make a real FT postgresql instance, as most tutorials have a single pgpool node doing the load balancing, which shifts the SPOF to the pgpool node. You can do it more or less with a virtual IP ala http://www.pgpool.net/pgpool-web/contrib_docs/watchdog_maste...
To add sharding on top of that is a similar tutorial, but even more complicated.
To add sharding on top of that is a similar tutorial, but even more complicated.