Managed Clusters

Learn about Managed Clusters and get started quickly with custom backend solutions.

✔️ Introduction

Managed Clusters make hosting self-managed game services and game backend easy and fast. You prepare the service image and we provide a high-availability, resilient cloud environment to run them:

Private clusters ensure your services have dedicated compute to serve your players 24/7.

We currently offer 3 private cluster tiers to cater to everybody’s needs:

Tier
Hobbyist Tier
Studio Tier
Enterprise Tier

Best Suited For

enthusiasts, solo developers

commercial releases

high-traffic launches

Resources

1 vCPU + 2GB RAM

6 vCPU + 12GB RAM

18 vCPU + 48GB RAM

Redundancy

1x virtual node

3x virtual nodes

3x virtual nodes

Rate Limit (req/s)

200

750

2,000

Price, hourly

$0.0312

$0.146

$0.548

Price, 30 days (nonstop usage)

$22.464

$105.12

$394.56

Our cluster machines use AMD/Intel CPUs with clock speed 2.4 - 3.2 GHz. Reach out on Community Discord to coordinate load tests and to ensure your server has sufficient resources available.

🛠️ Developer Tools

If you see an opportunity for improvement, please let us know in our Community Discord.

We hope you will enjoy a smooth experience. 🚀

Docker

To help make your server reliable, we use Docker - virtualization software to ensuring that all of your server code dependencies down to the operating system level are going to be always exactly the same, no matter how or where the server is launched.

We recommend watching "Never install locally" (video). You DON'T need to use Dockerhub with Docker. Docker ≠ Dockerhub. Think of Docker as a programming engine and Dockerhub as it’s App Store.

Kubernetes (K8s)

Kubernetes, also known as K8s, is an open source system for automating deployment, scaling, and management of containerized applications (Docker Images). It groups containers that make up an application into logical units for easy management and discovery.

Edgegap Managed Clusters provide a Kubernetes API for administration purposes.

K8s Lens

With over 1 million users, K8s Lens is the most popular Kubernetes IDE in the world. Connect to clusters, explore, gain insights, learn and take an action when needed. Lens provides all the information from your workloads and resources in real-time, always in the right context.

Edgegap Cluster Kubernetes API can be used through Lens or other Kubernetes IDEs.

Helm Package Manager

Helm is the best way to find, share, and use software built for Kubernetes. Helm helps you manage Kubernetes applications - Helm Charts help you define, install, and upgrade even the most complex Kubernetes application. Charts are easy to create, version, share, and publish - so start using Helm and stop the copy-and-paste.

Installing Helm CLI provides developers with a simple interface to manage their cluster packages.

🚀 Getting Started

☑️ Registered for your free Edgegap account and upgrade to pay as you go tier to unlock Clusters.

☑️ Navigate to Managed Clusters page.

☑️ Click on Create Cluster first, then input:

☑️ Review estimated cost and click Create Cluster to start your new cluster.

☑️ Once the cluster is ready, click Kubeconfig to download your configuration and credentials for connecting and administrating your new cluster.

☑️ Move your kubeconfig file for kubectl to find it.

☑️ Lens users: import your kubeconfig file.

☑️ Test your cluster connection with command kubectl get nodes :

🙌 Congratulations, you’ve completed Managed Cluster setup! You may now install your services.

📦 Nakama by Heroic Labs

Follow these steps to host your own Nakama Game Backend on Managed Clusters:

☑️ Install a Certificate Manager to support usage of HTTPS requests from game clients:

☑️ Lens: verify installation in Services / Network section, cert-manager should be running.

☑️ Write a Cluster Issuer file, remember to replace <YOUR_EMAIL> below:

☑️ Create a Cluster Issuer in command line:

☑️ Lens: verify installation in Custom Resources section / cert-manager.io - cluster issuer created.

☑️ Install the nginx Ingress for receiving client requests and passing them to services in cluster:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx --create-namespace

☑️ Lens: verify installation in Services / Network section, nginx should be running.

☑️ Create a DNS record type A in your DNS provider (e.g. Cloudflare), note the URL for later. Your external IP for the DNS record can be found in Lens under Services / ingress-nginx-controller .

☑️ Verify your DNS is set up correctly by performing a lookup using DNSchecker.

☑️ Create file named values.yaml with contents (use your own values):

☑️ Deploy Nakama helm chart:

☑️ Lens: verify installation in Workloads / Deployments section, nakama should be running.

Connect to your Nakama Console with URL and credentials from values.yaml file.

🙌 Congratulations, you’ve completed self-hosted Nakama Game Backend setup!

Service Updates

Follow these steps to update your service hosted in the Managed Cluster:

☑️ Update your value.yaml file with new files.

☑️ Update your helm chart using this command:

☑️ Reload your changes by closing the updated pods, causing the new helm chart to be used after we automatically restart the pods.

🙌 Congratulations, you’ve completed Nakama Cluster update!

👷 Advanced Matchmaker

Follow these steps to host your OpenMatch on a Managed Cluster.

☑️ Install a Certificate Manager to support usage of HTTPS requests from game clients:

☑️ Lens: verify installation in Services / Network section, cert-manager should be running.

☑️ Write a Cluster Issuer file, remember to replace <YOUR_EMAIL> below:

☑️ Create a Cluster Issuer in command line:

☑️ Lens: verify installation in Custom Resources section / cert-manager.io - cluster issuer created.

☑️ Install the nginx Ingress for receiving client requests and passing them to services in cluster:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx --create-namespace

☑️ Lens: verify installation in Services / Network section, nginx should be running.

☑️ Create a DNS record type A in your DNS provider (e.g. Cloudflare), note the URL for later. Your external IP for the DNS record can be found in Lens under Services / ingress-nginx-controller .

☑️ Verify your DNS is set up correctly by performing a lookup using DNSchecker.

☑️ Create file named values.yaml with contents (use your own values):

☑️ Add Edgegap repository to your list of repositories:

☑️ Deploy advanced matchmaker helm chart:

🙌 Congratulations, you’ve completed Advanced Matchmaker setup!

Service Updates

Follow these steps to update your service hosted in the Managed Cluster:

☑️ Update your value.yaml file with new files.

☑️ Update your helm chart using this command:

☑️ Reload your changes by closing the updated pods (director, mmf, frontend), causing the new helm chart to be used after we automatically restart the pods.

🙌 Congratulations, you’ve completed Advanced Matchmaker update!

Continuous Deployment

Automate updating your services by adding this shell script to your deployment pipeline:

Letsencrypt Certificate Validation (C#)

For some clients, the recommended Letsencrypt certificate validation may fail with error:

As a last resort, game clients may implement a custom certificate handler function:

Usage:

We recommend storing the EXPECTED_CERT value in your own file storage, and retrieving it on runtime, so you can update it without releasing a game client update.

🟢 Operations and Observability

Cluster Tier Changes

Prepare for success and optimize after launch, so you don’t block your players on release day.

Support and Future Updates

Your success is our priority. If you'd like to send custom requests, ask for missing critical features , or express any thoughts, please reach out in our Community Discord.

Last updated

Was this helpful?