컨테이너 런타임이란?
Info
컨테이너 런타임은 도커 같은 프로그램이 컴퓨터의 운영체제와 직접 통신해서, 프로그램이 독립적으로 실행될 수 있는 격리된 환경을 만드는 기술입니다.
호스트 운영체제에서 컨테이너를 실행하고 컨테이너 이미지를 관리
실행, 일시 중지, 중지와 네임스페이스, cgroup, 네트워크 인터페이스 관리와 같은 저수준 작업을 처리
컨테이너의 수명 주기를 담당
도커는 처음에 LXC 라는 런타임을 사용했지만 나중에 libcontainer 라는 자체 런타임을 개발하고 나중에 runc 로 발전
- 점진적으로 가볍고 유연하고 안정적이 됨
v1.22 이상부터는 docker shim 지원하지 않음
따라서 containerd, CRI-O 를 런타임으로 사용해야한다.
각각 장단점은 아래 표와 같다.
CRI-O 를 나는 채택했다.
그 이유는 아래와 같다.
- Kubernetes 네이티브 환경 구축이 중요한 경우
- CRI-O는 Kubernetes 공식 CRI 구현체로, Kubernetes 환경과 가장 잘 어울린다.
- Kubernetes 설정만으로 대부분의 CRI-O 설정이 가능하여 구축이 용이하다.
- 경량화와 리소스 효율성이 중요한 경우
- CRI-O는 Docker 런타임 대비 경량화되어 있어 시스템 리소스 사용이 적다.
- 이는 리소스 제약이 있는 환경에서 유용할 수 있다.
- Kubernetes 커뮤니티 지원이 중요한 경우
- CRI-O는 Kubernetes 커뮤니티와 밀접하게 연계되어 있어 공식 지원과 다양한 리소스를 활용할 수 있다.