I have an 8 node cluster which is made up of the following roles:
- 3 master-only nodes
- 5 master + data nodes
I am planning on having the 5 master + data nodes converted to data only and was planning on following this procedure to do it:
- Use POST /_cluster/voting_config_exclusions?node_names=node_name and exclude all the master + data nodes from the voting configuration
- On the designated data nodes update Elasticsearch.yml to remove master role from the node.roles parameter.
- On the designated data nodes update Elasticsearch.yml to set discovery.seed_hosts to only have the IP addresses of the master-only nodes
- Restart the data nodes one by one.
Would the steps outlined above be the correct way of handling this situation? Or is there any better way that this could be accomplished. My goal is to have this done with no downtime on the cluster.