상세 컨텐츠

본문 제목

OCI와CRI의 개념 그리고 차이

운영 체제(OS)/리눅스(Linux)

by Pyidros 2024. 2. 27. 23:31

본문

OCI(Open Container Initiative)와 CRI(Container Runtime Interface)는 컨테이너 기술에서 중요한 역할을 하는 두 가지 다른 표준입니다.

OCI (Open Container Initiative)

OCI는 컨테이너 형식런타임의 표준화를 목표로 하는 개방형 프로젝트입니다. 이 표준은 컨테이너가 다양한 환경에서 일관되게 동작할 수 있도록 보장하는 것을 목적으로 하며, 컨테이너 이미지 형식과 컨테이너 실행을 위한 런타임 사양 두 가지 주요 구성 요소로 이루어져 있습니다.

  • Image Specification: 컨테이너 이미지가 어떻게 구성되어야 하는지에 대한 사양을 제공합니다. 이를 통해 이미지가 다양한 환경과 호환될 수 있습니다.
  • Runtime Specification: 컨테이너를 실행하기 위한 환경(런타임)이 준수해야 하는 기술 사양을 정의합니다. 이는 컨테이너가 실제로 어떻게 생성되고 관리되어야 하는지에 대한 세부사항을 포함합니다.

OCI의 목표는 컨테이너 기술의 표준화를 통해 개발자들이 벤더에 종속되지 않고 컨테이너를 사용할 수 있게 하는 것입니다. 즉, OCI 표준을 준수하는 컨테이너는 어떤 호스트 시스템에서든 동일하게 작동해야 합니다.

CRI (Container Runtime Interface)

CRI는 특히 Kubernetes에서 컨테이너 런타임을 플러그 가능하게 하기 위해 도입된 인터페이스입니다. CRI는 Kubernetes가 다양한 컨테이너 런타임과 상호 작용할 수 있도록 표준화된 방식을 제공합니다. 예를 들어, Docker는 CRI를 통해 Kubernetes와 통신할 수 있고, 이는 Kubernetes가 Docker 외에 다른 CRI를 구현한 런타임(예: containerd, CRI-O 등)과도 호환될 수 있도록 합니다.

CRI는 주로 두 가지 API로 구성됩니다: 이미지와 컨테이너 관리입니다. 이를 통해 Kubernetes 오케스트레이터는 컨테이너의 생명 주기를 관리할 수 있으며, 이미지를 가져오고, 컨테이너를 시작하고, 정지시키는 등의 작업을 수행할 수 있습니다.

차이점 및 특징

  • 범위: OCI는 컨테이너 이미지와 런타임의 보편적인 표준을 정의하는 반면, CRI는 Kubernetes와 컨테이너 런타임 간의 인터페이스에 초점을 맞춥니다.
  • 목적: OCI는 컨테이너의 휴대성과 호환성을 보장하는 반면, CRI는 Kubernetes 내부의 컨테이너 런타임 통합을 목적으로 합니다.
  • 사용 사례: OCI는 모든 컨테이너 환경에 적용 가능한 반면, CRI는 Kubernetes 클러스터 내에서 사용됩니다.

OCI와 CRI 모두 컨테이너 기술의 표준화를 추진하는 중요한 역할을 하지만, 각각의 범위와 적용 분야가 다릅니다. OCI는 컨테이너 기술 전반에 걸쳐 표준을 제공하는 반면, CRI는 Kubernetes가 다양한 컨테이너 런타임과 상호 작용하는 방식을 표준화하는데 중점을 둡니다.

 

# 인터페이스란 : 인터페이스는 서로 다른 두 시스템이나 프로그램이 상호 작용하는 방식을 정의합니다

# 플러그 가능이란 : 특정 컴포넌트를 시스템에 추가하거나 제거할 수 있는 기능을 의미합니다.  

관련글 더보기