-
Notifications
You must be signed in to change notification settings - Fork 885
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
Add policy preemption proposal #3684
Conversation
Retrying the CI jobs due to the issue tracked by #3674 |
Codecov Report
❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more. @@ Coverage Diff @@
## master #3684 +/- ##
==========================================
- Coverage 56.63% 55.70% -0.94%
==========================================
Files 221 223 +2
Lines 20834 21236 +402
==========================================
+ Hits 11799 11829 +30
- Misses 8412 8775 +363
- Partials 623 632 +9
Flags with carried forward coverage won't be shown. Click here to find out more. |
8e7be87
to
97500c1
Compare
91f8cbb
to
bb954a4
Compare
3aa4057
to
3dfd2df
Compare
/cc @RainbowMango |
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.
/assign
3dfd2df
to
61a37d5
Compare
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.
I think we need to add feature gate PolicyPreemption
to protect this feature.
I think it does not need. We already provide this field to enable the feature and it's |
Hi @chaunceyjiang @whitewindmills Do you have any further comments or questions? |
docs/proposals/scheduling/policy-preemption/preemption_process.PNG
Outdated
Show resolved
Hide resolved
Other than that I have no problem. The new feature may have unexpected impact on the original environment if the administrator enabled this new feature but did not know enough about it. And feature gate as global switch can decide whether the new feature is enabled. For exmaple as |
@Poor12 asked me for suggestions about the feature gate, I said the introduced But as I mentioned on #3805 (comment), we might need a more details design for it, if we are not fully confident, it would be better to provide an additional feature gate, let's take this as an experimental feature. |
thanks, let's continue the previous discussion in this PR. |
61a37d5
to
b07a4e8
Compare
I update the proposal and add more details. |
docs/proposals/scheduling/policy-preemption/resourcetemplate_policy.PNG
Outdated
Show resolved
Hide resolved
b07a4e8
to
0c57ffc
Compare
To be honest, I'm concerned about this feature, mainly because preemption is a dangerous operation that easily lead to unexpected consequences. I can feel the concerns from the comments at #3684 (comment), #3684 (comment), and we do facing the scalability challenges during the implementation, such as #3805 (comment) that might need to list all resource templates during response to preemption. I'm afraid that will have a significant impact on system performance. In addition, we also need to handle some corner cases like #3684 (comment) which seems is missing from the proposal. So, after revisiting the user case, when users want to use a PP to preempt a certain resource, apiVersion: policy.karmada.io/v1alpha1
kind: PropagationPolicy
metadata:
name: foo
spec:
resourceSelectors:
- apiVersion: apps/v1
kind: Deployment
name: nginx # with a concrete name Or with multiple resources: apiVersion: policy.karmada.io/v1alpha1
kind: PropagationPolicy
metadata:
name: nginx-propagation
spec:
resourceSelectors:
- apiVersion: apps/v1
kind: Deployment
name: nginx # with a concrete name
- apiVersion: v1
kind: ConfigMap
name: nginx # with a concrete name So, I'm thinking if we can narrow down the scope of preemption, that is by introducing a restriction that: |
@chaunceyjiang @GitHubxsy @whitewindmills What do you think of #3684 (comment)? |
If possible, we can have a brief meeting to discuss, I have some questions about this proposal. |
Sounds great, I'll contact you to schedule the meeting. And will post the meeting here. |
Talked to @whitewindmills. |
Meeting minutes: Members Present:
|
0c57ffc
to
158a3d0
Compare
Signed-off-by: Poor12 <shentiecheng@huawei.com>
158a3d0
to
d851519
Compare
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.
/lgtm
/approve
We can iterate the proposal during or after the implementation.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: RainbowMango The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What type of PR is this?
/kind design
What this PR does / why we need it:
This proposal propose a strategy which allows policies to support preemption by priority at runtime.
Even if workloads have been propagated by a policy, they can be preempted by a high priority of policy.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
None