Annotation Based Scheduling
Overview
Nova currently supports three ways to schedule a workload - annotation-based scheduling, policy based scheduling, and smart scheduling based on resource availability
Annotation Based Scheduling Testing Example
In annotation-based scheduling, you specify an annotation in the workload manifest. The annotation tells Nova which workload cluster should run the workload.
- If you used different names for your clusters, open
./sample-workloads/nginx.yaml
and edit annotationnova.elotl.co/cluster: my-workload-cluster-1
by replacingmy-workload-cluster-1
with name of one of your workload clusters. - Run
KUBECONFIG=./nova-installer-output/nova-kubeconfig kubectl apply -f sample-workloads/nginx.yaml
- Run
KUBECONFIG=./nova-installer-output/nova-kubeconfig kubectl get deployments
should show the nginx deployment is up and running. - Now you should be able to see there are two pods running in your workload cluster.
- Note that there will be no pod running in the nova control plane cluster -
KUBECONFIG=./nova-installer-output/nova-kubeconfig kubectl get pods
should show no pod.
Updating/Deleting through nova
You can also modify or delete a workload through Nova and nova will automatically update the corresponding objects in the workload cluster. Use the nginx deployment for the example:
- Run
KUBECONFIG=./nova-installer-output/nova-kubeconfig kubectl edit deployment nginx
, and change the replica from 2 to 3. - In your workload cluster, there should be 3 nginx pods running.
- Run
KUBECONFIG=./nova-installer-output/nova-kubeconfig kubectl get deployments
, and you should be able to see 3 replicas running.
Deleting a workload in nova will result in the workload deleted from the workload cluster too:
- Run
KUBECONFIG=./nova-installer-output/nova-kubeconfig kubectl delete deployment nginx
. - You should be able to see the nginx deployment deleted both from nova control plane and your workload cluster.