-
Notifications
You must be signed in to change notification settings - Fork 317
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
90 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,25 @@ | ||
```release-note:breaking-change | ||
server: set `leave_on_terminate` to `true` and set the server pod disruption budget `maxUnavailable` to `1`. | ||
|
||
This change makes server rollouts faster and more reliable. However, there is now a potential for reduced reliability if users accidentally | ||
scale the statefulset down. Now servers will leave the raft pool when they are stopped gracefully which reduces the fault | ||
tolerance. For example, with 5 servers, you can tolerate a loss of 2 servers' data as raft guarantees data is replicated to | ||
a majority of nodes (3). However, if you accidentally scale the statefulset down to 3, then the raft quorum will now be 2, and | ||
if you lose 2 servers, you may lose data. Before this change, the quorum would have remained at 3. | ||
|
||
During a regular rollout, the number of servers will be reduced by 1 at a time, which doesn't affect quorum when running | ||
an odd number of servers, e.g. quorum for 5 servers is 3, and quorum for 4 servers is also 3. That's why the pod disruption | ||
budget is being set to 1 now. | ||
|
||
If a server is stopped ungracefully, e.g. due to a node loss, it will not leave the raft pool, and so fault tolerance won't be affected. | ||
|
||
For the vast majority of users, this change will be beneficial, however if you wish to remain with the old settings you | ||
can set: | ||
|
||
server: | ||
extraConfig: | | ||
{"leave_on_terminate": false} | ||
disruptionBudget: | ||
maxUnavailable: <previous setting> | ||
|
||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters