karmada-io / karmada

Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration
https://karmada.io
Apache License 2.0
4.43k stars 877 forks source link

[Umbrella] Enhancement of WorkloadRebalancer to support fresh rescheduling across multiple cluster affinities #5172

Open chaosi-zju opened 3 months ago

chaosi-zju commented 3 months ago

What would you like to be added:

Enhancement of WorkloadRebalancer to support fresh rescheduling across multiple cluster affinities.

Why is this needed:

In summary, what has been discussed in this thread is what the concerns are ie. lack of ability to do a fresh reschedule where the workloads need to be relocated back to the original clusters where the conditions are satisfied (either due to re-availability of capacity or the cluster becoming available if there was a failover etc). Currently no construct of Karmada enables this reverse migration workflow. Almost all the scheduling flows taking into account the previous scheduling context.

I see WorkloadRebalancer as a natural fit to solve this by providing a control to the user to signal a fresh reschedule (preferably through a field spec.freshReschedule) without honoring the previous schedule context. Such reschedules may or may not cause the workload to be relocated depending on where it was scheduled prior. It is upto the user who triggers it to decide when a fresh reschedule is triggered via WorkloadRebalancer and that the user is fully aware of the implications of such an action. Users may build workflows to trigger any periodic fresh reschedules as well to suit their needs.

related issue: #5070、#4990

TODO list

chaosi-zju commented 3 months ago

/assign @bharathguvvala

karmada-bot commented 3 months ago

@chaosi-zju: GitHub didn't allow me to assign the following users: bharathguvvala.

Note that only karmada-io members with read permissions, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. For more information please see the contributor guide

In response to [this](https://github.com/karmada-io/karmada/issues/5172#issuecomment-2221878140): >/assign @bharathguvvala Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
bharathguvvala commented 2 months ago

Commenting so that the issue can be assigned to me.

/assign @bharathguvvala