mirror of
https://github.com/itzg/mc-router.git
synced 2024-11-24 11:55:24 +01:00
Routes Minecraft client connections to backend servers based upon the requested server address
.circleci | ||
cmd/mc-router | ||
docs | ||
mcproto | ||
server | ||
.gitignore | ||
.goreleaser.yml | ||
Dockerfile | ||
glide.lock | ||
glide.yaml | ||
LICENSE.txt | ||
Makefile | ||
README.md |
Routes Minecraft client connections to backend servers based upon the requested server address.
Usage
Flags:
--help Show context-sensitive help (also try --help-long
and --help-man).
--port=25565 The port bound to listen for Minecraft client
connections
--api-binding=API-BINDING The host:port bound for servicing API requests
--mapping=MAPPING ... Mapping of external hostname to internal server
host:port
REST API
GET /routes
Retrieves the currently configured routesPOST /routes
Registers a route given a JSON body structured like:
{
"serverAddress": "CLIENT REQUESTED SERVER ADDRESS",
"backend": "HOST:PORT"
}
DELETE /routes/{serverAddress}
Deletes an existing route for the givenserverAddress
Example kubernetes deployment
- Declares an
mc-router
service that exposes a node port 25565 - Declares a service account with access to watch and list services
- Declares
--in-kube-cluster
in themc-router
container arguments - Two "backend" Minecraft servers are declared each with an
"mc-router.itzg.me/externalServerName"
annotation that declares their external server name
kubectl apply -f https://raw.githubusercontent.com/itzg/mc-router/master/docs/k8s-example-auto.yaml
Notes
- This deployment assumes two persistent volume claims:
mc-stable
andmc-snapshot
- I extended the allowed node port range by adding
--service-node-port-range=25000-32767
to/etc/kubernetes/manifests/kube-apiserver.yaml