Elastic 8.0 comes with enhanced speed, scale, relevance and simplicity. Elastic 8.0 brings a full suite of native vector search capabilities that empower customers and employees to search and receive highly relevant results using their own words and language.
Before you upgrade
- Make a backup by taking a snapshot of the current indexes to prevent data loss.
- With your data secured the next step is to check the environment is at least the 7.16 version of the Elastic Stack. This enables you to use the upgrade assistant which guides you through the upgrade process by identifying and resolving issues. The upgrade assistant will show deprecation logs and some of these will be marked as critical. This means that they have to be resolved before you are able to upgrade. (Note: We did not use upgrade assistant. Instead, we have checked depreciation logs and fixed all critical depreciations before upgrading)
- Reindex indices created before 7.0. Elasticsearch can read indices created in the previous major version. If you have indices created in 6.x or earlier, you must reindex or delete them before upgrading to 8.2.0. Elasticsearch nodes will fail to start if incompatible indices are present. Snapshots of 6.x or earlier indices cannot be restored to a 8.x cluster even if they were created by a 7.x cluster
Issues encountered during upgrade
Issue: We have upgraded the first node to version 8.1.1 and restarted the node. Started Elasticsearch gave the error “there are version 6.6.2 indices present”.
Fix: Used this API call to get migration deprecations.(GET /.*/_migration/deprecations). This hinted that some of the indices were both old and hidden. Reindex the same 6.6.2 indices fixed our issue .
After fixing the issue, the upgrade process went as planned. 60+ nodes were upgraded through ansible playbook. Each node took around 7-10 mins to complete the upgrade procedure.
Post upgrade issues
After successfully upgrading all the nodes we have encountered with one more issue.
Issue: Kibana was giving an authentication issue attempting to login into Kibana.
Fix: Since our Elasticsearch is upgraded to 8.1.1, we must add the allow_restricted_indices permission set to true on a user role to access system indices. The superuser role only grants read-only permissions on system indices. We need to check if the .kibana_7.17.0_001 index has index.blocks.write set to true. If so, you should set it to false, too.