下面是对 Isovalent 官方博客文章 “Can I Use Tetragon Without Cilium? Yes!” 的详细总结和翻译(包括重点观点与背景解释)。(Isovalent)
📌 文章核心结论(一句话)
是的,你可以在没有安装 Cilium 的情况下单独使用 Tetragon 来实现基于 eBPF 的安全可观察性与运行时策略执行。 (Isovalent)
🧩 背景:什么是 Tetragon?
Tetragon 是由 Isovalent(Cilium 的创造者)开发的一个基于 eBPF 的 安全可观察性和运行时增强(Runtime Enforcement)工具。
它的主要用途是:
✔ 监控系统行为(如进程执行、系统调用、文件访问和网络操作)
✔ 提供完整上下文的可观测数据(包括 Kubernetes身份信息)
✔ 在内核级别执行安全策略和响应措施
✔ 在发现异常或违反规则时实时阻断执行
这些能力由内核中的 eBPF 程序直接实现,因此性能开销非常低。(Isovalent Learning Platform)
🆓 与 Cilium 的关系
❗常见误解
很多人认为 Tetragon 必须和 Cilium CNI/网络代理一起使用,或者至少依赖 Cilium 的存在才能运行。
👉 官方给出明确回答:这不是必须的。
Tetragon 的设计并不要求你预先安装或运行 Cilium。(Isovalent)
🧠 为什么可以独立运行
✅ Tetragon 的基础架构是 eBPF
- Tetragon 的核心是一个 eBPF 程序,与 Cilium 的工作模式一致(都是在 kernel space 运行)。
- eBPF 能够从内核层拦截系统级事件,而不依赖特定的 CNI 或网络层插件。(Isovalent Learning Platform)
👉 只要系统支持 eBPF(需要内核支持 & BTF) ,Tetragon 就能独立运行。
🎯 实际场景
✅ 在 Kubernetes 中单独部署
即便 Kubernetes 集群没有安装 Cilium:
- 你仍然可以通过 Tetragon 的 Helm Chart 或 Operator/DaemonSet 安装 Tetragon
- Tetragon 会在每个节点上运行 agent,采集事件并执行策略
- 能看到 Pods 相关的身份信息(namespace / labels / pod name)
- 能执行 tracing policies(就是脚本化的安全规则)(Isovalent)
📦 如何独立运行(简要说明)
官方文档/博客示例说明:
helm repo add cilium https://helm.cilium.io
helm repo update
helm install tetragon cilium/tetragon -n kube-system
这条命令不会要求安装 Cilium,只会部署 Tetragon 自身组件。(思科直播)
🧠 需要注意的事实
🔹 有些扩展特性可能仍依赖 Cilium
虽然核心功能不依赖 Cilium,但:
- 某些高级策略(比如跨节点 pod IP 到 pod 元数据的映射)
可能依赖 Cilium 提供的元数据源 - 官方曾提到希望未来通过 CRD/Operator 把这部分也去掉(Issue #794)。(GitHub)
但是这些属于边缘功能,并不影响 Tetragon 的独立运行和基本策略使用。
🔍 核心工作原理(关联背景)
Tetragon 能做到独立运行的关键在于:
✔ System-wide 可观察性
它直接通过 eBPF 追踪:
- 系统调用(syscalls)
- 进程执行/退出
- 网络事件(连接、监听等)
- 文件访问
- 命名空间和权限改变(例如提权尝试)(Isovalent Learning Platform)
并且对这些事件附加上下文信息,例如:
- 哪个容器/Pod
- 哪个 namespace
- 二进制文件路径
这使得它在容器环境中非常适合用于安全监测。(Isovalent Learning Platform)
🧠 核心优势总结
| 功能方向 | 是否需要 Cilium | 说明 |
|---|---|---|
| 内核级安全观测 | ❌ 不需要 | 直接使用 eBPF |
| 运行时策略执行 | ❌ 不需要 | 内核事件响应 |
| Kubernetes 容器身份识别 | ❌ 不需要 | Tetragon 自身解析 metadata |
| 高级 pod-to-pod 映射 | ⚠️ 可选 | 可能借助 Cilium 元数据优化 |
🧠 结论(翻译版)
你不需要 Cilium 才能使用 Tetragon。
Tetragon 是一个独立的、轻量级、内核级的安全可观察性和运行时防护平台,它基于 eBPF 技术,不依赖于某个特定 CNI,只要目标系统支持 eBPF,就可以部署并监控运行环境中的大量行为事件,并执行安全策略。(Isovalent)
📌 术语解释(方便理解)
eBPF(Extended Berkeley Packet Filter)
- Linux 内核中一个强大的可编程机制,可以在内核中挂载程序来捕获事件、过滤数据、执行策略等。
Runtime Enforcement
- 在系统运行时对行为进行实时策略执行,比如阻止某个系统调用或阻止恶意行为。
Security Observability
- 对系统运行时行为提供透明的监控和日志,帮助分析安全事件。