Tetragon: eBPF Security Observability for Kubernetes
Tetragon is Cilium's eBPF-based component for security observability and runtime enforcement on Kubernetes and Linux. It hooks into kernel sensors to watch process execution, system calls, and network or file I/O, tagging events with Kubernetes identity. Reach for it if you need kernel-level visibility tied to a workload. Skip it if you're not ready to author TracingPolicy for anything beyond the defaults.
What is Tetragon?
Tetragon is Cilium's component for eBPF-based security observability, paired with runtime enforcement, run on Linux hosts or inside a Kubernetes cluster. It hooks into critical kernel points through sensors, emitting events such as process_exec, process_exit, process_kprobe, process_tracepoint, and process_uprobe, each carrying Linux and Kubernetes context like namespace and pod.
Core Capabilities
- โBy default, Tetragon emits process_exec and process_exit events, covering the full process lifecycle without any policy configuration.
- โGeneric tracing events โ process_kprobe, process_tracepoint, and process_uprobe โ support custom detection logic defined through TracingPolicy resources.
- โKubernetes-aware: it understands namespaces, pods, and other cluster identities, so detection can target specific workloads.
- โCovers system call activity and I/O, including network and file access, not just process starts and stops.
- โDocumented use cases beyond the basics: network observability, filename access tracking, Linux credentials monitoring, and privileged execution detection.
- โShips alongside the Tetra CLI, installed separately, for interacting with Tetragon.
Practical Security Scenarios
- โขWatching process execution across a cluster to catch a shell spawned inside a container that shouldn't be running one.
- โขWriting a TracingPolicy to flag specific system calls or kernel probes for a workload you don't fully trust.
- โขTracking privileged execution or credential changes inside containers, per the README's linked use case pages.
- โขAuditing file access and network activity tied to a specific namespace or pod, instead of raw host-level logs.
Getting Started with Tetragon
The README doesn't list install commands inline; it points to the official Tetragon documentation instead. From there the getting-started guides split by target: install Tetragon on a Kubernetes cluster, try it on Linux via Docker, deploy Tetragon more broadly, or install the separate Tetra CLI for interacting with it. Treat those docs pages as the source of truth for exact commands, since none appear in this repo's README.
Configuring Security Policies
Beyond the default process_exec/process_exit events, custom detection goes through TracingPolicy resources โ that's the mechanism the README points to for configuring process_kprobe, process_tracepoint, and process_uprobe events. The README links dedicated use-case pages for network observability, filename access, Linux process credentials, and privileged execution, all built on that same TracingPolicy concept rather than a separate config format. Exact policy syntax isn't in this repo's README; it's covered in the linked TracingPolicy concept page and the use-case docs.
Strengths
- โKubernetes-aware by design: security events carry namespace and pod identity instead of raw host PIDs, so alerts map straight to a workload.
- โDefault process lifecycle tracking works without writing any policy first, so you get visibility before you tune anything.
- โKernel-level detection covers more than process starts: system calls, network I/O, and file access are all in scope, per the README.
- โTracingPolicy gives you a path from generic tracing to custom kprobe/tracepoint/uprobe rules once the defaults aren't specific enough.
- โApache-2.0 license. No copyleft obligations for building it into a commercial security stack.
Considerations and Scope
- โณThe README gives no version number, release history, or roadmap, so there's no documented sense of stability or upgrade cadence.
- โณInstall and configuration commands aren't in the README; every setup path (Kubernetes, Linux, Tetra CLI) routes you to external docs, which adds friction for a quick local test.
- โณDetection beyond default process lifecycle events requires writing TracingPolicy resources yourself; this README doesn't describe a ready-made policy library.
- โณThe README doesn't state Tetragon's own resource footprint or required kernel version, so you'd need to check the linked docs before assuming it runs on your kernel.
- โณThe list of production adopters lives in a separate USERS.md file rather than the main README, so you can't gauge real-world deployment scale from this page alone.
Comparing Runtime Security Tools
Frequently Asked Questions
Tetragon is licensed under Apache-2.0, according to its GitHub repository.
Tetragon detects process execution, system call activity, and I/O events covering network and file access, based on kernel sensors.
Tetragon integrates with Kubernetes: when it runs in a cluster, it understands namespaces, pods, and other Kubernetes identities, so detection can target specific workloads.
Tetragon uses eBPF to hook into critical kernel points through sensors, generating process_exec, process_exit, process_kprobe, process_tracepoint, and process_uprobe events that carry Linux and Kubernetes context.
Tetragon's installation guides live in its official documentation, with separate paths for Kubernetes, Linux via Docker, general deployment, and installing the Tetra CLI.
The problem it solves
Most security tooling watches network traffic or reads audit logs afterward, so a shell spawned inside a compromised pod, or a suspicious file read inside a container, can go unnoticed until someone digs through logs later. Tetragon closes that gap by hooking directly into the kernel and reacting as those events happen โ process execution, system call activity, and network or file access โ with Kubernetes identity attached so the specific workload is obvious right in the alert.
Who should try it โ and who should skip
Try Tetragon if you run workloads on Kubernetes or Linux and want kernel-level visibility into process execution, syscalls, and file or network access, tied to pod and namespace identity rather than raw host logs. It's also a fit if you're prepared to write TracingPolicy resources to go beyond the default process-lifecycle events. Skip it if you just want network policy enforcement โ that's Cilium's job โ or if you need a turnkey install with no policy authoring at all.
Related repositories
Is tetragon worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of tetragon.
