Containerd Logo

containerd – Kubernetes 표준 컨테이너 런타임

컨테이너 기술로 주목받은 Docker 사는 2016 년 12 월 컨테이너 런타임 부분을 독립적인 오픈 소스 프로젝트인 “containerd” 로 분리하여 마이크로 소프트, Google, AWS, IBM 등과 공동으로 개발하기로 발표하였습니다.

이것은 Docker 의해 빠르게 확산되기 시작한 컨테이너형 가상화 환경에서 컨테이너 런타임을 특정 벤더에 의존하지 않고 중립적인 입장에서 컨테이너 표준인 OCI (Open Container Initiative) 에 기준으로 구현하는 것을 목적으로 합니다.

그 3 개월 후 2017 년 3 월에는 containerd 오픈 소스 프로젝트 CNCF (Cloud Native Computing Foundation)에 기증받아 2017 년 12월 버전 1.0 을 출시하였습니다 .

Kubernetes Containerd

Containerd 는 ?

docker containerd

Containerd는 컨테이너를 실행하고 노드에서 이미지를 관리하는 데 필요한 최소한의 기능 세트를 제공하는 OCI 호환 코어 컨테이너 런타임 중 하나 입니다.

발전 과정

Kubernetes Containerd

containerd는 Docker 1.11 이후 Docker 코어 컨테이너 런타임 입니다.

RunC 기반이며, 컨테이너 표준 인 OCI (Open Container Initiative)을 준수하고 있습니다.

containerd  1.1 버전은  Kubernetes를 기본적으로 지원하여, Containerd는 사실상 표준 컨테이너 런타임이라고 할 수 있습니다.

또한 OpenStack Foundation 에서 오픈 소스로 개발하고있는 컨테이너 런타임 “Kata Container” 과 Google은 오픈 소스로 공개 한 ‘gVisor ” 등 다양한 옵션이  등장하고 있습니다.

Kubernetes 와 Containerd 통합 아키텍처의 발전

Kubernetes Containerd

일반적으로 Kubernetes로 구축하는 클러스터에서는 Docker를 이용하여 컨테이너를 실행합니다.

이때 Kubernetes과 Docker 사이에서는 Kubernetes에서 표준화 된 API 인 CRI (Container Runtime Interface) 에 의해 교환이 이루어집니다.

그러나 Docker는 현재 CRI를 기본적으로는 지원하지 않기 때문에 Kubernets과 Docker는 “dockershim”라는 다리를 통해 교환이 이루어지고 있습니다.

Containerd version

2017 년 12 월 CNCF에서 버전 1.0에 도달 한 containerd는 kubelet과 containerd사이에서 작동하려면 cri-containerd라는 데몬이 필요했습니다.

Cri-containerd 는 Kubelet의 CRI (Container Runtime Interface) 서비스 요청을 처리하고 containerd를 사용하여 해당 컨테이너 및 컨테이너 이미지를 관리합니다.

containerd1.1에서는 cri-containerd 데몬이 이제 containerd CRI 플러그인으로 리팩터링됩니다.

CRI 플러그인은 containerd1.1에 내장되어 있으며 기본적으로 활성화되어 있습니다.

cri-containerd와 달리 CRI 플러그인은 직접 함수 호출을 통해 containerd와 상호 작용합니다.

사용자는 이제 containerd1.1과 함께 Kubernetes를 직접 사용할 수 있습니다.

cri-containerd 데몬은 더 이상 필요하지 않습니다.

Docker 와의 성능 비교

성능 향상은 containerd1.1 릴리스에서 핵심 항목 중 하나였습니다. 성능은 포드 시작 지연 (Pod startup latency) 와 자원사용부분에서 최적화하였습니다.

다음 결과는 containerd1.1과 Docker 18.03 CE를 비교 한 것입니다.

containerd1.1은 containerd에 내장 된 CRI 플러그인을 사용합니다. Docker 18.03 CE 통합은 dockershim을 사용합니다.

POD 시작 지연 시간 (Pod Startup Latency )

“105 pod batch startup benchmark”결과는 containerd 1.1 통합이 Docker 18.03 CE 통합 dockershim보다 낮음을 나타냅니다 (더 낮은 것이 좋음).

Performance_POD_Startup_latency

CPU 와 메모리 사용량

containerd1.1 는 Docker 18.03 CE와 dockershim의 통합과 비교하여 전체 CPU와 메모리를 덜 소모합니다.

아래 그림에서 볼 수 있듯이 Dockers와 통합 된 Docker 18.03 CE와 비교할 때 containerd1.1 은 kubelet cpu 사용량이 30.89 %, 컨테이너 런타임 CPU 사용량이 68.13 %, RSS 메모리 사용량이 11.30 % 감소했으며, 컨테이너 런타임 RSS 메모리 사용률이 % 감소했습니다.

Performance_CPU_Usage
Performance_Memory_Usage
Cloud Native Computing Foundation - CNCF Projects

CLOUD NATIVE COMPUTING FOUNDATION 는?

2015 년 7 월에 발표된 2016 년 1 월에 정식 출범 한 Cloud Native Computing Foundation (이하 CNCF)는 혼돈스러운 컨테이너와 관련된 다양한 기술적인 문제들을 오픈소스로 해결하는 하는 것을 목표로하고 있습니다.

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

References & Related Links

컨테이너 기술 소게

컨테이너 기술 소개

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

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

컨테이너 장점

컨테이너 장점

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

컨테이너 개념 소개

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

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

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

가상화 와 컨테이너 비교

가상화와 컨테이너의 비교

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

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

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

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

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

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

물리서버, 가상화 그리고 컨테이너로의 발전
물리서버, 가상화를 넘어 컨테이너 까지

컨테이너 기술이 등장하기 전까지 IT 역사를 되돌아 보겠습니다.

가상화기술이 출현하기 전에는 하나의 물리적 서버에서 다양한 애플리케이션을 올려 사용하는 시대였습니다.

Summary
product image
Author Rating
1star1star1star1star1star
Aggregate Rating
5 based on 5 votes
Brand Name
OPENNARU
Product Name
KHAN [apm]