Deploy Rok Scheduler¶
This guide will walk you through deploying the Rok Scheduler, along with the Rok Scheduler Webhook.
If you have already deployed the Rok Scheduler for your Kubernetes version, meaning you are upgrading from EKF 1.5-rc1 or later, proceed to the Verify section.
As of Kubernetes 1.21, the upstream
kube-scheduler supports capacity
tracking, so that it takes into consideration the available free storage
capacity when scheduling a Pod that requests PVCs. However, the feature is in
beta version, and it comes with important limitations that need to be
To overcome these limitations Rok ships with its own custom scheduler, which
supports storage capacity tracking for Kubernetes 1.19, 1.20, and 1.21. In
order for a Pod to be scheduled using the Rok Scheduler, the
.spec.schedulerName field of the Pod must be set to
have automated this process by deploying the Rok Scheduler Webhook, which
watches for new Pods in specific namespaces and mutates them by adding the
What You’ll Need¶
- An upgraded management environment.
- An existing Kubernetes cluster.
- An upgraded Rok 1.5.3 deployment.
- Your local clone of the Arrikto GitOps repository.
- Arrikto manifests for EKF version 1.5.3.
- Access to Arrikto’s Private Registry.
Go to your GitOps repository, inside your
rok-toolsmanagement environment:root@rok-tools:~# cd ~/ops/deployments
dockerconfig.jsonto the following location:root@rok-tools:~/ops/deployments# cp deploy/dockerconfig.json \ > rok/rok-scheduler-webhook/overlays/deploy/secrets/dockerconfig.json
Add the Rok Scheduler overlay that corresponds to your Kubernetes version. Edit
baseas the base overlay:resources: #- ../../base - ../k8s-1.19
Commit your changes:root@rok-tools:~/ops/deployments# git commit -am "Deploy Rok Scheduler"
Deploy the Rok Scheduler:root@rok-tools:~/ops/deployments# rok-deploy --apply rok/rok-scheduler/overlays/deploy
Deploy the Rok Scheduler Webhook:root@rok-tools:~/ops/deployments# rok-deploy --apply rok/rok-scheduler-webhook/overlays/deploy
Verify that the Rok Scheduler is up and running. Verify that field READY is 1/1:root@rok-tools:~# kubectl get deploy -n rok-system rok-scheduler NAME READY AGE rok-scheduler 1/1 1m
Verify that the Rok Scheduler Webhook is up and running. Verify that field READY is 1/1:root@rok-tools:~# kubectl get deploy -n rok-system rok-scheduler-webhook NAME READY AGE rok-scheduler-webhook 1/1 1m
The next step is to upgrade Kubeflow.