MCLB: Multi-Cluster Load Balancer - Hosting-Agnostic, Kubernetes-Controlled, Self-Service Load Balancing for Hybrid Cloud

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Major/Subject

Mcode

Language

en

Pages

99

Series

Abstract

Today, a notable share of hosting is conducted within cloud providers' environments. The tools and solutions offered by major cloud providers are often highly sophisticated and user-friendly, making it easier to address complex challenges. For users operating entirely outside the cloud or in a hybrid cloud mode, effectively utilizing cloud provider tools is often challenging. This challenge arises partly because cloud providers have strong incentives to encourage dependencies on their environments, promoting vendor lock-in. The purpose of this thesis is to address the challenges associated with serving traffic from multiple Kubernetes clusters on a self-service basis, particularly in dedicated hosting environments. This thesis aims to propose an approach for multi-cluster load balancing that is able to improve system resiliency and increase development velocity for organizations running Kubernetes on hybrid cloud, or on dedicated hosting. This thesis focuses on developing a self-service solution to enable traffic routing across multiple Kubernetes clusters in a hybrid setup, aiming to seamlessly integrate dedicated hosting and cloud provider environments. We evaluate multiple service mesh solutions against requirements deduced from scenarios and use cases, and conclude that none of the candidates satisfy our requirements, thus we take it on to develop a custom solution. This thesis proposes MCLB, a hosting agnostic solution, that allows external load balancers be controlled through Kubernetes on a self-service basis, while avoiding the operational overhead of a complete service mesh solution. We benchmark MCLB against authentic scenarios to demonstrate the validity of the proposed solution, and its fulfilment of the specified requirements. Furthermore, we evaluate MCLB under realistic production loads to showcase its performance and to identify areas for further improvements. We demonstrate that using MCLB, it is possible to achieve multi-cluster Kubernetes, where load balancer configuration is configured on a self-service basis through Kubernetes while keeping memory overhead minimal. Furthermore MCLB allows remaining hosting agnostic, thus avoiding cloud vendor lock-in.

Nykyään huomattava osa isännöinnistä (hosting) tapahtuu pilvipalveluntarjoajien ympäristöissä. Pilvipalveluntarjoajien tarjoamat työkalut ovat usein erittäin kehittyneitä ja käyttäjäystävällisiä, helpottaen monimutkaisten ongelmien ratkaisua. Pilvipalveluntarjoajien kehittämien työkalujen käyttäminen voi olla haastavaa niille, jotka toimivat täysin pilviympäristöjen ulkopuolella tai hybridipilvessä. Osittain tämä johtuu siitä, että pilvipalveluntarjoajalla on vahvat insentiivit luoda keskinäisriippuvaisuuksia ympäristöihinsä, lisäten toimittajariippuvuutta. Tämän diplomityön tarkoitus on tarjota ratkaisuja itsepalveluperiaatteella toimivan usean Kubernetes klusterin kuorman tasaamiseen (load balancing), keskittyen erityisesti dedikoituihin isännöintiympäristöihin. Diplomityön tavoite on ehdottaa lähestymistapaa usean klusterin kuorman tasaamiseen, jolla järjestelmän resilienssiä ja kehittäjien kehitysnopeutta voidaan parantaa organisaatioissa, jotka käyttävät Kubernetesta dedikoiduissa isännöintiympäristöissä tai hybridipilvessä. Tämä diplomityö keskittyy itsepalveluperiaatteella toimivan ratkaisun kehittämiseen, jolla liikennettä voidaan ohjata useaan hybridipilvessä tai dedikoidussa isännöintiympäristössä toimivaan Kubernetekseen. Arvioimme useita palveluverkkoja (service mesh) skenaarioista ja käyttötapauksista johdettuja vaatimuksia vasten. Toteamme, että yksikään arvioitu palveluverkko ei vastaa täysin vaatimuksiimme, joten kehitämme oman ratkaisun. Tämä diplomityö ehdottaa MCLB:tä, isännöintiriippumatonta ratkaisua, joka mahdollistaa ulkoisten kuorman tasaajien konfiguroinnin itsepalveluperiaatteella käyttäen Kubernetesta, ilman monimutkaisia palveluverkkoratkaisuja. Vertailemme MCLB:tä autenttisiin skenaarioihin osoittaaksemme ratkaisun toimivuuden ja sille asetettujen vaatimusten täyttymisen. Testaamme MCLB:n suorituskykyä tuotantokuormaa vastaavilla testeillä osoittaaksemme sen toimivuuden ja tunnistaaksemme lisäparannuksia vaativat osat. Osoitamme, että MCLB:tä käyttäen on mahdollista toteuttaa usean klusterin Kubernetes-ratkaisu, jossa ulkoiset kuorman tasaajat konfiguroidaan itsepalveluperiaatteella Kubernetesin kautta. MCLB mahdollistaa matalan muistin kulutuksen sekä isännöintiriippumattomuuden, joka vähentää toimittajariippuvuutta.

Description

Supervisor

Truong, Linh

Thesis advisor

Kuusela, Juha

Other note

Citation