Kubernetes Version

Odigos requires Kubernetes version 1.23.0 or higher.

Odigos Enterprise data collection is done using eBPF, so Odigos requires, at minimum, platforms that have underlying Linux kernel versions of 5.4.0.

What to expect if some nodes don’t meet the Kernel requirement:

  • eBPF Agents: If a node’s kernel version is below 5.4.0, eBPF-based data collection will not be applied to workloads on that node. An error will appear in the UI for any source running on unsupported nodes, indicating that instrumentation was not possible.
  • Non-eBPF Agents: Non-eBPF-based agents are not affected by kernel version requirements and will run and instrument workloads on any Linux version.

This allows users to maintain observability on nodes that meet the requirements without needing to upgrade all cluster nodes immediately.

Kubernetes Cluster Types

Resource Requirements

To achieve its functionality Odigos uses a set of Deployments and Daemonsets.

Cluster

The following components runs as Deployment and request the following resources (per pod):

Component NameMemory RequestMemory LimitCPU RequestCPU Limit
odigos-autoscaler64Mi512Mi10m500m
odigos-instrumentor (2 replicas)64Mi512Mi10m500m
odigos-schedualer64Mi512Mi10m500m
odigos-ui64Mi512Mi10m500m

In addition, Odigos deploys OpenTelemetry Collector Deployment, with auto scaling (multiple replicas) and configurable resources requests and limits. The default values (unless overridden) are:

Component NameMemory RequestMemory LimitCPU RequestCPU Limit
odigos-gateway300Mi300Mi150m300m

Read more here.

Per Node

2 Daemonsets are deployed on each node in the cluster and consumes resources as follows:

  • odiglet - Does not set requests and limits. it will consume resources as needed depending on the number of pods running on the node and the amount of data being recorded.
  • odigos-data-collection - cpu and memory limits and requests are set by default to:
Component NameMemory RequestMemory LimitCPU RequestCPU Limit
odigos-data-collection150Mi300Mi150m300m

You can override these values by providing a custom configuration (read more here).