Scheduling, with David Oppenheimer

Kubernetes Podcast from Google

Episode | Podcast

Date: Tue, 28 Jul 2020 16:44:41 +0000

<p>We finally scheduled some time to talk to <a href="https://twitter.com/davidopp">David Oppenheimer</a>. David, a software engininer at Google, has been working on scheduling there since 2007, including on both Borg and Omega. That experience naturally led to him working on the Kubernetes scheduler, as well as starting SIG Scheduling.</p> <p>Do you have something cool to share? Some questions? Let us know:</p> <ul> <li>web: <a href="https://kubernetespodcast.com">kubernetespodcast.com</a></li> <li>mail: <a href="mailto:kubernetespodcast@google.com">kubernetespodcast@google.com</a></li> <li>twitter: <a href="https://twitter.com/kubernetespod">@kubernetespod</a></li> </ul> <h3 id="chatter-of-the-week">Chatter of the week</h3> <ul> <li><a href="https://kubernetespodcast.com/episode/113-instrumentation-and-cadvisor/"> Last week’s discussion about ice cream pies</a></li> <li><a href="https://www.triplem.com.au/story/vegemite-ice-creams-now-exist-in-case-you-want-to-keep-cool-and-vomit-repeatedly-73292"> Vegemite ice cream</a>, and a friendly reminder that New Zealand is not Australia <ul> <li>Mutton ice cream is not a thing</li> </ul> </li> <li><a href="https://www.youtube.com/watch?v=CCoF7EuYEJM">A bear in the kiddie pool</a></li> </ul> <h3 id="news-of-the-week">News of the week</h3> <ul> <li><a href="https://cloud.google.com/blog/products/networking/traffic-director-supports-proxyless-grpc"> Google Traffic Director supports proxyless gRPC</a></li> <li><a href="https://blog.newrelic.com/product-news/introducing-open-source-agents-and-projects/"> New Relic open sources its agents</a></li> <li><a href="https://eng.lyft.com/announcing-clutch-the-open-source-platform-for-infrastructure-tooling-143d00de9713"> Lyft drops the Clutch</a></li> <li><a href="https://www.cncf.io/blog/2020/07/23/conftest-joins-the-open-policy-agent-project/"> Conftest joins the Open Policy Agent project</a></li> <li><a href="https://github.com/github/emissary">Emissary, from GitHub</a></li> <li><a href="https://cloudblogs.microsoft.com/opensource/2020/07/22/vs-code-docker-extension-azure-containers-instances/"> VS Code Docker extension can now run containers in Azure Container Instances</a></li> <li><a href="https://queue.acm.org/detail.cfm?id=3404974">Debugging Incidents in Google’s Distributed Systems</a> by Beth Cooper and Charisma Chan</li> <li><a href="https://www.hashicorp.com/blog/consul-service-on-azure-general-availability/"> Hashicorp Consul Service on Azure is GA</a></li> <li><a href="https://www.solo.io/blog/introducing-gloo-federation-for-multi-cluster-management/"> Gloo Federation</a> for gloo’ing your <a href="https://www.solo.io/products/gloo/">Gloos</a> together with gloo</li> <li><a href="https://aws.amazon.com/blogs/containers/introducing-cis-amazon-eks-benchmark/"> The AWS EKS CIS ben chm ark</a></li> <li><a href="https://www.aquasec.com/news/aqua-secure-build-infrastructure-workloads-cloud-native-applications/"> Changes to Aqua Wave and Aqua Enterprise</a></li> <li><a href="https://snyk.io/blog/snyks-developer-first-prioritization-capabilities/"> Snyk’s developer-first prioritization capabilities</a></li> <li><a href="https://www.prnewswire.com/news-releases/carbonetes-emerges-from-stealth-as-the-industrys-first-comprehensive-cloud-native-container-application-security-testing-solution-301097683.html"> Carbonetes launch PR</a></li> <li><a href="https://itbrief.com.au/story/prevasio-unveils-threat-analysis-sandbox-for-containers"> Prevasio launch PR</a></li> <li><a href="https://eng.uber.com/microservice-architecture/">DOMA: domain-oriented microservices architecture at Uber</a> by Adam Gluck</li> </ul> <h3 id="links-from-the-interview">Links from the interview</h3> <ul> <li>Papers co-written by David: <ul> <li><a href="https://research.google/pubs/pub43438/">Large-scale cluster management at Google with Borg</a></li> <li><a href="https://research.google/pubs/pub44843/">Borg, Omega and Kubernetes</a></li> </ul> </li> <li><a href="https://github.com/kubernetes/community/tree/master/sig-scheduling"> SIG Scheduling</a></li> <li><a href="https://github.com/kubernetes/community/tree/master/wg-multitenancy"> WG Multi-Tenancy</a></li> <li><a href="https://cloud.google.com/appengine">App Engine</a></li> <li>Interviews with David’s colleagues on Borg and Omega: <ul> <li><a href="https://kubernetespodcast.com/episode/022-sig-node/">Episode 22, with Dawn Chen</a></li> <li><a href="https://kubernetespodcast.com/episode/043-borg-omega-kubernetes-beyond/"> Episode 43, with Brian Grant</a></li> <li><a href="https://kubernetespodcast.com/episode/111-scalability/">Episode 111, with Wojciech Tyczynski</a></li> </ul> </li> <li>Omega features: <ul> <li><a href="https://en.wikipedia.org/wiki/Omelette">The Omlet</a></li> <li><a href="https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets"> Pod disruption budgets</a></li> <li><a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/"> Taints and Tolerations</a></li> <li><a href="https://en.wikipedia.org/wiki/Optimistic_concurrency_control">Optimistic concurrency control</a></li> </ul> </li> <li>Scheduler features <ul> <li><a href="https://kubernetes.io/docs/reference/scheduling/policies/">Predicates and priorities</a></li> <li><a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/"> Labels and selectors</a></li> <li><a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity"> Node affinity and anti-affinity</a></li> <li><a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity"> Pod affinity and anti-affinity</a></li> <li><a href="https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/"> Pod priority and preemption</a></li> <li><a href="https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets"> Disruption budgets</a></li> <li><a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/"> Taints and tolerations</a></li> </ul> </li> <li><a href="https://en.wikipedia.org/wiki/Two-level_scheduling">Two level scheduling</a> <ul> <li><a href="https://cwiki.apache.org/confluence/display/MESOS/%5BPUBLIC%5D+Design+Doc%3A+Optimistic+Offers"> Mesos optimistic offers</a></li> </ul> </li> <li><a href="https://github.com/rothgar/bashScheduler">Kubernetes scheduler in Bash</a></li> <li><a href="http://firmament.io/">Firmament</a> and integration in Kubernetes via <a href="https://github.com/kubernetes-sigs/poseidon">Poseidon</a></li> <li><a href="https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/declarative-application-management.md"> Configuration tools</a> <ul> <li><a href="https://googlecontainertools.github.io/kpt/">kpt</a></li> <li><a href="https://github.com/kubernetes-sigs/kustomize">kustomize</a></li> </ul> </li> <li><a href="https://twitter.com/davidopp">David Oppenheimer on Twitter</a></li> </ul>