openfun / arnold

:construction_worker_woman: Deploy your applications to Kubernetes with Ansible
MIT License
41 stars 8 forks source link

Make Elasticsearch highly available in an independant app #419

Open sampaccoud opened 4 years ago

sampaccoud commented 4 years ago

Feature Request

Is your feature request related to a problem or unsupported use case? Please describe. Apps that need Elasticsearch include their own dc to deploy Elasticsearch but we are facing limitation:

Describe the solution you'd like Add an independant Elasticsearch app with a configurable high availability cluster.

The app should not use blue/green deployments but rolling update. While doing the rolling update, the deployment should wait until each node is fully synchronized in the cluster before continuing with the next node.

After this is done, modify existing apps to make use of this HA Elasticsearch

jmaupetit commented 4 years ago

I have no experience with ES clusters, but what would be the expected behavior if we upgrade the ES release with a rolling update, i.e. a cluster (pods) with mixed ES versions?

madmatah commented 4 years ago

I have no experience with ES clusters, but what would be the expected behavior if we upgrade the ES release with a rolling update, i.e. a cluster (pods) with mixed ES versions?

@jmaupetit This specific case is documented here :

A rolling upgrade allows an Elasticsearch cluster to be upgraded one node at a time so upgrading does not interrupt service. Running multiple versions of Elasticsearch in the same cluster beyond the duration of an upgrade is not supported, as shards cannot be replicated from upgraded nodes to nodes running the older version.

lunika commented 4 years ago

Elastic HA is available via #447 :tada:

madmatah commented 4 years ago

I reopen this issue because the last part is not done yet :

After this is done, modify existing apps to make use of this HA Elasticsearch