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

Kubernetes节点Containerd加载seccomp过滤器报错,咨询调整bpf_jit_limit的影响

问题分析与解决方案

问题背景

Ubuntu 节点(内核版本 5.15.0-105-generic)上,启用 Seccomp Profile 的 Bitnami 系列 Pod(Redis、RabbitMQ、MongoDB)出现存活探针失败,报错信息如下:

(combined from similar events): Liveness probe errored: rpc error: code = Unknown desc = failed to exec in container: failed to start exec "5d1b455a1607ba76e2f1776836f3cd8bd094fc9ffe66cbaac3d16d6a921d9489": OCI runtime exec failed: exec failed: unable to start container process: unable to init seccomp: error loading seccomp filter into kernel: error loading seccomp filter: errno 524: unknown

已尝试重启容器、containerd(1.5.7)及 kubelet(Kubernetes 1.27.5),问题未得到解决。

报错根源

errno 524 对应内核扩展的内存不足错误,本质是 BPF JIT 编译器的内存配额耗尽。Seccomp 过滤器依赖 BPF 程序加载到内核执行,当net.core.bpf_jit_limit设置的内存上限无法容纳新的 Seccomp 规则时,就会触发加载失败。

解决方案:增大net.core.bpf_jit_limit参数

临时生效(节点重启后失效)

执行以下命令:

sysctl -w net.core.bpf_jit_limit=1073741824

永久生效(写入系统配置)

  1. 编辑/etc/sysctl.d/99-bpf-jit.conf文件,添加配置:
net.core.bpf_jit_limit=1073741824
  1. 加载配置使其生效:
sysctl --system

参数调整的影响说明

  • 内存占用:该参数控制 BPF JIT 编译器可使用的最大内存额度,增大后仅会在需要时为 BPF 程序(包括 Seccomp 过滤器)分配内存,不会主动占用额外闲置内存。
  • 性能影响:BPF JIT 编译后的代码执行效率更高,足够的内存配额能避免因加载失败导致的容器异常,不会对系统性能产生负面影响。
  • 风险控制:只要不设置超过节点可用内存 10% 的数值,不会引发内存耗尽风险。针对 5.15 内核的多 Seccomp Profile 场景,推荐设置为 1GB(1073741824)或 2GB。

验证方法

调整参数后,重启目标 Pod,检查存活探针状态:

kubectl get pods -n <你的命名空间>

查看 Pod 事件确认无 Seccomp 加载错误:

kubectl describe pod <Pod名称> -n <你的命名空间>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:51:04