Container Runtime Interface(CRI)는 어떤 Container Runtime 공급업체던지 Open Container Initiative(OCI)표준을 준수한다면 쿠버네티스의 Container Runtime으로 작업할 수 있게 만들어준다.
Open Container Initiative(OCI) 는 imagespec과 runtimespec으로 구성되어 있다.
- imagespec : 이 이미지가 어떻게 생겼는지 정의 (정적 정보)
- runtimespec : 컨테이너를 실행(run)할 때 어떻게 동작해야 하는지에 대한 기준 정의 (동적 실행정보)
Kubernetes에서 사용할 수 있는 Container Runtime들은 여러 종류가 있고, 각자 다른 기술 스택, 성능, 보안성, 유지보수 등을 기준으로 선택받는다.
Kubernetes 초기 버전에서 기본으로 사용하던 런타임. CRI표준이 나오기 전에 출시되어 Kubernetes는 dockershim을 이용한 지원을 하고 있었음.
dockershim은 도커와 쿠버네티스의 중간에 번역하는 역할을 수행.
하지만 docker만을 위한 dockershim 지원의 어려움으로 인해 Kubernetes v1.24부터 공식적으로 지원 중단되었으며, 현재는 개발환경이나 학습 용도로 사용한 후, 운영환경 전환 시 컨테이너 런타임만 다른것으로 변경하여 동일한 환경에서 Kubernetes를 사용한다.
장점
단점
Docker에서 분리된 경량화 컨테이너 런타임이며, CNCF(Cloud Native Computing Foundation)에서 관리하는 프로젝트다. Kubernetes와의 궁합이 매우 좋아 현재 주류 런타임으로 자리잡았으며 GKE, AKS, EKS 등 대부분의 대형 클라우드 서비스에서 기본 런타임으로 사용한다.
장점
단점
Red Hat 주도로 개발된 Kubernetes 전용 컨테이너 런타임. Docker 없이도 Kubernetes에서 컨테이너를 실행할 수 있도록 설계되었으며, 보안과 경량화에 초점이 맞춰져 있다. OpenShift에서 기본 런타임으로 채택되어 사용된다.
☁️ OpenShift : Red Hat이 만든 Kubernetes 플랫폼
단순한 클러스터 관리 도구를 넘어서 CI/CD, 모니터링, 보안, UI까지 모두 갖춘 엔터프라이즈급 PaaS (Platform as a Service)
장점
단점
Google에서 개발한 보안 중심의 사용자 공간(User-space) 컨테이너 런타임. 컨테이너를 커널로부터 격리시키는 샌드박스 기술을 사용한다. 주로 민감한 데이터를 다루는 보안 중심 서비스에서 사용한다.
장점
단점
하드웨어 가상화 기술을 기반으로 한 경량 컨테이너 런타임. 컨테이너를 실제 가상 머신처럼 격리해서 실행하며 보안성을 극대화하며 금융, 공공기관, 보안 업계 등 고신뢰 환경에서 사용한다.
장점
단점
📝 Container vs VM(가상머신)
항목 | 컨테이너 | VM(가상머신) |
---|---|---|
커널공유 | Host OS 커널 공유 | 독립된 커널 사용 |
속도 | 빠름 (초 단위로 기동) | 느림 (수십 초~분 소요) |
리소스 사용 | 적음 | 많음 |
격리성 | 중간(보안 위험 존재) | 완전 분리 |
실행단위 | 프로세스 수준 | 운영체제 전체 |
OCI(Open Container Initiative) 표준을 구현한 저수준 런타임. containerd나 CRI-O 같은 상위 런타임이 내부적으로 사용하는 핵심 실행 엔진이다.
장점
단점