> ## Documentation Index
> Fetch the complete documentation index at: https://docs.odigos.io/llms.txt
> Use this file to discover all available pages before exploring further.

# System Requirements

> To ensure optimal performance and compatibility when deploying Odigos, your environment must meet the following system requirements:

## Kubernetes Version

Odigos requires Kubernetes version 1.21.12 or higher.

<Note>
  Odigos eBPF-based data collection requires, at minimum, platforms that have underlying Linux kernel versions of 5.4.0.

  The required Linux capabilities depend on your kernel version:

  * **Kernel 5.4 – 5.7**: requires `CAP_SYS_ADMIN`.
  * **Kernel 5.8 and later**: requires `CAP_BPF` and `CAP_SYS_PTRACE`.

  We recommend running on kernel 5.8 or later when possible, as the more granular capabilities (`CAP_BPF` and `CAP_SYS_PTRACE`) follow the principle of least privilege compared to `CAP_SYS_ADMIN`.
</Note>

**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

* [Kind](https://kind.sigs.k8s.io)
* [Minikube](https://minikube.sigs.k8s.io/docs/start)
* [K3s](https://k3s.io)
* [Red Hat OpenShift](https://catalog.redhat.com/software/container-stacks/detail/675201b3ade18c062e2efc0b) (see [how to install on OpenShift](../setup/installation-options#openshift-installation))
* [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/)
* [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine)
* [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/products/kubernetes-service)

## Resource Requirements

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

### Cluster

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

| Component Name                   | Memory Request | Memory Limit | CPU Request | CPU Limit |
| -------------------------------- | -------------- | ------------ | ----------- | --------- |
| odigos-autoscaler                | 64Mi           | 512Mi        | 10m         | 500m      |
| odigos-instrumentor (2 replicas) | 64Mi           | 512Mi        | 10m         | 500m      |
| odigos-scheduler                 | 64Mi           | 512Mi        | 10m         | 500m      |
| odigos-ui                        | 64Mi           | 512Mi        | 10m         | 500m      |

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 Name | Memory Request | Memory Limit | CPU Request | CPU Limit |
| -------------- | -------------- | ------------ | ----------- | --------- |
| odigos-gateway | 600Mi          | 600Mi        | 1000m       | 1000m     |

Read more [here](/enterprise/pipeline/configuration).

### Per Node

A DaemonSet running on every node in the cluster, consuming resources as outlined below:

| Component Name  | Memory Request | Memory Limit | CPU Request | CPU Limit |
| --------------- | -------------- | ------------ | ----------- | --------- |
| odiglet         | 500Mi          | 500Mi        | 500m        | 500m      |
| data-collection | 250Mi          | 500Mi        | 250m        | 500m      |
| deviceplugin    | 200Mi          | 300Mi        | 40m         | 100m      |

You can override these values by providing a custom configuration (read more [here](/enterprise/pipeline/configuration)).

## Network Requirements

<Warning>
  Ensure that any network-layer components are properly configured to allow the required connectivity between Odigos components. Improper configuration may impact the correct operation of Odigos.
</Warning>

To ensure proper operation of Odigos components and instrumented applications, the following network connectivity must be allowed inside the Kubernetes cluster:

### Core Network Connectivity

| Source                        | Destination Service                    | Ports                        | Purpose                                             |
| ----------------------------- | -------------------------------------- | ---------------------------- | --------------------------------------------------- |
| Instrumented Application Pods | `odiglet-local`                        | `4320`                       | Retrieve instrumentation configuration from Odiglet |
| Instrumented Application Pods | `odigos-data-collection-local-traffic` | `4317` (gRPC), `4318` (HTTP) | Export application telemetry data (OTLP protocol)   |
| Odiglet Pods                  | `odigos-data-collection-local-traffic` | `4318`                       | Export eBPF-collected telemetry data                |

### Network Layer Considerations

In some environments, the following network components may affect traffic between these services:

* Service meshes (e.g. Istio, Linkerd, Cilium, Consul)
* HTTP proxies or egress gateways
* Transparent proxies (corporate or cluster-level)
* Network security appliances (WAFs, L7 firewalls, DPI systems)
* Kubernetes NetworkPolicies
