Skip to content

nap-it/load-balancer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Load Balancer

General Description

This repository contains the Custom Load Balancer developed to overwrite the operation of Kubernetes default load balancing mechanism. Kubernetes creates the necessary Iptables network rules through the Kube-Proxy that runs on each cluster node in the appropriate chains and tables to ensure that the user’s requests reach their correct destination. However, the default Kube-Proxy load-balancing algorithm ensures that each replica receives the same amount of network requests as the other ones. In edge road environments, such logic is inadequate because of the dynamic nature of the ecosystem, and factors such as user proximity to the replicas, user mobility, service, and network performance are ignored. To address this issue, this custom Load Balancer service desgined. This service runs in each node alongside the Kube-Proxy, and periodically iterates over the list of Service resources to overwrite the probabilities of each replica to receive a request, taking into account the service-specific metrics and the network latency reflected on the cluster.

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}}

Basic usage

  1. Build the executable
go build
mkdir -p /services
cp load-balancer /services/load-balancer
  1. Run the service
cp services/load-balancer.service /etc/systemd/system
systemctl enable load-balancer
systemctl start load-balancer

Important note: prometheus_nodeport.yml must be declared in the cluster first

License

Load Balancer 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