According to 7.17.16 documentation, upgrading from 7.14.2 to 7.17.16 can be done by rolling upgrade. I have a two node cluster both are master eligible. Following the rolling upgrade documentation, I upgraded one of the node from 7.14.2 to 7.17.16, and the documentation says, Before upgrading the next node, wait for the cluster to finish shard allocation. You can check progress by submitting a [_cat/health
]. But the log shows
"Caused by: java.lang.IllegalStateException: node version [7.14.2] may not join a cluster comprising only nodes of version [7.17.16] or greater"
"Caused by: java.lang.IllegalStateException: index [.ds-.logs-deprecation.elasticsearch-default-2023.12.28-000001/X02xqc4yStOe5bopm5mvWQ] version not supported: 7.17.16 the node version is: 7.14.2"
This is your issue, the rolling upgrade process only works for resilient clusters, a two node cluster can not be resilient and it also should have just one node as master eligible.
You need to upgrade your second node for it to be able to join your cluster again, you should also just set one of the nodes as master eligible.
I see. So before the rolling upgrade, I need to run:
"POST /_cluster/voting_config_exclusions?node_names=<node_names>"
Then when the upgrade is done, I need to run:
"DELETE /_cluster/voting_config_exclusions"
Is this correct?
Better yet. I think I should just set "node.master: false" to the non-master node and restart before upgrade.
No, there is no rolling upgrade on a two node cluster, the correct approach in this case would be to stop both nodes, upgrade and start them again.
With a two node cluster a full cluster restart is required for an upgrade.
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.