Kubernetes Custom Resources and Controllers for Managing Game Servers
Laen...
Kuupäev
Autorid
Ajakirja pealkiri
Ajakirja ISSN
Köite pealkiri
Kirjastaja
Tartu Ülikool
Abstrakt
Modern multiplayer servers in Kubernetes face many challenges, including preventing deletion until the state is saved. This thesis presents the design and implementation of a custom Kubernetes operator for managing multiplayer game server lifecycles. The thesis introduces four custom resources—Server, Fleet, GameType, and GameAutoscaler to enable declarative control over server scaling and termination. A core focus is ensuring predictable and graceful shutdowns, with deep integration between Kubernetes resource management and in-game server logic, achieved through a sidecar component and RESTful interfaces. The system supports advanced orchestration features, including rolling updates, dynamic scaling via external signals, and finalizer-based deletion protection. Validation confirmed that the operator fulfills all design goals, showing reliability, responsiveness, and no significant performance overhead.
Kubernetesel jooksvad mänguserverid seisavad silmitsi paljude väljakutsetega, millest üks on kustutamise takistamine kuni olek on salvestatud. See lõputöö tegeleb kohandatud Kubernetese operaatori disaini ja rakendamisega mänguserverite elutsüklite haldamiseks. Lõputöö tutvustab nelja kohandatud ressurssi: Server, Fleet, GameType ja GameAutoscaler, et võimaldada deklaratiivset kontrolli serveri skaleerimise ja sulgemise üle. Põhirõhk on sujuvate sulgemiste tagamisel, pakkudes integratsiooni Kubernetese ressursihalduse ja mängusisese serveri loogika vahel, mis saavutatakse Kubernetese kõrvalkäru ja RESTful liideste kaudu. Süsteem toetab täiustatud orkestreerimisfunktsioone, sealhulgas jooksvaid värskendusi, skaleerimist väliste signaalide kaudu ja finaliseerijal põhinevat kustutuskaitset. Valideerimine kinnitas, et operaator täidab kõiki disainieesmärke, näidates üles töökindlust, reageerimisvõimet ja olulist jõudluskulu puudumist.
Kubernetesel jooksvad mänguserverid seisavad silmitsi paljude väljakutsetega, millest üks on kustutamise takistamine kuni olek on salvestatud. See lõputöö tegeleb kohandatud Kubernetese operaatori disaini ja rakendamisega mänguserverite elutsüklite haldamiseks. Lõputöö tutvustab nelja kohandatud ressurssi: Server, Fleet, GameType ja GameAutoscaler, et võimaldada deklaratiivset kontrolli serveri skaleerimise ja sulgemise üle. Põhirõhk on sujuvate sulgemiste tagamisel, pakkudes integratsiooni Kubernetese ressursihalduse ja mängusisese serveri loogika vahel, mis saavutatakse Kubernetese kõrvalkäru ja RESTful liideste kaudu. Süsteem toetab täiustatud orkestreerimisfunktsioone, sealhulgas jooksvaid värskendusi, skaleerimist väliste signaalide kaudu ja finaliseerijal põhinevat kustutuskaitset. Valideerimine kinnitas, et operaator täidab kõiki disainieesmärke, näidates üles töökindlust, reageerimisvõimet ja olulist jõudluskulu puudumist.
Kirjeldus
Märksõnad
Kubernetes, game server, custom resource, operator, controller