You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Falco DaemonSet初始化容器异常求助:Helm部署eBPF遇404错误

解决Falco Helm部署初始化容器404错误的方案

核心原因分析

初始化容器的curl 404错误,本质是falco-driver-loader容器拉取匹配内核版本的eBPF驱动文件时,请求的资源路径不存在,常见触发场景:

  • 节点内核版本过新/过旧,官方预编译驱动库无对应版本
  • Helm values配置的驱动下载地址错误
  • 集群节点无法访问官方驱动仓库(网络限制)

具体解决步骤

1. 核对内核版本与预编译驱动支持

登录集群任意节点,执行命令获取内核版本:

uname -r

若该版本不在Falco官方预编译驱动列表中,可开启现场编译eBPF驱动,在values.yaml中添加配置:

falco:
  driver:
    kind: ebpf
    compile: true

注意:开启编译需节点具备gcc、make等工具,若节点未预装,可通过values启用编译工具镜像,或提前在节点安装依赖。

2. 修正驱动下载地址配置

确认内核版本有对应预编译驱动后,检查values.yaml中的驱动仓库地址是否正确。默认地址为https://download.falco.org/driver,若网络访问受限,可切换至国内镜像源或自建仓库:

falco:
  driver:
    repository: "https://your-internal-mirror/falco-driver"

需确保仓库下存在对应内核版本的驱动文件(命名格式:falco-<内核版本>-<架构>.o)。

3. 检查并自定义初始化容器curl命令

查看Falco DaemonSet的初始化容器定义:

kubectl describe daemonset falco -n falco

定位falco-driver-loader容器的command,确认curl请求的URL是否正确。若路径有误,可通过values自定义命令:

falco:
  driver:
    initContainer:
      command: ["bash", "-c", "curl -fSL https://correct-repo/falco-$(uname -r)-$(uname -m).o -o /tmp/falco-driver.o"]

4. 处理网络访问限制

若节点无法访问外部仓库,可手动下载对应驱动文件,通过ConfigMap挂载到初始化容器:

# 本地下载驱动后创建ConfigMap
kubectl create configmap falco-driver --from-file=falco-driver.o=/local/path/to/driver.o -n falco

在values.yaml中配置挂载:

falco:
  driver:
    kind: ebpf
    initContainer:
      extraVolumeMounts:
        - name: falco-driver
          mountPath: /tmp/falco-driver.o
          subPath: falco-driver.o
  extraVolumes:
    - name: falco-driver
      configMap:
        name: falco-driver

验证操作

修改配置后重新执行Helm升级:

helm upgrade falco falcosecurity/falco -n falco -f values.yaml

查看初始化容器日志确认结果:

kubectl logs -n falco <falco-pod-name> -c falco-driver-loader

内容的提问来源于stack exchange,提问作者Pablo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:05:46