CRI-O 소개 : 여러분은 kubernetes에서 어떤 컨테이너 런타임을 사용하고 계신가요?

대부분은 도커(docker) 라고 대답할 것입니다. 2018년 만해도 Google Kubernetes Engine (GKE) 의 런타임에 도커를 사용하였습니다.

이제 kubernetes 는 자유롭게 컨테이너 런타임을 선택할 수 있습니다.

CRI ( Container Runtime Interface) 표준의 등장과 함께 Kubernetes 에서 사용할 수 있는 런타임은 docker, cri-o, rkt, containerd 가 있으며, 향후에는 더 늘어날 수도 있습니다.

CRI-O 등장 배경은 ?

CRI 표준을 따르는 어떠한 컨테이너 런타임이라도 Kubernetes 와 통합하여 사용할 수 있습니다.

Kubernetes 발전을 위해 Pluggability 는 필수적인 요소 입니다. 이것은 Kubernetes 에 대한 사용자 경험(User Experience)을 변경하지 않고 스토리지, 네트워크, 스케쥴러, 컨테이너 런타임 등을 대체 가능하고 개선할 수 있도록 합니다.

대표적으로 Kubernetes 에서 컨터이너 런타임(Container Runtime ) 을 플러그처럼 (Pluggable) 교체 가능한 방법을 제공하기 위해 CRI (컨테이너 런타임 인터페이스: Container Runtime interface) 라고 부르는 API 를 만들었습니다.

Kubelet은 CRI 인터페이스를 사용하여 컨테이너를 조작할 수 있습니다. CRI 표준을 따르는 어떠한 컨테이너 런타임이라도 Kubernetes 와 통합하여 사용할 수 있습니다.

CRI-O 란 ?

레드햇이 개발한 CRI-O 는 Kubernetes 용 Open Container Initiative (OCI) 컨테이너 런타임이다.

레드햇이 개발한 CRI-O 는 Kubernetes 용 Open Container Initiative (OCI) 컨테이너 런타임이다.

CRI-O는 오픈 소스 커뮤니티 중심으로한 컨테이너 엔진으로 Kubernetes 에서 주로 사용되었던 Docker 를 대체하는 것에 목적이 있습니다.

CRI-O는 Kubernetes 의 CRI (Container Runtime Interface) 표준 컴포넌트를 최소한의 런타임으로 구현하는 것으로, 특히 Kubernetes와의 통합을 염두에 두고 설계하였습니다.

CRI-O는 2016 년 Kubernetes 프로젝트에서 CRI를 도입 한 후 개발이 시작되어 2017 년에 CRI-O 1.0을 출시 하였습니다.

CRI-O 프로젝트 범위는?

CRI-O 는 Kubernetes 에서 컨테이너 실행에 대한 부분이 이기 때문에 다음과 같이 범위가 한정되어 있다.

  • 기존 Docker 이미지를 포함한 여러 이미지 포맷을 지원
  • 이미지 다운로드에 대한 신뢰성과 검증 방법 지원
  • 컨테이너 이미지 관리 (이미지 레이어, 오버레이 파일 시스템 등)
  • 컨테이너 프로세스의 라이프 사이클 관리
  • CRI을 지원하기 위해 필요한 모니터링 및 로깅
  • CRI을 지원하기 위한 자원 분리

CRI-O 는 런타임 컨테이너의 구성과 실행 환경 라이프 사이클의 표준과 함께 이미지 구성과 파일 시스템 인덱스 매니페스트 표준을 정의하는 Open Container Initiative 준수하고 있다.

CRI-O 아키텍처

CRI-O 관련 도구들

컨터이너 와 도구들
  • crictl: crictl은 CRI 호환 컨테이너 런타임을위한 CLI (커맨드 라인 인터페이스) 입니다. 이를 사용하여 Kubernetes 노드에서 컨테이너 런타임과 애플리케이션을 검사하고 디버깅 할 수 있습니다.
    • 주로 문제를 해결하고 CRI-O 컨테이너 엔진과 직접 연결하여 사용합니다.
  • runc: 컨테이너 이미지를 실행하는 데 사용합니다.
  • podman: 컨테이너 엔진의 외부에서 Pod 와 컨테이너 이미지 관리 (run, stop, start, ps, attach, exec 등)하는 데 사용합니다.
    • podman는 수많은 docker명령 기능 및 명령 줄 호환성을 제공하고 Pod를 관리 할 수 있도록 그 기능을 확장합니다.
  • buildah: 컨테이너 이미지를 빌드하고 푸시하고 이에 서명하는 데 사용합니다.
  • skopeo: 이미지를 복사하고 검사하고 제거하고 이에 서명하는 데 사용합니다.

정리하자면

Cloud Native Computing Foundation ( CNCF )

최근 몇 년간 컨테이너는 광범위하고 급속히 확산하고 있습니다. 컨테이너 상호 운용성도 관련 업계들이 적극적인  상호협력을 한 결과로 개방형 컨테이너 이니셔티브 (OCI)를 조직하고이미지와  런타임 표준 v1.0 의 발표에 하였습니다.

컨테이너의 표준인 OCI (Open Container Initiative) 는 표준 스펙이며 구현하지는 않기 때문에 다운로드 되거나 실행되지는 않습니다.

OCI 표준에 대한 구현체가 컨테이너 런타임입니다. 초기에는 도커만 있었으나 그 이후로 CRI-O 와 RKT, Containerd 가 등장 하였습니다.

컨테이너 런타임을 제어하는 오케스트레이션의 표준은 CNCF( Cloud Native Computing Foundation) 이며 구현체는  “kubernetes”입니다.

Cloud Native Computing Foundation - CNCF Projects

CLOUD NATIVE COMPUTING FOUNDATION 는?

Cloud Native Computing Foundation 는 대표적으로 Kubernetes 와 Prometheus 와 같은 클라우드 네이티브 오픈소스 기술들을 추진하고 관리하는 단체입니다.

OCI

OCI ( OPEN CONTAINER INITIATIVE )

OCI는 2015년 6월 22일에 Docker 사와  CoreOS 사가 각각 별도로 표준화를 진행하고 있던 컨테이너의 규격을 통일하는 것을 목적으로 Docker, CoreOS 그리고  AWS, Google, Microsoft, IBM 등 주요 플랫폼 벤더가 참여하여 2015 년 6 월에 발족 한 단체이다.

References & Related Links

  • Open Container Initiative-based implementation of Kubernetes Container Runtime Interface ::  https://cri-o.io
컨테이너 장점

컨테이너 장점

가상 머신은 하드웨어 스택을 가상화합니다. 컨테이너는 이와 달리 OS를 가상화하여 여러 개의 컨테이너를 OS 커널에서 직접 실행합니다. 컨테이너는 기존의 가상화 기술보다 훨씬 가볍게 동작하며, OS 커널을 공유하고, 시작 시간이나 종료 시간이 빠르고 ,  메모리를 훨씬 적게 차지합니다

컨테이너 기술 소게

컨테이너 기술 소개

IT 분야에서 “컨테이너”도 일종의 박스의 의미이며, 물류분야에서 처럼 Portability (이동성) 을 실현하기 위해 만들어진 기술입니다.

이동성은 IT 시스템 (플랫폼 또는 인프라) 상에서 다른 IT 시스템으로 이동을 쉽게 허용하는 성질을 의미하는 것입니다.

컨테이너 개념 소개

컨테이너 를 들으면 무엇이 떠오르나요?

항구나 공항 등에서 보는 직 물류 업계에서 사용되는 컨테이너가 떠오르 실 것입니다

컨테이너는 내용물을 하나씩 이동하는 것이 아니라 박스에 수하물을 담아 통째로 이동하기 때문에 편리한 물류 수단입니다.

가상화 와 컨테이너 비교

가상화와 컨테이너의 비교

가상화는 개발측면이나 운영측면에서 자원 효율적으로 사용하고 관리하는 기술로서 널리 확산되었습니다. 다양한 OS 환경과 어플리케이션을 하나의 파일로 관리할 수 있는 “가상 머신 (VM)”은 손쉽게 이동할 수 있는 이식성을 제공해 주었습니다.

컨테이너는 하이퍼바이저와 Guest OS 없이 애플리케이션 운영환경을 제공하는 기술로서 앞서의 가상화 기술의 고질적인 문제점들을 해결하고 있습니다.

Docker 그리고 컨테이너 기술의 역사

Docker 그리고 컨테이너 기술의 역사

컨테이너 기술의 시작과 현재까지 발전해온 역사를 살펴봅니다.

1972년 IBM VM / 370 (OS) 최초 가상화 기능 구현 , 1979 년 UNIX V7 에 chroot 시스템 콜 도입, 1999년 Virtuozzo 출시 컨테이너 가상화의 새로운 방향을 제시

디지털 트랜스포메이션 과 클라우드 네이티브 기술
디지털 트랜스포메이션 과 클라우드 네이티브 기술

디지털 트랜스포메이션 이란 디지털 기술의 급격한 발전으로 인한 혁신적인 발전 방식을 뜻합니다. 즉, 비즈니스 동향, 전략, 사례, 솔루션, 서비스, 플랫폼의 혁신을 포함합니다.

Summary
product image
Author Rating
1star1star1star1star1star
Aggregate Rating
5 based on 4 votes
Brand Name
OPENNARU
Product Name
OPENMARU APM