-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[discuss] Support for rolling upgrades #41795
Comments
Pinging @elastic/kibana-platform |
Pinging @elastic/kibana-operations |
Security permissions are another critical area that would need to be addressed to support this. Today, when Kibana starts up it pushes all the necessary privileges into Elasticsearch in order to support that exact version of Kibana, which can cause two problems in a rolling upgrade scenario:
cc @elastic/kibana-security |
The way it works presently is the last version of Kibana to start-up wins, and essentially locks out all other versions from being able to authorize users. Are we only concerned with supporting "rolling upgrades" or should we concerned with supporting potential roll-backs as well? |
When the new version of Kibana starts up, it should go through the migration process (writing directly to the new index and not changing the alias yet). If something fails, abort, log detailed message. The existing version keeps running. If the migration succeeds, it compares the timestamp of the most recent change to that index (this might be something new we need?) to the timestamp when the migration started.
|
From #52202:
|
Much like with Elasticsearch, users should be able to provide a rolling upgrade for Kibana. This will be limited due to not having a true cluster-state, but we should be able to greatly improve the experience.
When Kibana is upgrading, we perform any pending migrations as described here. This creates a new index, and upon completion of the migrations points the
.kibana
alias to the new index. At this point, it's important that the previous versions of Kibana not make any mutations to this index.Here is the change I am proposing:
On startup, the Kibana server will grab the underlying index of the alias and read/write to it as opposed to the alias directly. The first part of the migration process is to put this index into a read-only state, preventing writes. In the UI, we can pull and notify for two possible scenarios, if the current index does not match that of the underlying alias, or if the index is read-only. This allows for a newer version of Kibana to be stood up, while the existing instance was still functional in a read-only state. We can extend the health check to account for these additional checks to assist with automation on a load balancer.
Down the road, when we have a cluster state, it should be possible to re-route requests to the most recent version of Kibana.
The text was updated successfully, but these errors were encountered: