Scaling Dedicated Game Servers with Kubernetes: Part 2 – Managing CPU and Memory
compoundtheory.com
compoundtheory.com
While I am aware of more than a few companies that are containerising their game servers and running them in production, I am not aware of any that are doing so on Kubernetes.
I believe Pokemon GO is using Kubernetes, which is one of the biggest multiplayer mobile games in the world at the moment.Link: https://cloudplatform.googleblog.com/2016/09/bringing-Pokemo...
I looked through comments to see if anyone had pointed it out and didn't see anything. Figured maybe you'd be interested to know that Kubernetes was used for something so massive. My bad.
It's an interesting differentiation in vocabulary between the games industry and what would be the wider technical community, in my experience - a "game server" is a simulation server when talking about it in the games industry. I should have made a note of that in the previous article.
Normally it's good idea to avoid hostNetwork as it creates quite a bit of limitations. For example, you cannot use network security policies and you cannot use deployments to assign more than 1 pod per node. To allow same application to run multiple instances on same node, you would need to create multiple deployments with different ports.
To avoid hostNetwork, essentially what is required is that you need publicly routable addresses for each pod (1:1 NAT is also possible, but it's quite a bit more complicated, e.g. you probably need create custom ingress controller which creates the 1:1 NAT mappings) which is also the reason why this doesn't really work in public cloud environments. If you can accomplish that though, you get to use all of Kubernetes' standard features on your pods.
tl;dr NAT sucks