-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Start affinity-assistant lazily #3540
Comments
This should not be the case. The Affinity Assistant is configured with PodAntiAffinity to other Affinity Assistants - such that they should repel - in a best-effort fashion.
Yes, the point with the Affinity Assistant is to schedule tasks that use the same volume to the node were the volume is mounted.
Yes. The scheduling can indeed be non-optimal with the Affinity Assistant. But it can not be improved much as it is implemented now. By implementing this feature as a Custom Scheduler instead of a Pod can hopefully improve on this - but scheduling is not so easy problem, especially not for Tekton Tasks that share a volume.
There are actually several benefits with the Affinity Assistant in a linear pipeline - as is:
|
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
Stale issues rot after 30d of inactivity. /lifecycle rotten Send feedback to tektoncd/plumbing. |
Rotten issues close after 30d of inactivity. /close Send feedback to tektoncd/plumbing. |
@tekton-robot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Feature request
Only start the affinity assistance before parallel tasks start executing in a Pipeline
Use case
My understanding is that the purpose affinity assistant is to make tasks running in parallel execute on the same node so that they can share a PV, however I've noticed that it can prevent optimal scheduling of pipelines runs, particularly when the number of pipelines running greatly exceeds the cluster capacity. The affinity assistance gets created and effectively pins all the pipelines to a specific cluster node because it has such a small resource request that it can basically run anywhere. However, this means that every pipeline/task has it's node chosen before it executes. If that particular node is less capable than other nodes, this may result in non-optimal scheduling. If the affinity assistant was only created at the point where parallel tasks were detected in the pipeline DAG, A) it would never run for linear pipelines, and B) it would better allow the natural scheduling of tasks to free nodes during overload
The text was updated successfully, but these errors were encountered: