리눅스 컨테이너는 기본적으로 호스트 커널을 공유하는 구조를 가진다. 이는 가볍고 빠르다는 장점이 있지만, 하나의 컨테이너가 권한 탈취를 당했을 때 호스트 커널 전체가 위협에 노출될 수 있다는 보안적 한계가 존재한다. 이러한 취약점을 극복하기 위해 등장한 기술이 바로 샌드박스형 런타임인 Kata Containers와 gVisor이다.
1. Kata Containers: 하드웨어 기반 가상화

카타 컨테이너는 각 컨테이너를 매우 가벼운 가상 머신(MicroVM) 안에서 실행하는 방식을 취한다. 호스트와 커널을 공유하지 않고 각 컨테이너마다 독립적인 게스트 커널을 할당한다.
- 격리 방식: 하드웨어 가상화 기술을 활용하여 VM 수준의 강력한 격리를 제공한다.
- 각 컨테이너는 호스트 OS 커널을 공유하지 않고 전용 게스트 커널을 사용한다.
- 호스트의 containerd나 쿠버네티스로부터 전달된 OCI cmd/spec은 Kata Shim V2 프로세스가 처리한다.
- Kata Shim v2는 Hypervisor VSOCK Socket이라는 보안 통신 채널을 통해 가상 머신 내부의 Agent와 통신하며 컨테이너를 관리한다.
- 장점: 표준 리눅스 커널을 그대로 사용하기 때문에 기존 애플리케이션과의 호환성이 매우 높다.
- 단점: VM을 부팅해야 하므로 컨테이너 시작 속도가 상대적으로 느리고 메모리 오버헤드가 발생한다.
하드웨어 수준의 보안이 필수적이거나 복잡한 시스템 콜을 사용하는 레거시 애플리케이션을 운영할 때 적합한 선택이다.
2. gVisor: 유저 공간 커널 기반 격리

gVisor는 구글이 개발한 오픈소스 프로젝트로, 애플리케이션과 호스트 커널 사이에 Sentry라는 유저 공간 커널을 두는 방식을 사용한다. 애플리케이션이 발생시키는 시스템 콜을 Sentry가 가로채서 처리한다.
- 격리 방식: 소프트웨어적으로 시스템 콜을 가로채어 호스트 커널로의 직접적인 접근을 차단한다.
- Sentry: 애플리케이션이 발생시키는 시스템 콜의 대부분을 유저 공간에서 직접 처리하여 호스트 커널로의 직접적인 접근을 차단한다.
- Gofer: 애플리케이션의 파일 시스템 접근 요청을 안전하게 중계하는 보안 프록시 역할을 수행한다.
- 장점: VM을 띄우지 않으므로 메모리 점유율이 낮고 시작 속도가 매우 빠르다.
- 단점: Go 언어로 리눅스 시스템 콜을 재구현했기 때문에 일부 기능이 지원되지 않을 수 있으며, 빈번한 I/O 작업 시 성능 저하가 발생한다.
서버리스 환경이나 다수의 가벼운 워크로드를 안전하게 실행해야 하는 상황에서 유리하다.
두 기술은 모두 컨테이너 보안을 강화하지만 구현 방식에 따른 트레이드오프가 명확하다. 강력한 커널 수준의 격리와 완벽한 애플리케이션 호환성이 중요하다면 Kata Containers를 선택하는 것이 합리적이다. 반면 자원 효율성이 중요하고 다수의 가벼운 워크로드를 빠르게 실행해야 하는 서버리스나 멀티테넌트 환경이라면 gVisor가 더 유리하다.
결국 엔지니어로서 각 워크로드의 특성과 보안 요구 수준을 정확히 파악하여 적절한 런타임을 선택하는 것이 중요하다.
'전공공부' 카테고리의 다른 글
| vCPU 동작 원리 (0) | 2026.03.29 |
|---|---|
| AWS 네트워크 핵심 구성 요소 정리 (0) | 2026.03.29 |
| 도커(Docker)의 단점과 카타 컨테이너(Kata Containers) (0) | 2026.03.27 |
| 도커(Docker)의 가상화 원리와 리눅스 커널 구조 (0) | 2026.03.26 |
| 도커(Docker) 개념 정리 (0) | 2026.03.24 |