@@ -95,6 +95,45 @@ podAnnotations:
9595This requires bundling the `ConfigMap` definition in the Helm release for
9696checksum evaluation.
9797
98+ # ## Centralizing Kubernetes metadata with `k8s-cache`
99+
100+ By default each OBI Pod opens its own `list`/`watch` connections to the
101+ Kubernetes API server to read Pod, Node, and Service metadata for the entire
102+ cluster (needed to enrich destination/peer attributes on traces, flows and
103+ metrics). On large clusters, or when many OBI replicas run side by side
104+ (`DaemonSet`, large `Deployment`, sidecars), this fan-out can put significant
105+ load on the API server.
106+
107+ ` k8s-cache` is an optional companion `Deployment` shipped with OBI. It runs
108+ the Kubernetes informers once on behalf of every OBI Pod and streams the
109+ metadata back over gRPC, so OBI Pods no longer hit the API server for
110+ informer traffic.
111+
112+ > **Note:** Even when `k8s-cache` is enabled, OBI Pods still need their own
113+ > `ServiceAccount` and may perform limited direct Kubernetes API lookups for
114+ > node and cluster metadata. The cache eliminates the per-Pod informer
115+ > watch traffic, not all API access.
116+
117+ The cache is disabled by default. To enable it, set `k8sCache.replicas` to a
118+ non-zero value :
119+
120+ ` ` ` yaml
121+ k8sCache:
122+ replicas: 1
123+ ` ` `
124+
125+ A single replica is usually enough. For high availability or very large
126+ clusters, increase the replica count — OBI Pods load-balance across them
127+ through the cache `Service` and reconnect to a healthy replica on failure.
128+
129+ When `k8sCache.replicas > 0` the chart deploys the cache `Deployment` and
130+ ` Service` , and automatically points the OBI `DaemonSet` at it by setting
131+ ` OTEL_EBPF_KUBE_META_CACHE_ADDRESS` to `<k8sCache.service.name>:<k8sCache.service.port>`.
132+ See the `k8sCache` block in [values.yaml](./values.yaml) for image, resource,
133+ and metrics settings, and the
134+ [OBI Kubernetes setup guide](https://opentelemetry.io/docs/zero-code/obi/setup/kubernetes/#centralizing-kubernetes-metadata-with-k8s-cache)
135+ for background.
136+
98137# ## Pod Annotations with Template Support
99138
100139The `podAnnotations` values support Helm templating, enabling dynamic values :
0 commit comments