Kubernetes Optimize Service Selection

Daniel Bachar
Israeli Networking Day,


With the advent of cloud and container technologies, enterprises develop applications through microservices architecture. This design pattern is mostly managed by orchestration systems (e.g. Kubernetes), that groups the microservices into clusters. Current deployments (e.g., Submariner) provide the ability to connect multiple clusters such that various microservices can communicate with each other. In such a multi-cluster setting, copies of the same microservice may be deployed in different geo-locations, each with different cost and latency penalties. Yet, current service selection and load balancing mechanisms do not take into account these locations and corresponding penalties. We present KOSS, a novel solution for optimizing the service selection, given a certain microservice deployment among the clusters in the system. Our solution transparently utilizes the current service discovery process. Our simulations show a significant reduction of the outbound traffic cost by up to 29% and the latency by up to 85% when comparing our solution to the currently deployed service selection mechanisms(e.g. Submariner’s).