kern - AI 생성 코드를 매번 새 컨테이너에서 실행하는 경량 루트리스 런타임

1 hour ago 3
  • AI가 생성한 코드, 에이전트 도구 호출, CI 작업 등을 호스트에서 직접 실행하지 않고 별도 컨테이너에 격리하는 Linux 런타임
  • 데몬이나 소켓 없이 정적 바이너리 하나로 동작하며, 호스트의 root 권한 없이 실행됨
  • 컨테이너가 없을 때 런타임의 상주 프로세스도 없어, 필요할 때 실행하고 종료하는 작업에 적합
  • /bin/true를 실행후 종료하는 컨테이너로 테스트시
    • docker run --rm 에 비교해 1개만 실행시 약 80배, 200개 동시 실행에서 약 130배 빠름
    • rootless runc 대비로는 약 3.6배 빠름
  • 컨테이너 시작과 종료 비용을 줄여 도구 호출마다 새 실행 환경을 만들고 폐기하는 방식을 기본으로 사용 가능
  • Python/Node SDK와 MCP 서버를 제공해 에이전트에 연결 가능. SDK는 기본적으로 네트워크와 호스트 디렉터리 접근을 차단하고, 실행 시간 제한을 적용
  • 타임아웃, 메모리 초과, 시작 실패 등을 구분된 결과 값으로 반환하므로, 에이전트가 실패 원인에 따라 재시도하거나 작업을 수정하기 쉬움
    • 필요하면 파일을 공유하는 세션이나 인터프리터를 유지하는 실행 방식도 선택 가능
  • Linux 네임스페이스, pivot_root, seccomp 허용 목록, capability 제거 등으로 격리하며, --security-profile untrusted로 읽기 전용 루트와 capability 전체 제거 설정을 함께 적용
  • OCI 이미지와 Dockerfile을 사용하고 기존 docker-compose.yml도 직접 읽을 수 있어, 기존 컨테이너 환경을 활용 가능
  • CPU와 메모리 등의 자원 제한을 컨테이너뿐 아니라 호스트 프로세스에도 적용 가능. kern doctor로 확인하고 --require-limits로 제한 적용이 불가능한 실행을 거부할 수 있음
  • Linux x86_64와 ARM에서 실행되며, Windows는 WSL2, macOS는 Linux VM이 필요
  • 호스트의 Linux 커널을 공유하는 컨테이너 격리이므로, 외부인의 적대적인 코드를 여러 테넌트가 공유하는 호스트에서 실행하는 용도로는 권장하지 않음
  • Apache-2.0 라이선스
Read Entire Article




피플앤툴즈 네트워크
🛍 샵