Carving the scheduler out of our orchestrator
I have my own fair share of complaints about k8s, but I can&#x27;t say the author articulates clearly what is wrong with k8s scheduler exactly.<p>IMO it&#x27;s one of the better part of k8s. The core scheduler is pretty well written and extensible through scheduling plugins, to implement whatever policies you heart desires (which we extensively make use of at Netflix).<p>The main issue I have with it is the lack of built-in observability, which makes it non-trivial to A&#x2F;B test scheduling policies in large scale deployment setups because you want to be able to log the various subscores of your plugins. But it&#x27;s so extensible through NodeAffinity and PodAffinity plugins that you can even delegate part (or all!) of the scheduling decisions outside of it if you want.<p>Besides observability, one issue we&#x27;ve had to overcome with k8s scheduling is the inheritance of the Borg design decisions around pod shape immutability, which makes implementing things like oversubscription less easy in a &quot;native&quot; way.