Skip to main content
Gate’s Docker images are designed for Kubernetes deployments, providing scalable and reliable proxy infrastructure for your Minecraft network.

Prerequisites

Before deploying Gate to Kubernetes, ensure you have:

Kubernetes Cluster

Running cluster (kind, minikube, k3s, k3d, GKE, EKS, AKS, etc.)

kubectl

Kubernetes CLI tool installed and configured

Kustomize

(Optional) For advanced manifest management

Lens Desktop

(Optional) Kubernetes IDE for easier management
New to Kubernetes? Try kind for local development or k3d for lightweight clusters.

Quick Start: All-in-One Example

Deploy a complete Gate proxy with two Minecraft servers in one command:
This creates:
  • Gate proxy deployment
  • Two Minecraft server pods (StatefulSet)
  • NodePort service on port 32556
  • ConfigMaps for configuration
1

Deploy the bundle

2

Wait for pods to be ready

Wait until all pods show Running status.
3

Connect to Gate

Connect your Minecraft client to <node-ip>:32556Find your node IP:
4

Test server switching

In-game, use /server server-0 or /server server-1 to switch between servers.Try deleting a server pod to see Gate automatically reconnect players:
The bundle includes everything needed for a complete Minecraft network:
Kustomize provides a structured way to manage Kubernetes manifests. Gate’s examples use Kustomize for easier customization.
1

Clone the repository

2

Review the structure

The example includes:
  • kustomization.yaml - Main Kustomize configuration
  • deploy.yaml - Gate deployment
  • svc.yaml - Gate service
  • config.yml - Gate configuration
  • servers/ - Minecraft server manifests
3

Customize for your needs

Edit the files to match your environment:
config.yml
4

Preview the generated manifests

This shows what will be deployed without actually deploying.
5

Deploy to Kubernetes

6

Clean up when done

Overlay Your Own Kustomize

Create your own Kustomize that extends Gate’s example:
kustomization.yaml
Create a patch file:
patch.yaml

Manual Deployment

For more control, deploy Gate components individually:
1

Create ConfigMap for Gate configuration

2

Create Gate Deployment

gate-deployment.yaml
Apply it:
3

Create Gate Service

gate-service.yaml
Apply it:
4

Get the external IP

For LoadBalancer, wait for EXTERNAL-IP to be assigned. For NodePort, use any node IP with the assigned node port.

Service Types

Choose the appropriate service type for your environment:
Best for: Cloud providers (GKE, EKS, AKS)
Automatically provisions a cloud load balancer with external IP.

Bedrock Edition Support

For Bedrock Edition support, use the JRE variant image:
Update the service to expose UDP port:

Monitoring and Troubleshooting

Verify that endpoints are listed (pods are ready).
After updating a ConfigMap, restart the deployment:
Or use ConfigMap versioning in Kustomize with configMapGenerator.

Production Best Practices

Use resource limits

Set memory and CPU limits to prevent resource exhaustion:

Enable readiness probes

Ensure traffic only goes to ready pods:

Use multiple replicas

Run multiple Gate instances for high availability:

Pin image versions

Avoid unexpected changes with specific versions:

Next Steps

Configuration

Customize Gate for your network

Scaling

Scale Gate for high player counts