For major version upgrades, we have to bring the deployment to a full stop before upgrading, as the nodes cannot communicate with each other. This is done by flushing all changes so we are sure we can recover them, then we start the deployment with the new version.
While Elasticsearch is working on making upgrades across major versions possible, major version upgrades often include so many changes that upgrades can be risky. This is usually true for any kind of software. Our recommended approach for major version upgrades is to simply make a new deployment with the latest major version, reindex everything, and make sure index requests are temporarily sent to the Elasticsearch clusters in both deployments. With the new cluster ready, you can then do a hot swap and send requests to the new cluster. As you are billed only for the hours that a deployment runs, the few extra dollars added to your bill is money well spent. Since the deployment with the previous working version is still running, you can quickly roll back if the new version has errors.