Skip to the content.

Peloton: Uber’s Unified Resource Scheduler for Diverse Cluster Workloads

Why does Uber needs a unified resource scheduler

Uber wanted to turn those resources into a shared pool and have a unified scheduler to schedule various workloads.

User stories

Type of workloads in Uber

Why does not adopt existing framework

Use cases

Apache Spark

TensorFlow

Other cases

Architecture

Peloton manages multiple Mesos clusters

img.png

This architecture looks like the K8S Cluster API architecture, one management cluster manages multiple workload clusters. However, Cluster API is only for managing clusters, it does not provide a way to LCM/schedule tasks on multiple clusters.

Elastic resource management

There are two resource allocation mechanisms:

Resource pools

Resource pool preemption

Integrate with K8S

Peloton as K8S scheduler plugin

option-1

Peloton talks to both Mesos & K8S

Uber has chosen this option in 2019.

option-2

option-2-1

Why Uber wants to migrate to K8S

Concerns Uber has about K8S

References