【Tetragon / eBPF】选型收束:排除树、开放问题与系列边界关闭
用机制排除树收束何时不该跑 Tetragon;回收 Cilium 16 的运行时安全指针;列出 TOCTOU 可接受边界、JSON 与 gRPC 完备性、以及 v1.7.0 之后的 nodeSelector 与 domain sharding;关闭本系列续作边界。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 17 篇文章 · 返回首页
用机制排除树收束何时不该跑 Tetragon;回收 Cilium 16 的运行时安全指针;列出 TOCTOU 可接受边界、JSON 与 gRPC 完备性、以及 v1.7.0 之后的 nodeSelector 与 domain sharding;关闭本系列续作边界。
补齐站内 Cilium 数据面与可观测对照之上的运行时安全内核层:进程模型、Sensor/Hook、TracingPolicy 与内核过滤、强制执行、事件导出与节流,并以排障与相对 Falco/CNP 的选型收束。
相对 Cilium 数据面、可观测对照与 Falco 口号,钉清 Tetragon v1.7.0 运行时安全内核缺口;定义进程血缘、Sensor/Hook、策略加载、过滤分层、强制执行五条坐标系,给出 16 篇阅读路线。
钉清 Tetragon v1.7.0 的进程身份:process_exec/exit 字段、exec_id 如何由 node:ktime:pid 生成、execve_map 与用户态 cache 的分工、in_init_tree 如何区分 kubectl exec 注入,以及 fork 时父不在 map 则子不入图的失败路径。
钉清 Tetragon v1.7.0 内置 __base__ 进程传感器与 TracingPolicy 动态 hook 的分工:kprobe/kretprobe、tracepoint/rawtp、uprobe/USDT、LSM 与 fentry 各自能观察什么、依赖哪些内核能力,以及选错 hook 类型时的失败表象。
钉清 Tetragon v1.7.0 事件离开 agent 之后的分流:文件 JSON、gRPC 与把 JSON 再喂给 tetra 不是同一集合;官方 Caution 写明 allow/deny 只作用于 file sink;field filter 与 redaction 各在哪一层生效。
钉清 Tetragon v1.7.0 agent 从 BTF/CO-RE 发现到 sensor 挂载的失败表象;对照 DaemonSet 与主机安装;说明默认 gRPC Unix socket 与 kubectl/gRPC/静态文件三条路径如何进入同一 collection map。
钉清 TracingPolicy 与 TracingPolicyNamespaced 的差异;给出 v1.7.0 CRD 字段总表(含 fentries);说明 kubectl、gRPC、静态文件如何共用 collectionKey;并写明 Enable/Disable gRPC 在默认配置下返回错误。
钉清 TracingPolicy 选择器在 v1.7.0 的匹配语义(selector 内 AND、每 hook 最多 5 个、first-match OR);覆盖 matchArgs/matchBinaries/matchParentBinaries 与 Post/NoPost/Override/Sigkill/Signal;区分内核动作与用户态 GetUrl/DnsLookup。
钉清 TracingPolicyNamespaced、podSelector、containerSelector 与 v1.7.0 hostSelector(null 与 {});改编官方组合表;说明无 OCI hook 时 API server best-effort,以及 policyfilter 关闭时的加载失败语义。
把 Tetragon v1.7.0 的文件、网络、能力观测收成三类 hook 模式:d_path 与参数类型如何解析路径、sock/sockaddr 看见什么、cred/capset 记录什么;并钉死路径截断、单挂载点、硬链接与 6.2+ truncate 符号消失等失败表象。
按 Tetragon v1.7.0 官方 Enforcement 文档钉死:Override 使函数不执行并返回 argError;SIGKILL 终止进程但不保证当前 syscall 无副作用;monitor 与 enforce 如何把动作抹掉;以及 Bishop–Dilger–Garfinkel 的 TOCTOU 谱系落到 bpf_enforcer.c 的边界。
按 Tetragon v1.7.0 tag 文档 cgroup-rate.md 钉死:节流只覆盖 PROCESS_EXEC/PROCESS_EXIT、按 per-CPU 计数、THROTTLE_START/STOP 语义;Post.rateLimit 要求内核 ≥5.3 且按同线程加参数前 40 字节去重;环缓冲丢失是失败模式而不是策略未匹配。
钉死 Tetragon v1.7.0 Upgrade notes:kprobe merge 指标合并为 tetragon_generic_kprobe_merge_total;JSON 轮转只服务文件 sink;默认 gRPC 改为 unix:///var/run/tetragon/tetragon.sock 会打断第三方客户端。不写 Splunk/ELK 菜谱。
按五轴映射 Tetragon v1.7.0 故障:无事件落在 Hook/BTF/加载,策略不生效落在 collectionKey 撞名与 policyfilter,JSON allow/deny 不等于 gRPC,Override 依赖 CONFIG_BPF_KPROBE_OVERRIDE,血缘空洞来自 execve_map 未命中与 procFS 回填。
从过滤发生在哪一层、能否 inline 阻断对照 Falco、auditd、Cilium CNP/Hubble 与 seccomp;以 Garfinkel NDSS 2003 与 Falco CVE-2022-26316 作为 TOCTOU 谱系,不做 CPU 或内存排行。
钉死 Tetragon v1.7.0 Runtime Hooks:无 hook 时身份策略依赖 API server 而存在窗口;tetragon-oci-hook 经 tetragon.sock 同步通知 agent;CRI-O OCI 目录与 containerd NRI 的分工;agent 不可达时按命名空间 fail-open 或 fail-closed。