第 11 篇 谈成本归因。本篇谈版本门:为何「只 bump 用户态 chart」会在 0.43→0.44 变成无事件或启动失败,以及 0.44.1 相对 0.44.0 补了哪一扇容器可用性门。
官方 blog Introducing Falco
0.44.0(2026-05-26)写明:驱动 API 与 Schema 大
bump;随 0.43.0 发布的 kmod / modern_ebpf
与 0.44.0 用户态不兼容,升级必须 redeploy
匹配驱动(本系列钉
10.2.0+driver)。这不是可选项。
本篇在系列中的位置
篇目 核心内容 第 11 篇 · 观测税 成本与噪声 第 12 篇 · 运维与升级 破坏性变更与成对升级 第 13 篇 · 排障坐标系 五轴否证 系列目录 全部篇目
版本锚定:目标态 Falco 0.44.1(2026-06-11)。破坏性删除以 0.44.0 Changelog / blog 为准;0.44.1 主补丁为 可禁用 BPF iterators(libs
0.25.4)。无集群则不写「升级成功」叙事,只给否证检查单。
一、破坏性变更:legacy eBPF / gVisor / gRPC output
0.44.0 完成自 0.42/0.43 起的弃用周期,整栈删除:
| 已删除项 | 旧配置线索 | 迁移方向(0.44.1) |
|---|---|---|
| Legacy eBPF probe | engine.kind=ebpf /
engine.ebpf;Helm 旧
driver.kind=ebpf |
modern_ebpf 或 kmod |
| gVisor engine | engine.kind=gvisor /
engine.gvisor |
换监控路径;不得再当 Falco 引擎 |
| gRPC output 与 gRPC server | grpc_output / grpc 顶层块 |
HTTP output 或 Falcosidekick 等仍存在的 sink |
blog 与 chart BREAKING-CHANGES
一致:若环境仍残留上述键,Falco 可能在启动期直接失败。旧
runbook 里的 --set driver.kind=ebpf
禁止写入 0.44.1 操作手册。
二、API / Schema bump
| 断言 | 来源 | 运维含义 |
|---|---|---|
| 0.43 驱动 与 0.44 用户态 不兼容 | 0.44.0 blog / Release Notes | 必须成对换驱动到 10.2.0+driver |
| 错配表象 | Kernel Events Architecture + 本系列第 3 篇 | 启动失败或无原始事件,易被误判为规则错误 |
| 协商对象 | API Version(通信)+ Schema Version(事件类型集) | 只升一边 = 轴 2 必然否证失败 |
「chart 已经是 0.44.x,节点上还挂着 0.43 构建的
.ko / 旧 probe」是经典事故。Helm 滚动若未重启
loader / 未换 falco-driver-loader
镜像标签,用户态与驱动会短暂或长期分叉。
三、规则与 plugin 兼容
0.44.0 同时带来规则语言增强(如比较运算符的
oneof / anyof /
allof)与更严的规则 schema
校验;随发行说明钉过配套 falco-rules 与
container 等 plugin 版本。升级检查不只看
Falco 二进制:
| 组件 | 升级时核对 |
|---|---|
| 规则文件 / falcoctl artifact | 是否通过新 schema;是否误用仅新版本支持的语法却钉在旧规则集 |
| plugin(container、k8smeta 等) | 与 0.44.1 兼容的版本;元数据空会导致轴 3「条件永远假」 |
| 下游 sink | 是否仍指向已删的 gRPC;HTTP/file/stdout 是否可达 |
规则「能加载」≠「字段有值」。plugin 与规则仓库协作边界见第 9、15 篇;本篇只要求升级窗口内版本矩阵写进变更单。
四、升级检查单(否证表)
| # | 检查项 | 通过标准 | 失败落轴 |
|---|---|---|---|
| 1 | 配置清除已删键 | 无 engine.ebpf / gVisor /
grpc_output/grpc |
启动失败(部署/配置) |
| 2 | 用户态版本 | 进程为 0.44.1(或明确的 0.44.x 目标) | — |
| 3 | 驱动版本 | 10.2.0+driver
与用户态匹配 |
2 |
| 4 | driver.kind |
∈ {auto, modern_ebpf, kmod};无
ebpf |
1 |
| 5 | 实际引擎 | 事故节点 Driver 行与预期一致;auto
分列记录 |
1 |
| 6 | 原始事件 | 有 scap 流(语义上可核对;无环境不伪造) | 2 |
| 7 | 规则与 plugin | 加载成功;关键字段非空 | 3–4 |
| 8 | 输出 | 非 gRPC;下游收到测试告警 | 5 |
| 9 | 容器 iterators | 若现代 eBPF 在容器 PID 场景出问题:评估
disable_iterators(0.44.1) |
5 |
0.44.1 相对 0.44.0:增加禁用 BPF iterators 的支持,并修复相关问题(bump libs)。默认仍可用 iterators 做启动态与 drop 后恢复;在非 host PID 命名空间时文档写明会自动禁用。把 0.44.0 容器坑写成「0.44 全系无解」不符合 0.44.1 事实。
五、live 文档 vs tag
| 来源 | 用法 |
|---|---|
源码 tag 0.44.1、配套
libs/drivers、该版本 falco.yaml |
机制结论唯一锚 |
| 0.44.0 blog / Changelog | 破坏性变更与成对升级的 A/B 级叙述 |
falco.org/docs/ /latest |
线索;后版本能力禁止写成 0.44.1 事实 |
| 第三方「一键升级」帖 | C 级;不单独支撑 |
值班口诀:变更单写 tag,不写 “docs 今天看到的新键”。 下一篇把升级失败与日常无告警一并收进五轴否证。
参考资料
规范 / 官方文档(A/B)
- Falco 0.44.0 Release Notes /
Changelog(删除 legacy BPF、gVisor、gRPC;drivers
10.2.0+driver) - Introducing Falco 0.44.0(成对升级警告;规则修饰符等)
- Falco 0.44.1 Release
Notes(
disable_iterators;libs0.25.4) - falcosecurity/charts
BREAKING-CHANGES.md(chart 侧 gRPC / ebpf / gVisor)
本系列
- 第 3 篇 · libscap 协商;第 8 篇 · 输出面
- PLAN.md §七版本门禁
上一篇:观测税与误报面
下一篇:排障坐标系
读完这篇,下一步读什么
优先读同系列或同问题的下一篇,把单篇消费变成主题集群。
【Falco】libscap:捕获会话与 API/Schema 协商
钉清 libscap 如何把驱动事件送入用户态:打开会话、ring/缓冲、API Version 与 Schema Version 协商,以及与 modern_ebpf / kmod 的接口差;说明 0.43→0.44 大 bump 的失败表象。
【Falco】运行时检测全景:缺口、五轴坐标系与 16 篇路线
相对 Tetragon 排除树、可观测对照与 linux/ebpf-security 快速启用清单,钉清 Falco 0.44.1 检测内核缺口;定义 Driver、libscap、libsinsp、规则引擎、输出与丢事件五条轴,并强调 modern_ebpf 与 kmod 分列证据包。
【Falco】双引擎对照:modern_ebpf 与 kmod 等级路径
钉清 Falco 0.44.1 仅保留的两条等级内核路径:modern_ebpf 的嵌入、CO-RE 与能力集,以及 kmod 的独立 .ko、签名与完整特权;说明何时不能互换,并把 auto 回退收束为运维门。
【Falco】libsinsp:状态富化与用户态进程树
钉清 libsinsp 如何用机器状态、线程/FD 表与用户态进程树富化 scap 事件;对照 Tetragon exec_id 的内核血缘差,并列出富化失败时规则条件「永远假」的表象。