wangchen615 / trimaran-kubecon24

The demo scripts for Trimaran schedulers presented at KubeCon EU 2024 at Paris.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Trimaran KubeCon 2024 EU demo

The repo has all scripts/yamls/dashboards for Trimaran scheduler demo presented at KubeCon 2024 EU in Paris.

Prerequisites

  1. 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
  1. Configure your own image repo and build the image.
export REGISTRY=quay.io/chenw615
export BUILDER=podman
make local-image
  1. 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

All Scheduler Plugin Demo

For all scheduler plugins, please go to the corresponding folder and follow the following steps.

  1. 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
  1. Define networkpolicy for trimaran namespace and scheduler deployment to access Prometheus
kubectl create -f trimaran-networkpolicy.yaml
  1. 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
  1. 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
  1. Deploy the testing pod and specify the trimaran-scheduler as the pod's scheduler.
kubectl create -f test-pod.yaml

Demo Videos:

  1. TargetLoadPacking
  2. LoadVariationRiskBalancing
  3. LowRiskOverCommitment

About

The demo scripts for Trimaran schedulers presented at KubeCon EU 2024 at Paris.


Languages

Language:Shell 100.0%