fix: scale controller PDB maxUnavailable with replica count - #1003
fix: scale controller PDB maxUnavailable with replica count#1003razvan wants to merge 3 commits into
Conversation
The KRaft controller PodDisruptionBudget previously hardcoded maxUnavailable to 1 regardless of how many controller replicas were configured. Compute it from the total controller replica count instead, keeping a strict Raft quorum majority available: at most (N - 1) / 2 controllers may be unavailable at once, clamped to at least 1 so node draining isn't blocked. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
I'm in a meeting, but could you please add a little bit of motivation for this change? This is marked as a bugfix, where there any problems you ran into? I need to read a little bit what exactly the controllers do to be able to form an opinion. In any case the docs in https://docs.stackable.tech/home/stable/kafka/usage-guide/operations/pod-disruptions/ should be updated to reflect the change, you can have a look at https://docs.stackable.tech/home/stable/trino/usage-guide/operations/pod-disruptions/ as a template |
|
Thanks. I updated the documentation. |
|
I have to admit I'm a bit surprised by this change.
That would be the most interesting part to me. With If I read our concepts page on PDBs https://docs.stackable.tech/home/stable/concepts/operations/pod_disruptions, to me the controllers clearly fall below PS: I also asked claude and it would also go with |
| Allow only a single Broker to be offline at any given time, regardless of the number of replicas or `roleGroups`. | ||
| This is because we can not make any assumptions about topic replication factors. | ||
|
|
||
| == Kraft Controllers |
There was a problem hiding this comment.
| == Kraft Controllers | |
| == KRaft Controllers |
|
You are right. Apparently I misunderstood how PDBs work. Closing and leaving everything as is. |
|
That's totally fair! Thanks for your willingness to compromise, appreciated! :) |
Description
Change the
maxUnavailablefor KRaft controller's PodDisruptionBudget from1to(N - 1) / 2controllers to ensure quorum health.Definition of Done Checklist
Author
Reviewer
Acceptance
type/deprecationlabel & add to the deprecation scheduletype/experimentallabel & add to the experimental features tracker