Orchestrators
Orchestrators are agents that connect BadgerPanel to Kubernetes clusters, enabling you to deploy and manage game servers on Kubernetes instead of traditional daemon nodes.
What Are Orchestrators?
An orchestrator is a component that runs inside a Kubernetes cluster and acts as the bridge between BadgerPanel and the cluster. It receives instructions from the panel (create a server, stop a server, etc.) and translates them into Kubernetes resources - pods, services, and persistent volume claims.
Each orchestrator manages one Kubernetes cluster. If you have multiple clusters, you need one orchestrator per cluster.
Prerequisites
Before adding an orchestrator, you need:
- A running Kubernetes cluster
kubectlaccess to the cluster from a machine where you can run the install script- Network connectivity from the cluster to your panel URL (HTTPS)
Adding an Orchestrator
- Navigate to Admin > Orchestrators and click Add Orchestrator.
- Enter a name and optional description for the orchestrator.
- Click Create. The panel generates a one-line install command.
Running the Install Command
Run the install command on a machine with kubectl access to your target cluster:
curl -sSL "https://panel.example.com/api/orchestrators/install/TOKEN" | bashReplace the URL with the actual command shown in your panel.
What the Script Deploys
The install script creates the following Kubernetes resources:
- Namespace -
badger-systemto isolate the orchestrator components - ServiceAccount - used by the orchestrator pod for cluster access
- ClusterRole and ClusterRoleBinding - grants the orchestrator permissions to manage pods, services, PVCs, and other resources across namespaces
- Deployment - runs the orchestrator binary as a pod with automatic restarts
The orchestrator pod connects to your panel using the registration token embedded in the install script. Once connected, the cluster appears in your panel automatically.
Status Indicators
After installation, the orchestrator's status is visible in Admin > Orchestrators.
| Status | Meaning |
|---|---|
| Online | The orchestrator is connected and communicating with the panel |
| Offline | The orchestrator pod is not sending heartbeats - check if the pod is running |
| Pending | The orchestrator was created but has not connected yet |
| Error | The orchestrator reported an error - check pod logs for details |
Activity Logs
Each orchestrator maintains an activity log that records events such as:
- Server deployments and deletions
- Connection and disconnection events
- Errors and warnings
- Update installations
View the activity log on the orchestrator's detail page in Admin > Orchestrators.
Updating Orchestrators
When a new version of the orchestrator is available, you can push the update directly from the panel:
- Navigate to Admin > Orchestrators and select the orchestrator.
- If an update is available, click Update.
- The panel sends the new binary to the orchestrator, which performs a rolling restart.
No manual intervention on the cluster is required.
Daemon Nodes vs Orchestrators
| Feature | Daemon Nodes | Orchestrators |
|---|---|---|
| Runtime | Docker containers (Linux) or native processes (Windows) | Kubernetes pods |
| Port management | IP:port allocations configured manually | NodePort services or LoadBalancer |
| Storage | Local disk on the node | Persistent Volume Claims (PVCs) |
| Scaling | Add more nodes manually | Kubernetes handles scheduling across cluster nodes |
| OS support | Linux and Windows | Any Kubernetes cluster |
| Setup | Install daemon on each server | Install orchestrator once per cluster |
| Resource isolation | Docker containers or Windows Job Objects | Kubernetes resource requests and limits |
| Best for | Dedicated servers, bare metal, VPS | Cloud environments, dynamic scaling, existing K8s infrastructure |
Removing an Orchestrator
Before removing an orchestrator, delete or transfer all servers deployed to its cluster.
- In the panel, navigate to Admin > Orchestrators, select the orchestrator, and click Delete.
- Clean up the Kubernetes resources from your cluster:
kubectl delete namespace badger-systemThis removes the orchestrator deployment, service account, and all associated resources from the cluster.
