한 문장 요약
High-Level RunTime
- 이미지/네트워크/볼륨/라이프사이클을 관리하고
컨테이너를 실행해줘를 Low-Level RunTime에 요청하는 관리자
Low-Level RunTime
- namespace/cgroups/pivot_root/seccomp 등을 써서 커널 위에 프로세스를 실제로
격리 실행하는 실행기
설명
컨테이너 실행 파이프라인
Kubernetes(kubelet)
-> CRI RunTime(containerd or CRI-O)
-> (OCI RunTime 호출) runc / crun / kata-runtime 등등
-> Linux kernel (namespaces, cgroups, LSM, seccomp, mounts ...)
고수준 런타입 역할 - 관리
고수준 런타입은 "컨테이너 1개를 실행"을 넘어서 운영에 필요한 주변부를 책임
이미지와 파일시스템
Docker에서 overlay2가 여기와 관련
--------------------------------
- Docker Engine은 스토리지 드라이버로 overlay2를 선택 가능
- containerd는 같은 역할을 snapshotter(ex. overlayfs snapshotter)로 수행
대표적 고수준 런타임
-------------------
- containerd
- CRI-O
- Docker Engine
- 이미지 Pull(registry에서 가져오기)
- 이미지 unpack
- rootfs 준비(스냅샷/레이어 관리)