Sajjad Rad
Jun 19, 2023

--

The game nodes are some regular nodes in K8S clusters with a specific label. You can use node affinity or taint/toleration to schedule the game servers on the game nodes and also prevent scheduling other services (like game manager or database) on the game nodes.

You can use Terraform to create these resources on the cloud providers.

For autoscaling the game nodes (scale up the nodes if you get more traffic and vice versa), you can use the cluster autoscale feature on some cloud providers.

There are more details about the deployment part here:

https://theredrad.medium.com/designing-a-distributed-system-for-an-online-multiplayer-game-deployment-part-7-a41ab4a85fb4

Also, I developed a small service to scale up and down the game nodes depending on the total games. More info:

https://medium.com/@theredrad/kubernetes-scaler-for-dedicated-stateful-servers-8d4231ce85c7

Please don't hesitate to ask more questions.

--

--