Reliable Session Handling in Distributed Environments - DIRE
Author
Bombitz, Bálint
Term
4. term
Education
Publication year
2025
Submitted on
2025-06-12
Abstract
Denne afhandling adresserer, hvordan sessionbaserede applikationer kan forblive pålidelige i distribuerede miljøer, hvor Kubernetes godt nok giver skalerbarhed og fejltolerance, men ikke indbygget runtime‑redundans. Arbejdet introducerer DIRE (Distributed Redundancy), en universel Kubernetes‑udvidelse, der sigter mod at holde igangværende sessioner i live, selv hvis den oprindelige backend fejler, uden at applikationer selv skal bryde deres abstraktioner for at implementere redundans. Afhandlingen giver en tilgængelig baggrund for containere, Kubernetes‑arkitektur, brugerdefinerede ressourcer og controllere, netværk med fokus på TCP‑strømme, proxy‑udfordringer og UDP‑begrænsninger, samt overvejer behovet for deterministisk adfærd (fx via eksterne kilder til ægte tilfældighed) og principper fra parallel databehandling. Som kontekst anvendes K3S‑distributionen. De første eksperimenter (med værktøjer som iperf3 og vmstat) peger på en omkostning i form af lavere netværksgennemstrømning under høj belastning, men viser også, at session‑ og forsinkelseskritiske applikationer kan fortsætte uden afbrydelse, når den session‑initierende backend fejler. Resultaterne er foreløbige, men indikerer, at DIRE kan tilbyde praktisk runtime‑redundans i Kubernetes med et afbalanceret trade‑off mellem robusthed og ydeevne.
This thesis examines how session‑based applications can remain reliable in distributed environments where Kubernetes provides scalability and fault tolerance but lacks built‑in runtime redundancy. It introduces DIRE (Distributed Redundancy), a universal Kubernetes extension intended to keep ongoing sessions alive when the original backend fails, without forcing applications to break their abstractions to implement redundancy. The work offers accessible background on containers, Kubernetes architecture, custom resources and controllers, networking with an emphasis on TCP streams, proxying challenges and UDP limitations, and discusses the need for deterministic behavior (e.g., via external sources of true randomness) alongside principles from parallel computing. K3S is used as the contextual Kubernetes distribution. Early experiments, using tools such as iperf3 and vmstat, indicate a throughput penalty under heavy load, but also show that session‑ and delay‑critical applications can continue without failing when the session‑initiating backend goes down. These preliminary results suggest that DIRE can provide practical runtime redundancy in Kubernetes, trading some performance for improved session continuity.
[This abstract was generated with the help of AI]
Documents
