Skip to content

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
  • kubectl access 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

  1. Navigate to Admin > Orchestrators and click Add Orchestrator.
  2. Enter a name and optional description for the orchestrator.
  3. 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:

bash
curl -sSL "https://panel.example.com/api/orchestrators/install/TOKEN" | bash

Replace the URL with the actual command shown in your panel.

What the Script Deploys

The install script creates the following Kubernetes resources:

  • Namespace - badger-system to 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.

StatusMeaning
OnlineThe orchestrator is connected and communicating with the panel
OfflineThe orchestrator pod is not sending heartbeats - check if the pod is running
PendingThe orchestrator was created but has not connected yet
ErrorThe 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:

  1. Navigate to Admin > Orchestrators and select the orchestrator.
  2. If an update is available, click Update.
  3. 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

FeatureDaemon NodesOrchestrators
RuntimeDocker containers (Linux) or native processes (Windows)Kubernetes pods
Port managementIP:port allocations configured manuallyNodePort services or LoadBalancer
StorageLocal disk on the nodePersistent Volume Claims (PVCs)
ScalingAdd more nodes manuallyKubernetes handles scheduling across cluster nodes
OS supportLinux and WindowsAny Kubernetes cluster
SetupInstall daemon on each serverInstall orchestrator once per cluster
Resource isolationDocker containers or Windows Job ObjectsKubernetes resource requests and limits
Best forDedicated servers, bare metal, VPSCloud environments, dynamic scaling, existing K8s infrastructure

Removing an Orchestrator

Before removing an orchestrator, delete or transfer all servers deployed to its cluster.

  1. In the panel, navigate to Admin > Orchestrators, select the orchestrator, and click Delete.
  2. Clean up the Kubernetes resources from your cluster:
bash
kubectl delete namespace badger-system

This removes the orchestrator deployment, service account, and all associated resources from the cluster.

BadgerPanel Documentation