🚀 Container Runtime Interface

Container Runtime Interface(CRI)는 어떤 Container Runtime 공급업체던지 Open Container Initiative(OCI)표준을 준수한다면 쿠버네티스의 Container Runtime으로 작업할 수 있게 만들어준다.

Open Container Initiative(OCI)imagespecruntimespec으로 구성되어 있다.

  • imagespec : 이 이미지가 어떻게 생겼는지 정의 (정적 정보)
  • runtimespec : 컨테이너를 실행(run)할 때 어떻게 동작해야 하는지에 대한 기준 정의 (동적 실행정보)

🚀 주요 Kubernetes Container Runtime

Kubernetes에서 사용할 수 있는 Container Runtime들은 여러 종류가 있고, 각자 다른 기술 스택, 성능, 보안성, 유지보수 등을 기준으로 선택받는다.

🐳 Docker (dockershim)

Kubernetes 초기 버전에서 기본으로 사용하던 런타임. CRI표준이 나오기 전에 출시되어 Kubernetes는 dockershim을 이용한 지원을 하고 있었음.
dockershim은 도커와 쿠버네티스의 중간에 번역하는 역할을 수행.
하지만 docker만을 위한 dockershim 지원의 어려움으로 인해 Kubernetes v1.24부터 공식적으로 지원 중단되었으며, 현재는 개발환경이나 학습 용도로 사용한 후, 운영환경 전환 시 컨테이너 런타임만 다른것으로 변경하여 동일한 환경에서 Kubernetes를 사용한다.

장점

  • 사용하기 쉬움 (GUI 도구, Docker CLI 등)
  • 풍부한 에코시스템과 튜토리얼

단점

  • Kubernetes에서 공식적으로 제거됨
  • 성능, 보안 측면에서 현대적 런타임에 비해 뒤처짐

⛴️ containerd

Docker에서 분리된 경량화 컨테이너 런타임이며, CNCF(Cloud Native Computing Foundation)에서 관리하는 프로젝트다. Kubernetes와의 궁합이 매우 좋아 현재 주류 런타임으로 자리잡았으며 GKE, AKS, EKS 등 대부분의 대형 클라우드 서비스에서 기본 런타임으로 사용한다.

장점

  • 경량성과 안정성 우수
  • Kubernetes와의 통합이 뛰어남 (CRI plugin 내장)
  • Docker 이미지와의 높은 호환성

단점

  • 자체 CLI가 불편함
  • 일부 고급 기능 부족 (ex. 이미지 빌드, 로컬 개발 편의 기능 등)

🛡 CRI-O

Red Hat 주도로 개발된 Kubernetes 전용 컨테이너 런타임. Docker 없이도 Kubernetes에서 컨테이너를 실행할 수 있도록 설계되었으며, 보안과 경량화에 초점이 맞춰져 있다. OpenShift에서 기본 런타임으로 채택되어 사용된다.

☁️ OpenShift : Red Hat이 만든 Kubernetes 플랫폼
단순한 클러스터 관리 도구를 넘어서 CI/CD, 모니터링, 보안, UI까지 모두 갖춘 엔터프라이즈급 PaaS (Platform as a Service)

장점

  • Kubernetes에 최적화되어 있음
  • Podman과의 연동 우수
  • 보안 기능 강화 (seccomp, AppArmor, SELinux 지원 등)

단점

  • 범용성이 낮고 Kubernetes 외 환경에선 사용하기 어려움
  • 사용자 및 커뮤니티 규모가 상대적으로 작음

🔐 gVisor

Google에서 개발한 보안 중심의 사용자 공간(User-space) 컨테이너 런타임. 컨테이너를 커널로부터 격리시키는 샌드박스 기술을 사용한다. 주로 민감한 데이터를 다루는 보안 중심 서비스에서 사용한다.

장점

  • 매우 강력한 샌드박싱 제공
  • 높은 격리 수준 (호스트에 대한 공격면 축소)

단점

  • 성능 저하가 있음
  • 일부 시스템 호출이 제한되어 호환성 문제가 발생할 수 있음

🧱 Kata Containers

하드웨어 가상화 기술을 기반으로 한 경량 컨테이너 런타임. 컨테이너를 실제 가상 머신처럼 격리해서 실행하며 보안성을 극대화하며 금융, 공공기관, 보안 업계 등 고신뢰 환경에서 사용한다.

장점

  • 가상 머신 수준의 높은 격리와 보안성
  • 컨테이너 기술과 가상화 기술의 장점을 결합

단점

  • VM을 띄우기 때문에 리소스 소모가 큼
  • 컨테이너보다 느린 부팅 속도

📝 Container vs VM(가상머신)

항목컨테이너VM(가상머신)
커널공유Host OS 커널 공유독립된 커널 사용
속도빠름 (초 단위로 기동)느림 (수십 초~분 소요)
리소스 사용적음많음
격리성중간(보안 위험 존재)완전 분리
실행단위프로세스 수준운영체제 전체

⚙️ runC

OCI(Open Container Initiative) 표준을 구현한 저수준 런타임. containerd나 CRI-O 같은 상위 런타임이 내부적으로 사용하는 핵심 실행 엔진이다.

장점

  • 매우 경량
  • 표준을 정확히 준수

단점

  • 저수준 런타임이기 때문에 단독 사용 시 불편하며, 보통 다른 런타임과 함께 사용됨
profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

0개의 댓글

Powered by GraphCDN, the GraphQL CDN