Load Balancing Algorithms in Kubernetes
No Thumbnail Available
Files
Lintula_Heikki_2024.pdf (1.91 MB) (opens in new window)
Aalto login required (access for Aalto Staff only).
URL
Journal Title
Journal ISSN
Volume Title
Sähkötekniikan korkeakoulu |
Bachelor's thesis
Electronic archive copy is available locally at the Harald Herlin Learning Centre. The staff of Aalto University has access to the electronic bachelor's theses by logging into Aaltodoc with their personal Aalto user ID. Read more about the availability of the bachelor's theses.
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2024-05-26
Department
Major/Subject
Informaatioteknologia
Mcode
ELEC3015
Degree programme
Sähkötekniikan kandidaattiohjelma
Language
en
Pages
29
Series
Abstract
Operating system virtualization improves the efficiency of virtual machines that are used in cloud computing. Virtualized computers allow mobility across environments through container technology and are much more lightweight due to not needing their own operating system. Kubernetes, an open-source system that allows automation, scaling and management of containers has become the leading platform for container orchestration. Inefficient load balancing for Kubernetes creates bottlenecks which lead to inefficient resource utilization. These inefficiencies cause service failures, and security risks. Kubernetes offers a built-in load balancing system, but varying conditions and heterogeneous cluster resources pose challenges especially in real-time applications. This literature review seeks an optimal approach for designing and implementing a load balancing system in Kubernetes. The work focuses on solving configuration, storage, and scalability issues and enhancing security through optimized algorithms. The goal is to develop methods and practices that enhance Kubernetes environment from a load balancing perspective. The comparison is done through dynamic and static algorithms. The study investigates load balancing of external cluster traffic to nodes as well as internal load balancing to pods. Kubernetes' recent popularity has drawn attention by many companies to rely on cloud services without upfront investment, maintenance overhead, or deep architectural understanding. However, issues with ready-made solutions include dependency on providers and limited integration options. Local solutions have shown promise with customized load balancing systems, improving performance and integration possibilities, especially through dynamic algorithms. Measuring results in test environments alone may not suffice due to load variations, priority levels, and heterogeneous processing units. Identified areas for improvement include scalability, system stability in varying conditions, and security risks from misconfigured installations. The challenges and solutions proposed offer promising results for areas such as 5G networks and large-scale data processing applications such as machine learning implementations.Käyttöjärjestelmän virtualisointi mahdollistaa pilvilaskennassa käytettyjen virtuaalikoneiden tehokkuuden parantamiseen ja eri ympäristöissä liikkumisen konttiteknologian myötä. Avoimeen lähdekoodiin perustuva Kubernetes-järjestelmä mahdollistaa konttien automatisoinnin, skaalauksen ja hallinnan. Epätehokas kuormantasaus kontteja pyörittäville laitteille aiheuttaa pullonkaulan myötä resurssien tehotonta käyttöä, palveluiden kaatumista ja turvallisuusriskejä. Kubernetes tarjoaa yksinkertaisen sisäänrakennetun kuormantasauusjärjestelmän, mutta vaihtelevat olosuhteet sekä klustereiden heterogeeniset resurssit aiheuttavat haasteita etenkin reaaliaikaisissa sovelluksissa. Olemassa olevien tutkimusten painopisteenä ovat tehokkuuden parantaminen ja palvelun tason nostaminen, joita tutkitaan etenkin keskusprosessorin ja muistin käyttöasteella, vasteajan perusteella ja systeemien skaalautuvuudella. Tässä kirjallisuustutkimuksessa etsitään optimaalista lähestymistapaa kuormantasausjärjestelmän suunnitteluun ja toteutukseen Kubernetes-ympäristössä. Tutkimuksen painopisteenä ovat konfiguraatioiden, tallennus- ja skaalautuvuusongelmien ratkaiseminen sekä tietoturvan vahvistaminen optimoitujen algoritmien myötä. Työn tavoitteena on kehittää menetelmiä ja käytäntöjä, jotka parantavat Kubernetes-ympäristöä kuormantasauksen näkökulmasta. Työ tutkii erilaisia lähestymistapoja kuormantasaukseen staattisten ja dynaamisten algoritmien avulla vertaillen niitä yksinkertaisempiin järjestelmiin kirjallisuustutkimuksen myötä. Työ vertailee tehokkuutta, palvelun laadun tasoa, integraatiomahdollisuuksia, sekä arvioi turvallisuutta järjestelmän arkkitehtuurin ja käytänteiden perusteella. Tämä työ tutkii klusterin ulkopuolelta tulevan kuorman tasausta klusterin eri yksiköille sekä itse yksikön sisällä tapahtuvaa kuormantasausta kontteja pyörittäville kapseleille. Viime vuosien voimakkaan Kubernetes suosion myötä monet yritykset ovat tukeutuneet pilvipalvelutarjoajien tuottamiin palveluihin ilman alkuinvestointia, tarvetta hallinnoida ylläpitoa tai syvempää ymmärrystä arkkitehtuurista. Ongelmana pilvipalvelutarjoajien ratkaisuissa on sitoutuminen pilvipalveluntarjoajaan, myöhempi riippuvuus palveluntarjoajasta ja rajoitetut integraatiomahdollisuudet. Pilvipalveluiden tarjoama kuormantasaus on myös yksinkertaista eikä klusteri ole siirrettävissä palveluntarjoajalta toiselle. Kirjallisuustutkimuksen perusteella valtaosa paikallisissa ympäristöissä toteutetuista järjestelmistä ovat osoittaneet lupaavaa suorituskyvyn kehitystä ja integraatiomahdollisuuksia kustomoitujen kuormantasausjärjestelmien myötä. Dynaamisten algoritmien myötä energiankulutus, palvelun laatu ja kokonaishinta pilvipalveluntarjoajiin verrattaessa on kehittynyt huomattavasti. Testiympäristöissä saadut mittaustulokset eivät kuitenkaan yksinomaan ole riittäviä johtopäätösten vetämiseen parhaasta mahdollisesta ratkaisusta. Tämä johtuu merkittävimmin kuormitustasojen vaihtelusta, kuorman prioriteettijärjestyksestä ja etenkin reunalaskennassa kohdattavista heterogeenisistä prosessointiyksiköistä sekä muistin käytön optimoinnista. Työssä havaittuja kehityskohteita ovat etenkin valmiin järjestelmän dynaaminen skaalautuvuus vaihtelevissa olosuhteissa, systeemin stabiliteetti ja asennusvaiheen virheellisten konfigurointien aiheuttamat turvallisuusriskit. Tärkeä tutkimuskohde on etenkin reunalaskentaympäristöt kuten 5G-verkot ja suuret datan prosessoinnin käyttökohteet kuten koneoppimisen implementaatiot.Description
Supervisor
Aalto, SamuliThesis advisor
Saranpää, TommiKeywords
load balancing, algorithm, kubernetes