update : 2021. 12. 23.
CRI-O | Containerd CRI plugin | Docker Engine | gVisor CRI plugin | CRI-O Kata Containers | |
---|---|---|---|---|---|
sponsors | CNCF | CNCF | Docker Inc | Intel | |
started | 2016 | 2015 | Mar 2013 | 2015 | 2017 |
version | 1.23 | 1.19 | 20.10 | release-20211129.0 | 1.13 |
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 메모리 오버 헤드로 인한 비효율적 패킹 시작 시간 |
약 3 분