You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running multiple teraslice clusters in a kubernetes cluster I think antiaffinity scheduling would work a bit better if confined to the teraslice cluster and/or job they were part of.
We're already matching app.kubernetes.io/name as you've shown, we should also match app.kubernetes.io/instance.
The "why" this will work better is that it should help avoid generating KubeletPlegDurationHigh alerts when there are short lived jobs executing at a high rate. Our scenario is that we have one workload that runs about 75 5s jobs four at a time. Every now and then one of the jobs will fail and we'll get the KubeletPlegDurationHigh alerts. In our case we let 4 jobs run at once, they all get scheduled on the "empty" node since they avoid other Teraslice workers. If they specifically avoided workers with the same instance, they shouldn't bunch up on one node like they do. Oh, actually we get KubeletPlegDurationHigh more frequently than the jobs actually fail.
That and we get a
execution dab86837-890f-4549-8528-e9fe4b1757d8 received shutdown before the slicer could complete, setting status to "terminated"
in the execution controller logs on the jobs that actually do fail.
This MR resolves the following issues:
* BUG - Conflict between job target and cluster kubernetes_worker_antiaffinity setting - #2938
* Add instance label to pod antiaffinity - #2988
My implementation added a second match label that matches the instance. Mike was actually suggesting I remove the teraslice label match and replace it with the instance.
This has reduced our PLEG alerts and resulted in the workers being spread more broadly. So I am going to close this as a win. But there is still a fair argument for removing the teraslice label match altogether.
When running multiple teraslice clusters in a kubernetes cluster I think antiaffinity scheduling would work a bit better if confined to the teraslice cluster and/or job they were part of.
teraslice/packages/teraslice/lib/cluster/services/cluster/backends/kubernetes/k8sResource.js
Lines 127 to 153 in a454ebc
The text was updated successfully, but these errors were encountered: