Skip to content

nap-it/scheduler-plugins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scheduler Plugins

This repository extends the Kubernetes scheduling pipeline with custom plugins designed for service placement in edge-cloud infrastructures. Instead of treating all nodes as equivalent, it introduces decision logic that accounts for degraded performance, runtime node metrics, service dependencies, and realtime constraints.

The project is packaged to run as a dedicated secondary scheduler through Helm, making it practical to evaluate advanced policies without replacing the cluster’s default scheduler behavior. In applied deployments, this allows critical and latency-sensitive workloads to be placed with more context-aware criteria, particularly in smart-city and distributed computing environments.

Citation

Text format:

R. Rosmaninho, D. Raposo, P. Rito and S. Sargento, "Edge-Cloud Continuum Orchestration of Critical Services: A Smart-City Approach," in IEEE Transactions on Services Computing, vol. 18, no. 3, pp. 1381-1396, May-June 2025, doi: 10.1109/TSC.2025.3568251. keywords: {Resource management;Real-time systems;Computer architecture;Monitoring;Training;Quality of service;Network topology;Load management;5G mobile communication;Topology;Edge computing;smart-city;real-time;Kubernetes;MEC;5G},

BibText format:

@ARTICLE{10994362,
  author={Rosmaninho, Rodrigo and Raposo, Duarte and Rito, Pedro and Sargento, Susana},
  journal={IEEE Transactions on Services Computing}, 
  title={Edge-Cloud Continuum Orchestration of Critical Services: A Smart-City Approach}, 
  year={2025},
  volume={18},
  number={3},
  pages={1381-1396},
  keywords={Resource management;Real-time systems;Computer architecture;Monitoring;Training;Quality of service;Network topology;Load management;5G mobile communication;Topology;Edge computing;smart-city;real-time;Kubernetes;MEC;5G},
  doi={10.1109/TSC.2025.3568251}}

Important files

  • manifests/install/charts/as-a-second-scheduler/templates/rbac.yaml

    • List of API resources that the component is allowed to access
  • pkg/degradedperformance/degradedperformance.go

    • Main logic for the DegradedPerformance plugin
  • pkg/nodemetrics/nodemetrics.go

    • Main logic for the NodeMetrics plugin
  • pkg/dependencies/dependencies.go

    • Main logic for the Dependencies plugin
  • pkg/realtime/realtime.go

    • Main logic for the Realtime plugin
  • manifests/install/charts/as-a-second-scheduler/templates/configmap.yaml

    • Configuration of arguments to the Scheduler service
  • manifests/install/charts/as-a-second-scheduler/values.yaml

    • Configuration of plugins to the Scheduler service
  • cmd/scheduler/main.go

    • Instantiation of the various plugins

Basic Usage

  1. Build and push docker images
LOCAL_REGISTRY=<registry_url>/scheduler-plugins LOCAL_IMAGE=kube-scheduler:latest make local-image && docker push <registry_url>/scheduler-plugins/kube-scheduler:latest
  1. Deploy the scheduler to the cluster for the first time
helm install scheduler-plugins manifests/install/charts/as-a-second-scheduler/
  1. Update existing deployments of the scheduler
helm upgrade scheduler-plugins manifests/install/charts/as-a-second-scheduler/

License

Scheduler Plugins is under LGPL v3 and GPL v3 licenses.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages