시스템 호출을 처리하는 중간 계층
응용이 호스트 커널의 기능을 바로 사용하는 대신 샌드박스별 응용 커널이 시스템 호출을 받아 처리한다. 컨테이너가 호스트에 노출하는 접점을 줄이기 위한 구조다. 하드웨어 전체를 가상화하는 일반적인 가상 머신과는 다른 방식으로 격리 계층을 만든다.
샌드박스의 구성 요소
Sentry는 컨테이너의 시스템 호출에 응답하는 커널 역할을 한다. Gofer는 파일 시스템 접근을 제공한다. 여러 프로세스가 함께 하나 이상의 컨테이너를 실행하는 환경을 이루며 runsc가 OCI 규격을 통해 샌드박스 실행을 시작한다.
도구 연계와 호환성
Docker와 Kubernetes 및 containerd 같은 기존 컨테이너 도구와 연결할 수 있다. 다만 Linux 인터페이스를 별도로 구현하므로 모든 응용이 같은 방식으로 동작하는 것은 아니다. 시스템 호출이 많은 작업은 추가 비용이 커질 수 있어 격리 방식과 호환성을 함께 살펴야 한다.
관련 문서
Kata Containers / containerd / CRI-O / Podman / Go / 운영체제