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
Disable P&F by default in the apiserver library #124534
base: master
Are you sure you want to change the base?
Conversation
Priority and Fairness is currently enabled by default for any consumers of the apiserver library. This include the kube-apiserver as well as aggregated apiservers that are based on the generic apiserver library. For the latter it doesn't really make sense to have P&F enabled by default because the apiservers are for the majority not supposed to be accessed directly, but rather via the kube-apiserver. In case there is still a need to enable P&F at an aggregated apiserver level, they can continue to do it either via the `--enable-priority-and-fairness` CLI flag or by turning on the feature like we do for the kube-apiserver. Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: dgrisonnet The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/kind cleanup |
I don't know how controversial this change will be, but aggregated apiservers consuming the apiserver/generic-apiserver libraries currently have to disable P&F themselves when in my opinion it would make more sense it to be disabled by default in the library. |
/cc |
/triage accepted |
e2e failure seems unrelated /retest-required |
I don't think this makes sense. These API servers should be configured by default to behave correctly whether they are contacted directly or via kube-apiserver. If a specific server wants to differ from default admission / filter behavior, that's fine, but the existing defaults make sense to me. |
EnablePriorityAndFairness: true, | ||
// Disable PriorityAndFairness by default since it only makes sense to have | ||
// on by default for the kube-apiserver and not for the aggregated | ||
// apiservers that are reusing this library. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// Disable PriorityAndFairness by default since it only makes sense to have
// on by default for the kube-apiserver and not for the aggregated
// apiservers that are reusing this library.
I don't agree with this comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Who you mind expanding on that? From my understanding, I would expect that most users want to configure priority and fairness at the kube-apiserver level, and only very few use-cases would really benefit from configuring P&F at the aggregated apiserver level since they usually handle fewer resources and are very specific.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it is equally important that system controllers get priority when talking to aggregated API servers. P&F operating at that server level as well helps ensure that.
Expanding on the idea, the nicest configuration here is probably
|
The no opinion configuration you mentioned would be nice to have since it would prevent aggregated apiserver maintainers from making the difficult decision between:
|
Priority and Fairness is currently enabled by default for any consumers of the apiserver library. This include the kube-apiserver as well as aggregated apiservers that are based on the generic apiserver library. For the latter it doesn't really make sense to have P&F enabled by default because the apiservers are for the majority not supposed to be accessed directly, but rather via the kube-apiserver. In case there is still a need to enable P&F at an aggregated apiserver level, they can continue to do it either via the
--enable-priority-and-fairness
CLI flag or by turning on the feature like we do for the kube-apiserver.