
VM처럼 Systemd, Docker, Kubernetes와 같은 워크로드를 루트리스 컨테이너에서 실행할 수 있게 해주는 오픈소스 차세대 "runc"
Sysbox는 원래 Nestybox가 개발한(2022년 5월 [Docker에 인수][docker-acquisition]) 오픈소스 무료 컨테이너 런타임(특수화된 "runc")으로, 두 가지 핵심 방식으로 컨테이너를 향상시킵니다:
컨테이너 격리 강화:
모든 컨테이너에서 Linux 사용자 네임스페이스 사용 (즉, 컨테이너의 root 사용자는 호스트에서 권한이 없음).
컨테이너 내부의 procfs 및 sysfs 일부를 가상화.
컨테이너 내부의 호스트 정보 숨김.
컨테이너의 초기 마운트를 잠그는 기능 등.
컨테이너가 VM과 동일한 워크로드를 실행할 수 있게 함:
Sysbox를 사용하면 컨테이너는 systemd, Docker, Kubernetes, K3s, buildx(멀티 아키텍처 빌드 포함), 레거시 앱, 멀티 아키텍처 앱 등을 더욱 원활하고 안전하게 실행할 수 있습니다.
이 소프트웨어는 Sysbox 컨테이너 내에서 수정 없이 실행될 수 있으며 특수 버전(예: rootless 변형)을 사용할 필요가 없습니다.
특권(privileged) 컨테이너, 복잡한 이미지, 까다로운 엔트리포인트, 특수 볼륨 마운트 등이 필요 없습니다.
이를 **"컨테이너 슈퍼차저"**라고 생각하면 됩니다: 기존 컨테이너 관리자/오케스트레이터(예: Docker, Kubernetes 등)가 강화된 격리를 갖추고 VM에서 실행되는 거의 모든 워크로드를 실행할 수 있는 컨테이너를 배포할 수 있게 해줍니다.
Sysbox는 고급 OS 가상화 기술을 사용하여 컨테이너를 가능한 한 VM과 유사한 환경으로 만들어 이 작업을 수행합니다.
Kata 및 KubeVirt와 같은 대체 런타임과 달리 VM을 사용하지 않습니다. 이로 인해 (특히 클라우드 환경에서 중첩 가상화를 피할 수 있어) 사용이 더 쉬워지지만, VM 기반 런타임과 같은 수준의 격리를 제공하지는 않습니다. 비교는 여기를 참조하세요.
Sysbox를 활용하기 위해 새로운 도구를 배우거나 기존 컨테이너 이미지/워크플로우를 수정할 필요가 없습니다. 설치하고 컨테이너 관리자/오케스트레이터가 이를 가리키게 하면 향상된 컨테이너를 배포할 수 있습니다.
Sysbox는 동일한 호스트에서 다른 컨테이너 런타임(예: 기본 OCI runc, Kata 등)과 함께 공존할 수 있습니다. 필요에 따라 각각으로 실행할 컨테이너 또는 파드를 쉽게 선택할 수 있습니다.
Sysbox는 Apache License 버전 2.0에 따라 라이선스가 부여된 무료 오픈소스 소프트웨어입니다. 자세한 내용은 LICENSE 파일을 참조하세요.
Sysbox는 원래 Nestybox가 개발했습니다. [Nestybox가 이제 Docker의 일부가 되었으므로][docker-acquisition], Docker는 Sysbox 프로젝트의 주요 후원자입니다.
그럼에도 불구하고 Sysbox는 커뮤니티 오픈소스 프로젝트이며 Docker의 공식 지원을 받지 않습니다 (즉, Docker 구독에는 Sysbox 지원이 포함되지 않습니다). 지원은 이 Github 저장소 또는 [Sysbox Slack Workspace][slack]를 통해 최선의 노력(best effort) 기준으로 제공됩니다.
우리는 Sysbox를 발전시키고 개선하는 데 커뮤니티의 참여를 권장하며, 이를 통해 활성화되는 사용 사례와 이점을 늘리는 것을 목표로 합니다. 외부 관리자와 기여자를 환영합니다.
Sysbox는 다음과 같은 문제를 해결합니다:
컨테이너화된 마이크로서비스의 격리 강화 (컨테이너의 root는 호스트의 권한 없는 사용자에 매핑됨).
호스트 보안을 훼손하지 않으면서 컨테이너 내부에서 강력한 root 사용자를 활성화.
안전하지 않은 특권 컨테이너나 호스트 Docker 소켓 마운트 없이 Docker-in-Docker(DinD) 또는 Kubernetes-in-Docker(KinD)를 가능하게 하여 CI/CD 파이프라인 보호.
강력한 격리와 함께 systemd, Docker, IDE 등을 컨테이너 내부에서 실행할 수 있는 기능을 갖춘 개발, 로컬 테스트, 학습 등을 위한 "VM과 유사한" 환경으로 컨테이너 사용 가능.
레거시 앱을 (덜 효율적인 VM 대신) 컨테이너 내부에서 실행.
VM을 더 쉽고, 빠르고, 효율적이며, 휴대성이 뛰어난 컨테이너 기반 대안으로 대체하고, 클라우드 환경에 쉽게 배포 가능.
베어메탈 호스트를 VM 밀도의 2배로 분할하여 여러 격리된 컴퓨팅 환경으로 분할 (즉, 동일한 하드웨어에서 동일한 성능으로 VM보다 두 배 많은 VM과 유사한 컨테이너 배포).
값비싼 중첩 가상화에 의존하지 않고 클라우드 인스턴스(예: EC2, GCP 등)를 여러 격리된 컴퓨팅 환경으로 분할.
Sysbox는 Linux 호스트(베어메탈, VM, 온프레미스, 클라우드 등)에 쉽게 설치됩니다. 모든 주요 클라우드 기반 IaaS 및 Kubernetes 서비스(예: EC2, GCP, GKE, EKS, AKS, Rancher 등)에서 작동합니다.
설치가 완료되면 Sysbox는 내부적으로 작동합니다: Docker, Kubernetes 등을 사용하여 Sysbox로 컨테이너를 배포합니다.
예를 들어, 다음 간단한 Docker 명령은 Sysbox로 컨테이너를 생성합니다:
$ docker run --runtime=sysbox-runc -it any_image
잘 격리된 컨테이너를 얻을 수 있으며, 일반적으로 VM에서 실행되는 시스템 수준 소프트웨어(예: systemd, Docker, Kubernetes 등)는 물론 마이크로서비스도 원활하게 실행할 수 있습니다.
Sysbox 사용 방법에 대한 자세한 내용은 여기를 참조하세요.
표시된 것처럼 Sysbox는 권한 없는 컨테이너가 systemd, Docker, Kubernetes 등의 시스템 수준 워크로드를 원활하게 실행할 수 있게 하면서, 컨테이너 격리, 성능, 효율성 및 휴대성 사이의 균형 잡힌 접근 방식을 제공합니다.
그리고 기존 인프라에 대한 최소한의 구성 변경만으로 이를 수행합니다: Sysbox를 설치하고 원하는 이미지를 사용하여 컨테이너 관리자/오케스트레이터가 이를 통해 컨테이너를 실행하도록 구성하기만 하면 됩니다.
Sysbox는 표준 컨테이너의 격리를 강화하고 많은 시나리오에서 안전하지 않은 특권 컨테이너의 필요성을 없애지만, VM 기반 대안이나 gVisor와 같은 사용자 공간 OS와 동일한 수준의 격리를 (아직) 제공하지는 않습니다. 따라서 최고 수준의 격리가 요구되는 시나리오에서는 KubeVirt와 같은 대안이 더 나을 수 있습니다(성능과 효율성이 낮아지고 복잡성과 비용이 높아지는 대가를 치르더라도).
자세한 내용은 이 블로그 게시물을 참조하세요.
Sysbox 프로젝트는 시스템 컨테이너를 사용하여 실험, 발명, 학습 및 시스템 구축을 원하는 모든 사람을 대상으로 합니다. 최첨단 OS 가상화이며 기여를 환영합니다.
2022년 5월 [Docker에 의한 인수][docker-acquisition] 이전에 Nestybox는 향상된 버전의 Sysbox(예: 더 많은 보안, 더 많은 워크로드 및 공식 지원)로 [Sysbox Enterprise][sysbox-ee-repo]를 제공했습니다.
그러나 인수 이후 Sysbox Enterprise는 더 이상 독립 실행형 제품으로 제공되지 않고 Docker Desktop에 통합되었습니다 (Docker Hardened Desktop 참조).
참고: Sysbox Enterprise가 더 이상 독립 실행형 제품으로 제공되지 않으므로 Docker는 일부 Sysbox Enterprise 기능을 Sysbox Community Edition에서 사용할 수 있도록 할 계획입니다. 기능은 추후 결정(TBD)되며 이에 대한 여러분의 피드백을 환영합니다.
아래 표는 Sysbox 컨테이너 런타임의 주요 기능을 요약합니다.
또한 Sysbox Community Edition(즉, 이 저장소)과 이전에 제공되었던 Sysbox Enterprise Edition(현재는 더 이상 사용되지 않음) 간의 비교를 제공합니다.
Sysbox 기능에 대한 자세한 내용은 여기에서 확인하세요.
질문이 있으면 이곳으로 연락하실 수 있습니다.
Sysbox가 배포하는 컨테이너를 시스템 컨테이너라고 부르며, 이는 일반 컨테이너처럼 마이크로서비스뿐만 아니라 Docker, Kubernetes, Systemd, 내부 컨테이너 등의 시스템 소프트웨어도 실행할 수 있다는 사실을 강조하기 위함입니다.
시스템 컨테이너에 대한 자세한 내용은 여기에서 확인하세요.
Sysbox 호스트는 다음 요구 사항을 충족해야 합니다:
지원되는 Linux 배포판 중 하나를 실행 중이고 지원되는 아키텍처(예: amd64, arm64)를 가진 머신이어야 합니다.
최소 4개 CPU(예: 2코어, 2하이퍼스레드)와 4GB RAM을 권장합니다. 필수 요구 사항은 아니지만, 더 작은 구성에서는 Sysbox가 느려질 수 있습니다.
설치 방법은 Sysbox가 설치될 환경에 따라 다릅니다: