Skip to content
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

[proposal] Optimize filter switch of PodMigrations #1511

Closed
ZiMengSheng opened this issue Jul 31, 2023 · 1 comment · Fixed by #1505
Closed

[proposal] Optimize filter switch of PodMigrations #1511

ZiMengSheng opened this issue Jul 31, 2023 · 1 comment · Fixed by #1505
Labels
area/koord-descheduler kind/proposal Create a report to help us improve

Comments

@ZiMengSheng
Copy link
Contributor

ZiMengSheng commented Jul 31, 2023

Why is this needed:
PodMigrationJob currently has non-retrievable and retrievable filter. Retrievable filter aims at rate-limiting and non-retrievable filter focus on pod's situation.
However, some filters currently classified as retrievable filter are not really retrievable, such as expected replicas of workload equals 1 or two replicas of workload are all alrealdy unavailable now.

What is your proposal:
For case as "expected replicas of workload equals one", we can move it to non-retrievable filter.
For case as "two replicas of workload are all alrealdy unavailable", because its logic mixes with maxMigratingPerWorkload, we still classify it as retrievable filter but reuse the EvictAnnotation switch of non-retrievabe filter to allow user skip it.

Is there a suggested solution, if so, please add it:

Reference

non-retrievable filters:

  • bare pods
  • system critical
  • local storage
  • pvc
  • daemonset
  • mirror,static
  • terminating
  • maxEvictionCost
  • expectedReplicas: maxMigrating equals expected replicas
  • namespace include
  • namespace exclude

retrievable filters:

  • rete-limited
  • maxMigratingPerNamespace
  • maxMigratingPerNode
  • maxMigratingPerWorkload
@ZiMengSheng ZiMengSheng added the kind/proposal Create a report to help us improve label Jul 31, 2023
@eahydra
Copy link
Member

eahydra commented Jul 31, 2023

If there is already annotation descheduler.alpha.kubernetes.io/evict in the MigrationJob or Pod, all filters should be skipped, retryable or not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/koord-descheduler kind/proposal Create a report to help us improve
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants