返回

文章详情

展示HN:Nucleus – 一个安全强化的Nix原生容器运行时

Hacker News2026年6月9日 23:03

极其轻量级、安全强化、声明式的运行时容器,适用于代理和生产服务。Nucleus是一个最小化的Linux容器运行时。它提供了使用Linux内核原语的隔离执行环境,而没有传统容器运行时的开销。对于生产服务,Nucleus围绕一个完全声明性的模型设计:Nix构建根文件系统,NixOS模块声明服务,Nucleus在运行时挂载一个固定的、可重现的闭包。Nucleus支持三种操作模式:代理模式(默认)– 用于AI代理工作负载的短暂、快速启动的沙盒,严格代理模式 – 失败关闭的隔离用于无需生产根文件系统的短暂代理工作负载、健康检查、sd_notify或NixOS服务语义,生产模式 – 对于长时间运行、网络绑定的NixOS服务提供严格隔离,具有声明式配置、可重现的Nix构建根文件系统、出口策略执行、健康检查和systemd集成。生产部署设定为:完全声明式 – 服务拓扑、运行时设置和挂载的根文件系统是在部署时事先定义,而不是在部署期间按命令组装,Nix原生 – 一流的NixOS模块支持以及nucleus.lib.mkRootfs用于最小服务闭包, 可重现 – 基于flake的构建、固定的存储路径和根文件系统证明保持运行时输入稳定和可审核。基准测试:冷启动运行时启动时间:Nucleus 12毫秒,Docker约500毫秒,PostgreSQL 18(pgbench,8个客户端,60秒,规模50)。在原生运行时中,PostgreSQL在Nucleus隔离下保持接近裸金属性能。在这个框架中,偶尔优于裸金属的表现应视为基准噪声,而非保证的加速。仅选择(读重)环境I/O方法:平均每秒交易数(TPS)和平均延迟。裸金属工作者 100,222 0.080 ms,裸金属 io_uring 84,895 0.096 ms,Nucleus工作者 105,965 0.075 ms,Nucleus io_uring 107,039 0.074 ms。TPC-B(混合读/写)环境I/O方法:平均每秒交易数(TPS)和平均延迟。裸金属工作者 1,490 5.38 ms,裸金属 io_uring 1,382 5.79 ms,Nucleus工作者 1,757 4.55 ms,Nucleus io_uring 1,585 5.05 ms。测量运行于Linux 6.18 x86_64。该基准测试使用原生运行时,并绑定挂载主机pgdata目录和--network host,因此它测量Nucleus隔离的稳态成本,而非虚拟机或gVisor仿真开销。完整结果:benches/pg18_io/results/。为什么选择Nucleus?默认声明式服务 – 生产部署在NixOS和TOML中定义,而不是通过临时运行时脚本拼接在一起,深度Nix集成 – 一流的NixOS模块,mkRootfs和Nix存储闭包用于最小的、锁定的服务根, 可重现的服务构建 – 基于flake的打包、固定输入和根文件系统证明使运行时状态可审核且可重复,零开销隔离 – 直接使用cgroups、命名空间、pivot_root、能力、seccomp和Landlock。内存支持的文件系统 – 容器磁盘映射到tmpfs,预填充代理上下文,gVisor集成 – 可选的应用内核以增强安全性,包括网络服务模式,为gVisor提供OCI运行时规范子集 – 为runsc生成OCI包/config数据,包括进程身份、挂载、命名空间、seccomp、挂钩和cgroup路径接线,分离模式 – 以systemd短暂服务的方式在后台运行容器,使用--detach,通过nucleus stop/logs/attach进行管理。生产服务支持 –声明式NixOS模块、出口策略、健康检查、秘密挂载、sd_notify和journald集成,明确的工作负载身份 – 本地和gVisor运行时可以在特权设置之后降至配置的uid/gid加上补充组,最小根文件系统 – 将主机绑定挂载替换为为生产服务专门构建的Nix存储闭包,外部安全策略 – 每个服务的seccomp配置文件(JSON)、能力策略(TOML)和Landlock规则(TOML)带有SHA-256固定,seccomp配置文件生成 – 跟踪模式记录系统调用,然后nucleus seccomp generate创建一个最少的允许列表配置文件,多容器拓扑 – 组合等效的TOML格式,具有依赖DAG、和解以及NixOS systemd集成,完整性与审核控制 – 结构化审核日志、可机读的生命周期事件流、上下文哈希、根文件系统证明、seccomp拒绝日志、挂载标志验证和内核锁定断言,结构化遥测 – 可选的OpenTelemetry导出容器生命周期跟踪,Linux原生 – 在标准Linux和NixOS上运行,与Docker的关系,Nucleus并不是一个可直接替代的Docker,亦不是Docker的严格子集。特性集重叠,但是每个工具都有自己独特的功能。Nucleus是一个强化的沙盒运行时(更接近于runc/gVisor),同时也进行轻量级的、声明式的单主机编排。它放弃了Docker的镜像和分发部分,以换取更深的隔离、政策和可重现性。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡