가상화와 QEMU/KVM · 컨테이너 vs VM · 퀴즈
퀴즈: 컨테이너 vs VM
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
컨테이너와 VM 의 가장 근본적인 차이는?
- 이미지 크기
- 게스트 커널의 존재 여부
- 네트워크 방식
- 저장소 드라이버
서로 신뢰하지 않는 여러 고객의 코드를 한 호스트에서 실행해야 합니다. 적절한 선택은?
- VM 이나 Kata/Firecracker 같은 microVM 으로 하드웨어 경계를 둔다
- 컨테이너에 seccomp 프로파일을 강하게 건다
- 컨테이너에 네트워크 정책을 촘촘히 건다
- 컨테이너 루트 파일시스템을 읽기 전용으로 둔다
Kata Containers 의 특징은?
- OCI/CRI 인터페이스는 그대로 두고 내부적으로 경량 VM 을 띄운다
- 컨테이너를 더 빠르게 띄우기 위한 런타임이다
- VM 을 컨테이너 이미지로 변환해 준다
- 컨테이너마다 커널을 새로 컴파일한다
컨테이너 안에서 `sysctl -w` 가 막혀 있는 근본 이유는?
- 보안 정책이 특별한 이유 없이 막아 둔 것
- 이미지에 sysctl 바이너리가 없기 때문
- cgroup 이 자원 한도를 걸어 두었기 때문
- 커널이 호스트와 공유되므로 그 변경이 호스트 전체에 영향을 주기 때문
Firecracker 같은 microVM 이 빠르게 뜨는 이유는?
- 장치 모델을 virtio 몇 개로 극단적으로 줄이고 부팅 경로를 짧게 만들었기 때문
- 컨테이너와 똑같은 방식으로 동작하기 때문
- 게스트 커널을 미리 메모리에 올려 두기 때문
- TCG 대신 KVM 만 쓰도록 제한했기 때문
밀도(호스트당 인스턴스 수) 면에서 컨테이너가 유리한 이유는?
- 컨테이너 이미지가 VM 이미지보다 작기 때문
- 게스트 커널과 하이퍼바이저 오버헤드가 없어 인스턴스당 메모리 비용이 적기 때문
- 여러 컨테이너가 네트워크 스택을 공유하기 때문
- 컨테이너에 CPU 스케줄링이 따로 적용되기 때문