Kubernetes Optimized Service Discovery Across Clusters
This project’s goal is to improve the communication cost and performance in a multi-cluster deployment over Kubernetes.
While the Submariner project provides an ability to connect multiple Kubernetes clusters, its current load balancing technique does not take into account the cost and latency penalties that cross-cluster communication presents. However, as the number of application setups across multiple clusters and different clouds is increasing, a need to optimize these communication patterns is essential.
This research provides a model of the service selection problem and offers a management layer above Submariner service discovery to optimize it. This layer supports, through control plane operations, a generic cost function, which can represent different metrics one wishes to improve (e.g., traffic cost, latency, response time, etc.). The data-plane distributes cross-cluster requests in a weighted round-robin manner, using Lighthouse, Submariner’s DNS plugin which hosts a Load Balancing module.
Thus, the interface between control and data planes is these weights, which can be updated dynamically as traffic patterns or traffic costs change.
Our simulations show an improvement in latency and total round trip time of up to ~64% and a reduction of egress traffic cost by up to ~72%.
- Joining Kubernetes Clusters with Submariner Mike Kolesnik/Red Hat Daniel Bachar/Reichman University (HEB)
- Joining Kubernetes Clusters with Submariner Mike Kolesnik/Red Hat Daniel Bachar/Reichman University (ENG)
- Kubernetes Service Selection Optimization & Fine-grained Network Telemetry in Programmable Switches