Home docker -> containerd
Post
Cancel

docker -> containerd

기존 Docker의 문제점

docker는 monolithic system으로, image build, 관리, 공유 실행 등 너무 많은 기능이 탑재되어 있어, 무거울 뿐만 아니라 장애 발생 시, 모든 기능에 장애가 생기는 single point of failure가 될 위험이 있다.

CRI(Container Runtime Interface)

  • kubernetes의 등장으로 인해 기존 monolithic 방식의 docker는 container 실행 기능뿐만 아니라, kubernetes kubelet에는 필요없는 기능들도 포함되어 있어, 이를 분리하고 container runtime을 표준화할 필요성이 대두되었다. 이 표준을 정립하기 위해 AWS, Google, MS, IBM등의 주요 회사가 OCI(Open Container Initiative)를 구성하여 표준을 구성했고, 이후 kubernetes의 container runtime으로 CRI가 등장하였다. 그래서 container runtime이 CRI에 맞춰 구현되면, kubelet을 고치지 않고 plugin으로 추가하는 방식으로 해결할 수 있게 되었다.
  • container의 실행 단계는 1. image download 2. bundle로 이미지 압축 해제 3. bundle로 container 실행으로 나뉘어 있고, 3번째 단계인 container 실행 부분만 표준화하는 경우 Low Level Container Runtime과 1, 2번째 단계 등까지 표준화된 High Level Container Runtime으로 나뉜다.

Containerd

  • docker에서 OCI 표준을 준수하여 만든 container runtime
  • 현재는 docker engine도 containerd에 plugin을 추가한 방식으로 구성됨





참고

This post is licensed under CC BY 4.0 by the author.