Skip to main content
This tutorial demonstrates how to use extended Berkeley Packet Filter (eBPF) with Cilium Tetragon on CoreWeave Kubernetes Service (CKS). This combination provides real-time Kubernetes security observability and runtime enforcement. By the end, you have Tetragon installed on a CKS cluster and an audit policy that monitors process execution. You also have a live stream of security events for auditing, compliance, and runtime threat detection. This guide is for cluster operators and security engineers who need visibility into container and process behavior on CKS.

Background

CoreWeave reinforces network security and observability at multiple levels. These levels include programmable BlueField-3 data processing units (DPUs), container network interface (CNI) plugins such as Cilium with eBPF, and runtime tools such as Cilium Tetragon. This approach provides workload isolation, auditability, and real-time detection.

Purpose

The configuration supports the following security goals:
  • Security observability: When you configure Tetragon with eBPF, you gain insight into security events and anomalies within your Kubernetes clusters. Tetragon provides runtime visibility into container behavior. It can track specific system calls, such as execve, to create an auditable trail of process executions.
  • Auditing and compliance: This setup helps you assess compliance with security policies by showing which operations run within your cluster.

Prerequisites

Before you begin, make sure you have the following:
  • A CoreWeave Kubernetes Service (CKS) cluster is in place.
  • Helm is installed to manage Kubernetes packages.
  • The jq command-line processor is installed to filter JSON event logs.
  • Linux kernel version 4.19 or later with BPF Type Format (BTF) support on your Nodes. For full functionality on Arm64, use kernel version 5.10 or later.

Configuration steps

Configure Tetragon and its audit policy in the following stages.

Add and install Tetragon through Helm

Tetragon provides the eBPF-based runtime monitoring agent that runs as a DaemonSet on every Node. Add the Cilium Helm chart repository and install Tetragon in your cluster’s kube-system namespace.
After the installation completes, Tetragon schedules Pods as a DaemonSet across your cluster Nodes.

Verify the DaemonSet and logs

Before you apply policies, confirm Tetragon is running correctly.
After Tetragon is ready, the first command lists its running Pods, and the second command returns recent event-export logs.

Enable audit policies

Audit policies specify which kernel events Tetragon observes. This example monitors process execution events so you can build an auditable trail of commands run inside your cluster.
  1. Create an example policy file (for example, exec-policy.yaml):
    exec-policy.yaml
  2. Apply the policy:

View security events

After you apply the policy, Tetragon emits an event each time a matching syscall occurs. Tetragon runs on every Node, so read events from the Tetragon Pod on the same Node as the monitored workload.

Test the policy

Confirm that the exec-audit policy emits an event for a command in a test Pod:
  1. Create a test Pod and wait for it to become ready:
  2. Identify the Node that runs the test Pod and the Tetragon Pod on that Node:
  3. In the same terminal, stream events from the export-stdout container and filter for events from the exec-audit policy and test Pod:
  4. In a second terminal, run a command in the test Pod:
    The first terminal displays a process_kprobe event with policy_name set to exec-audit. The event includes the command path, arguments, and Pod context.
  5. Stop the log stream, then delete the test Pod:

Customize policies

After the base policy works, you can scope monitoring to the events most relevant to your security posture. The example exec-policy.yaml monitors all process executions. You can create more targeted policies: Tetragon loads eBPF programs into the Node kernel to provide runtime visibility into your workloads.
Last modified on August 21, 2026