# Kubernetes generates the cardinality your metrics bill punishes.

Pods are born and die by the thousand, and every one is a new label value. Systems priced by unique series make Kubernetes the most expensive thing you run. CtrlB stores dimensions as columns, so churn costs bytes rather than multiples.

## Metadata

- **Canonical HTML**: https://ctrlb.ai/solutions/kubernetes
- **Section**: Solutions — Kubernetes

## At a glance

| Figure | What it refers to |
|--------|-------------------|
| Per-pod | Dimensions kept, not dropped |
| 100M+ series | On object storage |
| OTel native | No proprietary agent |
| 0 drop rules | Nothing to configure away |

## Why Kubernetes breaks metrics pricing

- Every pod restart mints new label values, so a rolling deploy can multiply your billable series overnight.
- The mitigation is a relabel rule that strips pod identity — which removes exactly the dimension you need when one replica is misbehaving.
- Container logs are high-volume and mostly repetitive, so they get sampled just as an incident makes them interesting.
- Node, pod, and application telemetry land in three systems, and correlating them is manual.

## What changes

- Keep pod, node, namespace, and workload as real dimensions, because a dimension costs storage rather than a series multiplier.
- Repetitive container logs collapse into patterns automatically, so a noisy namespace becomes a short list instead of a wall.
- Logs, metrics, and traces from the cluster share one data layer, so a pod-level metric anomaly and its logs are one query apart.
- Retention is a bucket lifecycle decision, so last month's incident is as searchable as this morning's.

## How it works

1. **Ship with the collector you already run** — Point your existing OpenTelemetry collector or Fluent Bit DaemonSet at CtrlB. No proprietary agent needs to go on every node.
2. **Keep every label** — Pod, namespace, node, container, and workload all land as columns. There is no relabel rule to write and no cardinality budget to defend.
3. **Investigate across signals** — Start from a spike in a per-pod metric, pivot to that pod's logs, then to the trace that produced them, without changing tools.

## Capabilities

- **Per-pod granularity**: Keep the identity of the replica that misbehaved instead of aggregating it away at ingest.
- **Container log patterns**: Repetitive lines group by structure, so noisy workloads become readable.
- **Multi-cluster**: Clusters across regions and clouds land in one lake with cluster as a dimension.
- **Collector fleet management**: The control plane configures and upgrades collectors across clusters from one place.
- **Ephemeral-friendly**: Short-lived pods do not need a stable identity for their telemetry to stay queryable.
- **OpenTelemetry native**: Standard OTel semantics in, open Parquet out.

## FAQ

**Do we install a DaemonSet?**

Only the OpenTelemetry collector, if you are not already running one. CtrlB does not require a proprietary node agent.

**Can we keep per-pod labels without the cost blowing up?**

Yes. Metrics are stored as columns in Parquet rather than as series in a TSDB index, so adding a high-churn dimension adds bytes rather than multiplying a billable series count.

**Does it work across multiple clusters?**

Yes. Cluster becomes a dimension like any other, so one query can span clusters, regions, and clouds.

**What about Prometheus?**

PromQL is supported, so existing dashboards and recording rules carry over.

Markdown mirror: fetch `/solutions/kubernetes.md` for this page as plain Markdown.