首页
/ Cilium Tetragon 开发环境搭建指南

Cilium Tetragon 开发环境搭建指南

2026-02-04 05:14:15作者:魏侃纯Zoe

前言

Cilium Tetragon 是一个基于 eBPF 技术的安全可观测性工具,能够实时监控系统调用和内核事件。本文将详细介绍如何搭建 Tetragon 的开发环境,帮助开发者快速上手项目开发。

基础环境准备

硬件要求

  • 推荐使用 x86_64 架构的机器
  • 至少 4GB 内存
  • 20GB 可用磁盘空间

软件依赖

  1. Go 工具链:需要与项目 go.mod 文件中指定的版本一致
  2. GNU Make:构建系统的基础工具
  3. 容器运行时:Docker 或 Podman
  4. 构建插件:docker-buildx-plugin
  5. 测试依赖
    • libcap 库
    • libelf 库

在基于 Debian 的系统上,可以通过以下命令安装依赖:

sudo apt-get update
sudo apt-get install -y libelf-dev libcap-dev make

构建 Tetragon

完整构建

执行以下命令将构建 Tetragon 的所有组件,包括测试所需的二进制文件:

make

使用 Podman 构建

如果系统使用 Podman 作为容器运行时,可以这样构建:

CONTAINER_ENGINE='sudo podman' make

使用本地 Clang 构建

对于需要使用本地 Clang 的情况:

CONTAINER_ENGINE='sudo podman' LOCAL_CLANG=1 LOCAL_CLANG_FORMAT=1 make

注意:需要确保本地安装的 Clang 版本满足最低要求。

最小化构建

如果只需要构建核心组件,可以使用以下命令:

make tetragon tetragon-bpf tetra

这将构建:

  • Tetragon 主程序
  • BPF 程序
  • tetra CLI 工具

运行 Tetragon

构建完成后,可以使用以下命令运行 Tetragon:

sudo ./tetragon --bpf-lib bpf/objs

重要说明:

  1. --bpf-lib 参数指定了 BPF 程序的存放路径
  2. 如果遇到 BTF 相关错误,需要确保内核支持 BTF 或手动指定 BTF 文件路径

容器化部署

构建 Docker 镜像

make image

运行容器

docker run --name tetragon \
   --rm -it -d --pid=host \
   --cgroupns=host --privileged \
   -v /sys/kernel/btf/vmlinux:/var/lib/tetragon/btf \
   cilium/tetragon:latest

查看事件

docker exec -it tetragon \
   bash -c "/usr/bin/tetra getevents -o compact"

系统服务部署

构建可部署的 tarball:

make tarball

开发环境配置

使用 Kind 集群

make kind-setup

验证安装:

kubectl get pods -n tetragon

使用 Vagrant (Intel Mac)

vagrant up
vagrant ssh
make

使用 Lima (Apple Silicon Mac)

  1. 安装 Lima:
brew install lima
  1. 创建并启动 VM:
limactl create --mount-writable --tty=false --name=tetragon
limactl start tetragon
limactl shell tetragon
  1. 安装依赖:
sudo add-apt-repository -y ppa:longsleep/golang-backports
sudo apt update
sudo apt install -y golang-1.23 libelf-dev libcap-dev make
export CONTAINER_ENGINE=nerdctl
export PATH=$PATH:/usr/lib/go-1.23/bin
  1. 构建 Tetragon:
make -j3 tetragon-bpf tetragon tetra

常见问题解决

  1. BTF 错误:确保内核支持 BTF 或手动指定 BTF 文件路径
  2. 构建失败:检查依赖是否完整安装,特别是 libelf 和 libcap
  3. 容器权限问题:确保使用 --privileged 标志运行容器

结语

本文详细介绍了 Tetragon 开发环境的搭建方法,涵盖了从本地构建到容器化部署的多种场景。开发者可以根据自己的需求选择合适的开发方式。搭建好环境后,就可以开始探索 Tetragon 的强大功能并进行定制开发了。

登录后查看全文
热门项目推荐
相关项目推荐