Show HN: Nucleus – 보안 강화된 Nix 기반 컨테이너 런타임
출처: Hacker News
극도로 가볍고 보안이 강화된 선언형 컨테이너 런타임 – 에이전트와 프로덕션 서비스용
Nucleus는 Linux용 미니멀리스트 컨테이너 런타임입니다. 전통적인 컨테이너 런타임이 갖는 부하 없이 Linux 커널 기본 기능을 이용해 격리된 실행 환경을 제공합니다. 프로덕션 서비스에서는 완전 선언형 모델을 기반으로 설계되었습니다: Nix가 루트 파일시스템을 빌드하고, NixOS 모듈이 서비스를 선언하며, Nucleus는 실행 시 고정된 재현 가능한 클로저를 마운트합니다.
Nucleus는 세 가지 운영 모드를 지원합니다:
- Agent 모드 (기본) – AI 에이전트 워크로드용, 일시적이며 빠르게 시작되는 샌드박스
- Strict agent 모드 – 프로덕션 루트FS, 헬스 체크, sd_notify, NixOS 서비스 의미론 없이도 일시적 에이전트 워크로드에 대해 실패-폐쇄형 격리를 제공
- Production 모드 – 선언형 설정, 재현 가능한 Nix 빌드 루트 파일시스템, 외부 정책 적용, 헬스 체크, systemd 통합을 갖춘 장기 실행, 네트워크 바인드된 NixOS 서비스에 대한 엄격한 격리
프로덕션 배포는 다음을 목표로 합니다:
- 완전 선언형 – 서비스 토폴로지, 런타임 설정, 마운트된 루트FS를 배포 시점에 즉시 정의하고, 배포 시점에 명령형으로 조립하지 않음
- Nix 네이티브 – 1급 NixOS 모듈 지원 +
nucleus.lib.mkRootfs로 최소 서비스 클로저 생성 - 재현 가능 – 플레이크 기반 빌드, 고정된 스토어 경로, 루트FS 증명으로 런타임 입력을 안정적이고 감사 가능하게 유지
Benchmarks
Cold Start
Runtime
Startup Time
Nucleus
12 ms
Docker
~500 ms
PostgreSQL 18 (pgbench, 8 clients, 60 s, scale 50)
네이티브 런타임에서는 Nucleus 격리 하에서도 PostgreSQL이 베어메탈 성능에 가깝게 유지됩니다. 이 벤치마크에서 가끔 나타나는 베어메탈 대비 우위는 보장된 속도 향상이 아니라 벤치마크 잡음으로 간주하십시오.
SELECT 전용 (읽기 위주)
| Environment | I/O Method | Avg TPS | Avg Latency |
|---|---|---|---|
| 베어메탈 | worker | 100,222 | 0.080 ms |
| 베어메탈 | io_uring | 84,895 | 0.096 ms |
| Nucleus | worker | 105,965 | 0.075 ms |
| Nucleus | io_uring | 107,039 | 0.074 ms |
TPC‑B (읽기/쓰기 혼합)
| Environment | I/O Method | Avg TPS | Avg Latency |
|---|---|---|---|
| 베어메탈 | worker | 1,490 | 5.38 ms |
| 베어메탈 | io_uring | 1,382 | 5.79 ms |
| Nucleus | worker | 1,757 | 4.55 ms |
| Nucleus | io_uring | 1,585 | 5.05 ms |
Linux 6.18 x86_64 환경에서 측정되었습니다. 이 벤치마크는 호스트 pgdata 디렉터리를 바인드 마운트하고 --network host 옵션을 사용한 네이티브 런타임을 이용하므로, VM이나 gVisor 에뮬레이션 오버헤드가 아닌 Nucleus 격리의 정상 상태 비용을 측정한 것입니다. 전체 결과: benches/pg18_io/results/
Why Nucleus?
- 서비스를 위한 선언형 기본값 – 프로덕션 배포는 임시 스크립트를 조합하는 대신 NixOS와 TOML으로 정의됩니다
- 깊은 Nix 통합 – 1급 NixOS 모듈,
mkRootfs, 최소·잠금된 서비스 루트용 Nix 스토어 클로저 제공 - 재현 가능한 서비스 빌드 – 플레이크 기반 패키징, 고정 입력, 루트FS 증명을 통해 런타임 상태를 감사·반복 가능하게 함
- 무오버헤드 격리 – cgroups, 네임스페이스, pivot_root, capabilities, seccomp, Landlock 직접 사용
- 메모리 기반 파일시스템 – 컨테이너 디스크를 tmpfs에 매핑하고 에이전트 컨텍스트를 미리 채워 둠
- gVisor 통합 – 보안을 강화한 선택적 애플리케이션 커널, 네트워크 서비스 모드 포함
- OCI runtime‑spec 서브셋 (gVisor용) –
runsc용 OCI 번들/구성 데이터를 생성 (프로세스 ID, 마운트, 네임스페이스, seccomp, 훅, cgroup 경로 등) - Detached 모드 –
--detach로 백그라운드에서 systemd transient 서비스로 실행,nucleus stop/logs/attach로 관리 - 프로덕션 서비스 지원 – 선언형 NixOS 모듈, egress 정책, 헬스 체크, 시크릿 마운트, sd_notify, journald 통합
- 명시적 워크로드 아이덴티티 – 네이티브·gVisor 런타임 모두 권한 설정 후 지정된
uid/gid와 보조 그룹으로 전환 가능 - 최소 루트FS – 호스트 바인드 마운트를 프로덕션 서비스를 위한 목적별 Nix 스토어 클로저로 교체
- 외부 보안 정책 – 서비스별 seccomp 프로파일(JSON), capability 정책(TOML), Land