apiVersion: v1 kind: Pod metadata: name: custom-scheduler labels: name: multischeduler-example spec: schedulerName: custom-scheduler (1) containers: - name: pod-with-second-annotation-container image: docker.io/ocpqe/hello-pod
You can run multiple, custom schedulers alongside the default scheduler and configure which scheduler to use for each pods.
To schedule a given pod using a specific scheduler, specify the name of the scheduler in that pod specification.
The steps below are the general process for deploying a scheduler into your cluster.
Information on how to create/deploy a scheduler is outside the scope of this document. For an example, see plugin/pkg/scheduler in the Kubernetes source directory. |
Create or edit a pod configuration and specify the name of the scheduler with the schedulerName
parameter. The name must be unique.
apiVersion: v1 kind: Pod metadata: name: custom-scheduler labels: name: multischeduler-example spec: schedulerName: custom-scheduler (1) containers: - name: pod-with-second-annotation-container image: docker.io/ocpqe/hello-pod
1 | The name of the scheduler to use. When no scheduler name is supplied, the pod is automatically scheduled using the default scheduler. |
Run the following command to create the pod:
$ oc create -f scheduler.yaml
Run the following command to check that the pod was created with the custom scheduler:
$ oc get pod custom-scheduler -o yaml
Run the following command to check the status of the pod:
$ oc get pod
The pod should not be running.
NAME READY STATUS RESTARTS AGE custom-scheduler 0/1 Pending 0 2m
Deploy the custom scheduler.
Run the following command to check the status of the pod:
$ oc get pod
The pod should be running.
NAME READY STATUS RESTARTS AGE custom-scheduler 1/1 Running 0 4m
Run the following command to check that the scheduler was used:
$ oc describe pod custom-scheduler
The name of the scheduler is listed, as shown in the following truncated output:
[...] Events: FirstSeen LastSeen Count From SubObjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 1m 1m 1 my-scheduler Normal Scheduled Successfully assigned custom-scheduler to <$node1> [...]