Yoda-Scheduler
Yoda is a kubernetes scheduler based on scheduling-framework. By cooperation with SCV Sniffer, it is schedules tasks according to GPU metrics.
Get Started
-
Make sure kubernetes cluster version is
1.17+
and SCV sniffer is deployed in kubernetes cluster: SCV: Get-Started -
Deploy Yoda Scheduler:
kubectl apply -f https://raw.githubusercontent.com/NJUPT-ISL/Yoda-Scheduler/master/deploy/yoda-scheduler.yaml
- Check the Yoda Scheduler Status:
kubectl get pods -n kube-system
Deploy a Pod using Yoda
- Create a pod which needs 1000MB GPU Memory:
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
scv/memory: "1000"
spec:
schedulerName: yoda-scheduler
containers:
- image: nginx
name: nginx
- Create a pod which needs 2 GPU:
apiVersion: v1
kind: Pod
metadata:
name: test2
labels:
scv/number: "2"
spec:
schedulerName: yoda-scheduler
containers:
- image: nginx
name: nginx
- Create a pod that requires a high-performance GPU:
apiVersion: v1
kind: Pod
metadata:
name: test3
labels:
scv/clock: "5705"
scv/memory: "8000"
spec:
schedulerName: yoda-scheduler
containers:
- image: nginx
name: nginx
Check the sample pod Status:
kubectl get pods
How to develop Yoda
- Compile yoda-scheduler:
make local
- Build the docker image:
make build
- Clean the Build file
make clean