Scaling Dedicated Game Servers on Azure Kubernetes Service
Clone or download
Latest commit 484738d Jan 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
artifacts re-ordered additionalPrinterColumns Jan 8, 2019
cmd fixes Jan 3, 2019
demos docs changes + simplenodejsudp fix Jan 8, 2019
docs docs changes + simplenodejsudp fix Jan 8, 2019
e2e typo Jan 8, 2019
pkg minor Jan 8, 2019
various fixes Jan 3, 2019
vendor fixes Jan 3, 2019
.gitignore fixes Jan 3, 2019
.travis.yml fixes Jan 3, 2019
Gopkg.lock renamed DGSAutoScaler to DGSActivePlayersAutoScaler (#63) Dec 19, 2018
Gopkg.toml fixes Jan 3, 2019
LICENSE fixes Jan 3, 2019
Makefile bump to 0.0.47 Jan 3, 2019 docs changes + simplenodejsudp fix Jan 8, 2019
golangci.yml added golangci-lint Dec 19, 2018

Go Report Card Build Status Software License PRs Welcome unofficial Google Analytics for GitHub codecov

Scaling multiplayer Dedicated Game Servers on Azure Kubernetes Service

Scaling Dedicated Game Servers (DGS) is a hard problem. They're stateful (having the bulk of player data stored in server memoty), can't be explicitly shut down (since players might be still enjoying their game) and, as a rule of thumb, their connection with the players must be of minimal latency, especially for real-time multiplayer games.

This repository aims to provide a solution/guidance/building blocks for managing containerized dedicated game servers using the Kubernetes orchestrator on Azure using the managed Azure Kubernetes Service (AKS). However, you could probably use parts of the project to scale memory-stateful workloads.

~ This is currently a work in progress. Not recommended for production use ~




In order to demonstrate this project, we've built a simple "echo" UDP server in Node.js and we've also adapted the OpenArena open source game so it can work with our solution. Both Dockerfiles are stored in the demos folder whereas the corresponding Kubernetes deployment YAML files are located in the artifacts/examples folder.

Docker Hub Images

Images used for this project are hosted on Docker Hub:


To Brian Peek and Andreas Pohl for the countless discussions we had (and still have!) about scaling DGSs. Moreover, I'd like to express my gratitude to the awesome people on #sig-api-machinery channel on Kubernetes Slack for answering a lot of my questions during the development of this project.

This is not an official Microsoft product.