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.
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}}
- Build the executable
go build
mkdir -p /services
cp load-balancer /services/load-balancer- Run the service
cp services/load-balancer.service /etc/systemd/system
systemctl enable load-balancer
systemctl start load-balancerImportant note: prometheus_nodeport.yml must be declared in the cluster first