Container Runtimes 비교 표
2 minute read
|
CRI-O |
Containerd CRI plugin |
Docker Engine |
gVisor CRI plugin |
CRI-O Kata Containers |
sponsors |
CNCF |
CNCF |
Docker Inc |
Google |
Intel |
started |
2016 |
2015 |
Mar 2013 |
2015 |
2017 |
version |
1.15 |
1.12 |
18.06 |
runc |
1.3 |
runtime |
runc (default) |
containerd managing runc |
runc |
runsc |
kata-runtime |
kernel |
shared |
shared |
shared |
partially shared |
isolated |
syscall filtering |
no |
no |
no |
yes |
no |
kernel blobs |
no |
no |
no |
no |
yes |
footprint |
- |
- |
- |
- |
30mb |
start time |
<10ms |
<10ms |
<10ms |
<10ms |
<100ms |
io performance |
host performance |
host performance |
host performance |
slow |
host performance |
network performance |
host performance |
host performance |
host performance |
slow (see comment) |
close to host performance |
Docs |
https://github.com/kubernetes-sigs/cri-o/ |
https://github.com/containerd/cri |
https://github.com/moby/moby |
https://github.com/google/gvisor |
https://github.com/kata-containers/runtime |
장점 |
경량의 쿠버네티스 전용 Docker 데몬이 필요하지 않음 OpenShift의 기본 컨테이너 런타임 아마도 최고의 컨테이너 기본 런타임 |
최신 Docker Engine과 함께 기본적으로 설치됨 Kubernetes는 ContainerD를 직접 사용할 수 있으며, Docker또한 동일한 호스트에서 직접 사용할 수도 있음 DockerD 데몬을 실행할 필요가 없음 |
방대한 수의 사용자가 테스트하고 반복 한 가장 성숙한 런타임 seccomp, SELinux 및 AppArmor를 사용하여 강화할 수 있음 가장 빠른 시작 시간 메모리 사용량이 가장 적음 |
gcloud appengine에서 고객 간의 격리 계층으로 사용함 상태를 저장하지 않는 웹 앱에 적합 표준 컨테이너에 두 개의 보안 계층을 추가함 |
아마도 가장 안전한 옵션 보안에 대한 주요 절충안으로 오버헤드가 발생하는것은 그렇게 나쁘지 않은 것으로 보임 |
단점 |
Docker Engine이 같고 있는 동일한 보안 이슈를 가지고 있음 보안정책을 별도로 관리해야 함 |
This is slightly newer as it has been through a few iterations of being installed differently. |
Kubernetes는 CRI 플러그인 아키텍처로 이동하고 있음 보안을 강화하고 관리하는것은 너무 복잡함 |
버전이 지정되지 않았으며 아직 Kubernetes에서 프로덕션에 사용해서는 안됨 많은 syscall을 만드는 응용 프로그램에는 적합하지 않음 400 개 Linux syscall이 모두 구현되어 일부 앱이 작동하지 않을 수 있음 (예 : postgres). |
kata-runtime 자체는 v1이지만 이것이 Kubernetes 상에서 어떻게 준비 되어 있는지 확인이 필요 30MB 메모리 오버 헤드로 인한 비효율적 패킹 시작 시간 |
Comments