A load balancer is needed to distribute traffic going to IS (web and service clients). I know some scenarios where you do not have traffic going to IS, but still want clustering, e.g. for failover.
Clustered IS need a common reopisitory which must reside in a database. Usually the database will be clustered as well (with database own clustering methods).
You should consider if you really need IS clusters, basic balancing and failover can also be reached by sharing queues between 2 (or more) IS. As documents are only commited when a service executes succcessfull, you also get basic failover. I have good experience with IS clusters, but other forum members have not and it adds complexity to your solution.
Integration_Server_Clustering_Guide should give all necessary information to setup an IS cluster.