This Scheduler works (and is tested) with Kubernetes 1.5
For the dependency managment was (dep)[https://github.com/golang/dep] used.
$ dep ensure -update
To build the binary (for linux):
$ GOOS=linux go build -o scheduler -a --ldflags '-extldflags "-static" -s -w' -tags netgo -installsuffix netgo .
to build a Docker container:
$ VERSION=0.0.2
$ docker build -t johscheuer/data-aware-scheduler:$VERSION .
$ docker push johscheuer/data-aware-scheduler:$VERSION
- Running Quobyte Cluster (you can use this tool for a quick start)
- Running Kubernetes Cluster
Adjust config deployments/scheduler_config.yaml
to your need:
kubectl create --namespace=kube-system -f deployments/scheduler_config.yaml
kubectl create --namespace=kube-system -f deployments/scheduler.yaml
At the moment you need a local mount of Quobyte with xattr enabled (-o user_xattr
). As soon as the same information is available over the API this requierement drops.
Copy the example configuration and adjust it to your needs:
copy config.yaml.example config.yaml
Now start the Scheduler:
./scheduler --config=./config.yaml