위키득계정 ↗
기술

gVisor

gVisor기술
주요 역할
응용과 호스트 사이의 격리
구현 위치
사용자 공간
주요 구현 언어
Go
OCI 런타임
runsc
gVisor는 응용 프로그램과 호스트 운영체제 사이에 사용자 공간의 커널 계층을 두는 격리 도구다. Linux와 유사한 인터페이스를 구현해 시스템 호출을 처리하고 runsc 런타임으로 컨테이너 관리 도구와 연결한다.

시스템 호출을 처리하는 중간 계층

응용이 호스트 커널의 기능을 바로 사용하는 대신 샌드박스별 응용 커널이 시스템 호출을 받아 처리한다. 컨테이너가 호스트에 노출하는 접점을 줄이기 위한 구조다. 하드웨어 전체를 가상화하는 일반적인 가상 머신과는 다른 방식으로 격리 계층을 만든다.

샌드박스의 구성 요소

Sentry는 컨테이너의 시스템 호출에 응답하는 커널 역할을 한다. Gofer는 파일 시스템 접근을 제공한다. 여러 프로세스가 함께 하나 이상의 컨테이너를 실행하는 환경을 이루며 runsc가 OCI 규격을 통해 샌드박스 실행을 시작한다.

도구 연계와 호환성

Docker와 Kubernetes 및 containerd 같은 기존 컨테이너 도구와 연결할 수 있다. 다만 Linux 인터페이스를 별도로 구현하므로 모든 응용이 같은 방식으로 동작하는 것은 아니다. 시스템 호출이 많은 작업은 추가 비용이 커질 수 있어 격리 방식과 호환성을 함께 살펴야 한다.

관련 문서

Kata Containers / containerd / CRI-O / Podman / Go / 운영체제