Container Runtime 정리

Seung·2022년 3월 1일
0

K8S

목록 보기
8/14

OCI(Open Container Initiative)

컨테이너 런타임에 대한 표준으로 컨테이너를 실행하기 위한 저수준 런타임


CRI(Container Runtime Interface)

쿠버네티스 측에서 제공하는 컨테이너 런타임 추상화 계층


Container Runtime

컨테이너 런타임은 크게 저수준 런타임과 고수준 런타임으로 나뉜다.

  • 저수준 런타임
    • namespace와 cgroup을 이용해서 컨테이너 자체를 만드는 일을 한다.
    • 대표적인 저수준 런타임으로 runc가 있다.
    • 이미지로부터 컨테이너를 실행하는 기능은 없다.
  • 고수준 런타임
    • 저수준 런타임 위에 배치되어 이미지로부터 컨테이너를 실행할 수 있다.
    • 대표적으로 containerd, cri-o 등이 고수준 컨테이너 런타임이다.
  • docker
    • docker의 경우, docker-containerd라는 고수준 런타임과 docker-runc라는 저수준 런타임을 이용해서 제공한다.
    • docker가 기존에 가지고 있던 컨테이너 daemon으로써의 기능을 containerd에게 넘겨 주었고, docker 데몬 자체는 conatinerd에 대한 클라이언트로서 기능한다.

CRI-O

  • CRI + OCI에서 유래
  • 컨테이너 실행을 목적으로 docker보다 경량화되어 있음
  • cri-o 또한 데몬으로 뜬다.
  • 컨테이너 생성(run)과 이미지 빌드(build)를 제공하지 않음
  • stand-alone으로 동작하지 않기 때문에 K8S와 함께 사용하거나 podman과 함께 사용한다
  • CRI-O와 같이 사용할 수 있는 툴
    • crictl
      • 트러블 슈팅, cri-o 컨테이너 엔진과 직접적으로 동작
    • buildah(빌다)
      • 이미지 build, push
    • podman(포드맨)
      • pod 와 container image를 관리
      • run, stop, start, ps, attach, exec...
    • skopeo(스코피오)
      • 이미지 copy, inspect, delete
profile
인프라 마스터가 되고 싶어요

0개의 댓글