即使不使用 cilium 也可以使用 Tetragon 做安全增强

97 阅读4分钟

image.png

image.png

下面是对 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

  • 对系统运行时行为提供透明的监控和日志,帮助分析安全事件。