The repo has all scripts/yamls/dashboards for Trimaran scheduler demo presented at KubeCon 2024 EU in Paris.
- Build the trimaran plugin images from the latest scheduler-plugin repo.
cd $GOPATH/src/sigs.k8s.io/
git clone https://github.com/kubernetes-sigs/scheduler-plugins.git
cd scheduler-plugins
- Configure your own image repo and build the image.
export REGISTRY=quay.io/chenw615
export BUILDER=podman
make local-image
- Push the images to your own repo for testing.
docker push quay.io/<user_id>/kube-scheduler:latest
docker push quay.io/<user_id>/controller:latest
For all scheduler plugins, please go to the corresponding folder and follow the following steps.
- Make sure you create the namespaces to run the Trimaran scheduler and also the testing pods.
kubectl create ns trimaran
kubectl label namespaces trimaran name=trimaran # Label the namespace with trimaran so the networkpolicy can configure it accessing prometheus
kubectl create ns trimaran-test
- Define networkpolicy for trimaran namespace and scheduler deployment to access Prometheus
kubectl create -f trimaran-networkpolicy.yaml
- Deploy the scheduler that only enables the different plugins, for example, to deploy a secondary scheduler that enables TargetLoadPacking plugin we can do the following.
cd targetloadpacking
kubectl create -f targetloadpacking.yaml
- Deploy the background workload on all 3 nodes. Please change the
nodeName
in the corresponding background workload pod Spec to your own cluster's nodes' names. Let the background workload run a while so the usage behavior are caught up by the monitoring stack.
kubectl create -f worker1-background.yaml
kubectl create -f worker2-background.yaml
kubectl create -f worker3-background.yaml
- Deploy the testing pod and specify the
trimaran-scheduler
as the pod's scheduler.
kubectl create -f test-pod.yaml