This guide details a clean setup to expose a Minecraft server on port 25565 using Traefik v3 with Gateway API. This repo makes use of https://github.com/itzg/minecraft-server-charts helm charts and templates.
sudo mkdir -p /etc/rancher/k3s
cat <<EOF | sudo tee /etc/rancher/k3s/config.yaml
disable:
- traefik
EOF
sudo systemctl restart k3s# Core CRDs (Gateway, GatewayClass, HTTPRoute, etc.)
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml
# Experimental CRDs (TCPRoute, UDPRoute, etc.)
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/experimental-install.yamlVerify:
kubectl get crd | grep -E 'gatewayclasses|gateways|tcproutes'kubectl create namespace traefikhelm repo add traefik https://traefik.github.io/charts
helm repo update
helm install traefik traefik/traefik --namespace traefik -f traefik-values.yamlIn your Minecraft values.yaml:
serviceType: ClusterIP
servicePort: 25565helm upgrade mc minecraft-server/minecraft --namespace minecraft -f values.yamltraefik-gateway.yaml:
kubectl apply -f traefik-gateway.yamlkubectl apply -f minecraft-ingressroute.yamlsudo ufw allow 25565/tcpIn your Minecraft client, use:
IP_OF_YOUR_SERVER:25565
Enjoy your Minecraft world, securely exposed via Traefik & Gateway API!