☸️Kubernetes
Kube ahoy!
Collect container logs and cluster events from Kubernetes clusters via an in-cluster agent.
How it works
The ControlTheory agent runs inside your cluster and forwards data to Dstl8. It has two components:
DaemonSet — runs on every node to collect pod and container logs. Optionally exposes OTLP ports (
1757,1758) on each node so applications co-located with the agent can push their own telemetry to it.Cluster component — runs once per cluster to collect cluster-wide events and metadata.
You can install both (recommended, default), or either one independently.
Add a Kubernetes source
1. Create the source in Dstl8
From Sources, click Add Source and select Kubernetes. Configure the source and complete setup — Dstl8 will provide:
Organization ID
DaemonSet and cluster admission tokens
Config and data endpoints
A ready-to-run install command
2. Install the agent
With kubectl configured against the target cluster, run the install script (the UI provides this command with your values prefilled):
The agent installs via Helm into the controltheory namespace by default.
3. Verify
Check the rollout:
In the Dstl8 UI, the source transitions from Pending to Healthy as the agent connects and begins forwarding. Streams appear as pods emit logs — typical stream types include Deployments, DaemonSets, StatefulSets, and Jobs.
Install options
-i, --org-id
Organization identifier (required)
--config-endpoint
Config endpoint URL (required)
--data-endpoint
Data endpoint host:port (required)
--cluster-name
Name to identify this cluster (required)
-e, --env
Deployment environment, e.g. prod, staging (required)
--ds-token
DaemonSet admission token (required for ds / both)
--cluster-token
Cluster admission token (required for cluster / both)
-t, --type
Install ds, cluster, or both (default: both)
-n, --namespace
Kubernetes namespace (default: controltheory)
--no-host-port
Don't expose OTLP ports (1757 / 1758) on nodes
--kubeconfig
Path to kubeconfig (default: ~/.kube/config)
--helm-version
Pin a specific Helm chart version (default: latest stable)
Other operations
Run preflight on large or constrained clusters to surface scheduling issues — node capacity, taints, and overprovisioned pods — before committing to install.
Tips
Install a separate Kubernetes source per cluster rather than sharing tokens across clusters.
If OTLP ports
1757/1758conflict with existing workloads on your nodes, pass--no-host-port.Assign the resulting streams to workspaces as described in Sources → Assigning streams to workspaces.
Last updated