Indexing is always first done on the primary shard and then replicated. Elasticsearch can move primary shards around in response to cluster events so it is not possible to tie it to specific nodes.
Usually one of the main reasons to have multiple nodes in a cluster is to achieve high availability. Not having any replicas and diabling cluster rebalancing would remove that, which sounds risky.
What is the problem you are trying to solve? Do you need your data to be resilient and available?
What you are trying to do goes against how Elasticsearch was designed to work, so I would not recommend going down this route. It might be possible through shard allocation filtering but would as far as I can tell give you a cluster that is not very resilient nor highly available.
Why is the network traffic between the nodes such aproblem for you?
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.