Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose Game Servers via a cloud Load Balancer #104

Closed
dgkanatsios opened this issue Dec 9, 2021 · 2 comments
Closed

Expose Game Servers via a cloud Load Balancer #104

dgkanatsios opened this issue Dec 9, 2021 · 2 comments
Labels
enhancement New feature or request help wanted Extra attention is needed
Milestone

Comments

@dgkanatsios
Copy link
Collaborator

In cloud environments, it might be unrealistic to have a Public IP per Node. For these scenarios, we should examine using a vendor-specific Load Balancer with a Public IP that would act as a reverse proxy-gateway for the game server ports. Rough design includes an additional controller created as a separate deployment that would:

  • set up a Kubernetes watch to all GameServer CR instances
  • every time there is a new one, it would create a mapping to the LB
  • every time one is deleted, it would delete the mapping

On Azure specifically, we'd need to have this controller having an Azure identity (either with a service principal or preferably with a managed identity) and do ARM operations to the LB.

@dgkanatsios dgkanatsios added enhancement New feature or request help wanted Extra attention is needed labels Dec 9, 2021
@dgkanatsios
Copy link
Collaborator Author

One other option which could also be more "cloud portable" is to use an Ingress resource. That would help in scenarios where we need SSL termination, like WebGL servers.

@dgkanatsios
Copy link
Collaborator Author

Closing as we created a simple approach with Traefik/Kubernetes Ingress here: https://github.com/dgkanatsios/thundernetescontrib/tree/main/traefikingress

Works great for HTTP/HTTPS (like WebGL) game servers.

@dgkanatsios dgkanatsios added this to the 0.3.0 milestone Mar 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant