The next Kubernetes Borg/Omega history topic is going to be watch, as a followup to the asynchronous controllers topic, but since there were some scheduling questions due to the 2 recent podcasts, I'll make some comments about "scheduling". First, pedantic terminology
-
Show this thread
-
The definition of "scheduling" is to plan an event to happen at a particular time. OS thread schedulers primarily chose which thread to run in the pre-multi-core era. Batch queuing systems perform a similar function: pick tasks from queues. Is that cohyponymic transfer?
1 reply 0 retweets 5 likesShow this thread -
Borg took that further, perhaps due to its workqueue heritage. Babysitter had a machine assigner. Like Borg, the "scheduler" in Kubernetes principally does placement.
1 reply 1 retweet 3 likesShow this thread -
"Scheduler" in the context of systems like Kubernetes, Mesos, and Peloton has apparently now come to imply the entire computational resource management ecosystem, including queuing, coscheduling, quota and sharing management, autoscaling, oversubscription, placement, etc
1 reply 0 retweets 7 likesShow this thread -
And preemption, descheduling, and so on. It's important to understand how all these control loops interact with each other and with their surroundings, such as load balancers and infrastructure autoprovisioners. But in Kubernetes we've tried to make these functions composable
1 reply 0 retweets 6 likesShow this thread -
As I mentioned in my podcast, the importance of some of these is greatly dependent on the variety of workloads run, the elasticity of the underlying infrastructure, and priorities. For instance, many use Kubernetes to accelerate deployment more than to increase utilization
1 reply 0 retweets 10 likesShow this thread -
If the infrastructure is not very elastic, as in bare metal datacenter environments, then utilization can be a primary concern, and that's where techniques such as vertical scaling, oversubscription, binpacking, mixing workloads, QoS, share management, etc. become important
1 reply 0 retweets 6 likesShow this thread -
VMs in cloud is just one way to make the infrastructure more elastic. It does introduce a 2nd level of placement with information hiding, though, which is a tradeoff. I'll plug the Omega paper for more on that topic:https://ai.google/research/pubs/pub41684 …
1 reply 1 retweet 9 likesShow this thread
I'll come back to scheduling later in the series to talk about scheduling affinity, anti-affinity, taints, tolerations, forgiveness, and so on, which were straight out of our work on Omega.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.