Katakate/k7

Your own self-hosted infra for lightweight VM sandboxes to safely execute untrusted code. CLI, API, Python SDK. ⭐ Star it if you like it! ⭐

k7 – AI 컴퓨팅을 위한 셀프호스팅 보안 VM 샌드박스

개요

  • 경량적이고 격리된 가상 머신 샌드박스를 대규모로 배포할 수 있는 오픈소스 플랫폼(Apache-2.0). 안전하게 임의의 코드를 실행해야 하는 AI 에이전트를 대상으로 하지만, 커스텀 서버리스 워크로드, 강화된 CI/CD 러너, 블록체인 실행 레이어에도 사용할 수 있습니다.

주요 구성 요소

구성 요소 역할
Kubernetes (K3s) 하나 이상의 노드에서 샌드박스를 오케스트레이션합니다.
Kata Containers 컨테이너를 작은 VM으로 변환하여 강력한 격리를 제공합니다.
Firecracker 초고속 마이크로 VM 부팅(kfd 백엔드를 통해 사용).
QEMU Longhorn 기반 디스크를 갖춘 풀-피처 VM 옵션(kql 백엔드).
Longhorn QEMU 기반 샌드박스를 위한 복제된 PVC 스토리지. 스냅샷과 노드 간 이동을 가능하게 합니다.
k7d Katakate의 자체 마이크로 VM 런타임 데몬. 커스텀 KVM 기반 VMM을 제공하며 초고속 복사-온-라이팅(CoW) 포크(약 5ms)를 지원합니다.
Devmapper thin-pool Firecracker 백엔드를 위한 효율적인 블록 디바이스 스토리지.
Cilium (선택 사항) 네트워크 정책 강제 및 선택적 Hubble 관측 가능성.

백엔드 – 설치 또는 샌드박스 생성 시 하나를 선택합니다:

  • kfd – Kata + Firecracker + devmapper(빠른 부팅, 영구 스토리지 없음).
  • kql – Kata + QEMU + Longhorn(영구적, 스냅샷 가능한 디스크).
  • k7d – Katakate 커스텀 KVM 런타임(빠른 CoW 포크, VM 내 Docker 지원).
  • k7d-fck7d에 Firecracker 제일러 추가.

성능 하이라이트(Hetzner AX41 노드 중앙값):

  • 생성 → 준비 완료: k7d/k7d-fc는 2.1초, kql은 17.1초.
  • 웜 포크(디스크 + 메모리 CoW): VMM 레벨에서 약 5ms, k7d의 경우 끝에서 끝으로 약 2초.
  • 일시 중지 / 재개: k7d(메모리 유지)는 1초 미만, kql은 몇 초.

상호 작용 방법

  • CLI (k7) – APT 패키지(apt install k7)로 설치 가능. 명령어에는 install, create, list, delete, fork, pause, snapshot, 및 API 제어(api enable/disable)가 포함됩니다.
  • HTTP API – 클러스터에서 k7-api 서비스로 자동 배포됨(기본값 NodePort 31007). TLS는 자체 서명 CA로 설정되며, 실제 인증서를 사용하거나 Caddy 사이드카를 통해 Let’s Encrypt를 사용할 수 있습니다.
  • Python SDK (k7-sdk) – 동기 또는 비동기 사용이 가능한 pip 설치 가능 클라이언트. CLI 동작(create, exec, fork, list, delete)을 반영합니다.

일반적인 워크플로

  1. 노드 준비 – Ubuntu 24.04, KVM 접근 권한, thin-pool을 위한 예비 원시 디스크, Ansible, Docker.
  2. k7 install --backend kfd,kql,k7d 실행 – 플레이북이 K3s, Kata, Firecracker, QEMU, Longhorn 및 k7d 데몬을 프로비저닝합니다.
  3. CLI 구성 – 생성된 CA 인증서를 복사하고 API URL 및 키를 설정합니다.
  4. 샌드박스 생성k7.yaml(이미지, 리소스, 선택적 에그레스 화이트리스트, 사전 스크립트, 환경 파일)을 제공하고 k7 create를 실행합니다.
  5. 코드 실행k7 exec <sandbox> -- '<cmd>' 또는 SDK의 exec 메서드 사용.
  6. 포크 / 스냅샷 – 빠른 브랜치를 위한 웜 CoW 포크(k7 fork) 또는 QEMU 백엔드를 통한 디스크 전용 스냅샷.

보안 포지션

  • 각 샌드박스는 하드웨어 격리된 VM(Kata 또는 커스텀 k7d) 내에서 실행됩니다.
  • Firecracker 샌드박스는 추가로 chroot-제일링됩니다. Kata는 기본적으로 seccomp를 적용하고 모든 Linux 기능을 제거합니다.
  • 네트워크 에그레스는 샌드박스별로 화이트리스트로 설정할 수 있습니다. 선택적 Cilium 정책으로 추가 계층을 더할 수 있습니다.
  • 플랫폼은 베타 버전이며 보안 검토 중입니다. 민감한 워크로드에는 주의하여 사용하세요.

로드맵 하이라이트(ROADMAP.md에서 발췌)

  • ML 워크로드를 위한 GPU 패스스루 지원.
  • k7d-fc 백엔드를 위한 HA 모드.
  • 더 세밀한 정책 도구 및 관측 가능성 통합.

사용 대상

  • 안전하게 신뢰할 수 없는 코드를 실행해야 하는 AI 에이전트 개발자(예: LangChain ReAct).
  • 클라우드 제공자에 의존하지 않고 프라이빗 서버리스 플랫폼을 구축하는 팀.
  • Docker-in-Docker 리스크를 피하는 강화된 CI/CD 러너가 필요한 조직.
  • AI 기반 dApp을 위한 실행 레이어가 필요한 블록체인 프로젝트.

위 세부 사항은 모두 저장소의 README에서 직접 가져왔으며, 추가 기능은 추론되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트