Global Scheduler is an open source global scheduling management system designed for large scale clouds. It helps coordinate resource consumption among multi cloud data centers and edge sites, and intelligently place workloads on the best DC or edge site based on traffic patterns and global resource availability It is evolved from the open source Kubernetes v1.15 codebase with some fundamental improvements.
Global Scheduler aims to address key scheduling challenges of compute units (e.g. VM and containers) across a large number of DC clouds and edge clouds---system scalability, resource sharing, resource efficiency, scheduling rate/latency, application-performance-aware scheduling, etc.
Global Scheduler achieves a scalable architecture by partitioning and replicating system components, including API Server, storage, scheduler, etc. The eventual goal of Global Scheduler is to support 100K clusters with a single cross-AZ control plane.
Global Scheduler implements a multi-dimension optimization model based scheduling algorithm.
The Global Scheduler Monitors each application’s input flow characteristics and automatically scale out/in VMs/Containers or migrate the hosting VMs/Containers to a better geo-location to meet the application QOS requirement
To build Global Scheduler, you just need to clone the repo and run "make":
Note: you need to have a working Go 1.12 environment. Go 1.13 is not supported yet.
mkdir -p $GOPATH/src/github.com
cd $GOPATH/src/github.com
git clone https://github.com/futurewei-cloud/global-scheduler
cd global-scheduler
make
To run a single-node Global Scheduler cluster in your local development box:
cd $GOPATH/src/github.com/global-scheduler
hack/global-scheduler-up.sh
The design document folder contains the detailed design of already implemented features, and also some thoughts for planned features.
The user guide folder provides information about these features from users' perspective.
To report a problem, please create an issue in the project repo.
To ask a question, here is the invitation to join Arktos slack channels. You can also post in the email group, or create an issue of question type in the repo.