본문 바로가기
  • 오늘처럼

docker15

Container Runtime Migration : Docker -> Containerd Kubernetes v1.21 버전 이후로 Docker 가 deprecated 됨에 따라 Kubernetes 의 컨테이너 런타임으로 Docker 이외의 런타임을 사용하는 경우가 늘어나고 있다. 이와 더불어 기존 Kubernetes Cluster 에서 Docker를 런타임으로 사용하고 있는 경우에도 Containerd 로 런타임을 변경해야 하는 케이스도 발생한다. 이번에는 Container Runtime 으로 도커를 사용하고 있는 기존 클러스터에서 런타임을 Docker로 변경하는 과정에 대해 알아본다. 기본적으로 Kubernetes 클러스터가 필요하며 docker가 설치되어 있는 경우 containerd 가 이미 설치되어 있으므로 추가로 필요한 요소는 없다. 다만 도커를 containerd 로 변경하는 과.. 2021. 9. 13.
Docker compose 의 사용 Docker-compose 설치 및 확인 Docker compose 는 여러 개의 컨테이너를 동시에 연계해서 구동할 수 있게 해주는 컨테이너 툴이다. 도커 측에서 제공하고 있는 하나의 바이너리 파일로, 여기서는 이 docker compose 의 설치와 실행 방법에 대해서 알아보자. docker/compose 프로젝트의 릴리즈 페이지에서 최신 버전의 docker-compose 패키지를 다운로드 받는다. OS(linux, windows), 아키텍처셋(arm64, armv7, armv6) 등에 맞춰서 다운로드 받은 후에 아래와 같이 어플리케이션 디렉토리에 이동하여 어느 위치에서나 docker-compose를 사용할 수 있도록 설정하자. (하단의 예는 docker-compose 1.29.2 버전을 사용하였다.).. 2021. 9. 7.
ctr : containerd CLI tools ctr 이란? ctr 툴은 containerd 데몬과 상호작용하여 호스트 노드의 컨테이너 관리를 지원해주는 클라이언트 툴이다. containerd 진영에서 개발되어 동일 프로젝트 소스에 속해 있으나, 하단의 Description 문구와 같이 하위호환성이나 안정성을 보장해주지는 않는다. NAME: ctr - __ _____/ /______ / ___/ __/ ___/ / /__/ /_/ / \___/\__/_/ containerd CLI USAGE: ctr [global options] command [command options] [arguments...] VERSION: 1.4.3 DESCRIPTION: ctr is an unsupported debug and administrative client f.. 2021. 9. 6.
Containerd 설치 및 설정 1. containerd containerd는 docker를 설치하게 되면 함께 설치되는 런타임 패키지이지만, 독립적으로 설치 및 설정도 가능하다. docker를 설치하지 않고 kubernetes 클러스터를 구축하려 하는 경우나, 컨테이너 빌드 도구 없이 단순히 컨테이너를 실행하기만 하는 경우를 위하여 이번에는 containerd를 설치하고 설정하는 방법을 정리해본다. 2. conatinerd 다운로드 만약 Ubuntu Trusty 나 Debian jessie 이하 버전을 사용하고 있다면, 라이브러리 의존성을 위해 libseccomp2 라이브러리가 필요하다. 아래와 같이 apt-get 등을 이용하여 설치하거나 바이너리파일을 다운받아서 미리 준비해두자. sudo apt-get update sudo apt-.. 2021. 9. 4.
Container 기반기술 : Namespace 도커 컨테이너에 대한 소개에서 언급하였듯이, 도커 서비스는 2013년에 처음 등장하였다. 하지만 컨테이너 기술 자체는 이미 훨씬 예전부터 시스템 개발자들 사이에서 사용되었으며, 결국 도커는 리눅스 컨테이너와 관련된 기술들을 패키징하여 더 사용하기 쉽게 만든 하나의 솔루션으로 볼 수 있다. 이러한 컨테이너 서비스는 chroot, cgroup, namespace 와 같은 리눅스 기반 기술들로 구성되어 있는데 여기서는 namespace 에 대해서 조금 더 알아보기로 한다. 리눅스 namespace 는 하나의 운영체제 내부에서, 프로세스들이 각각 별개의 독립된 공간을 사용하는 것처럼 느낄수 있도록 격리된 환경을 제공하는 경량의 프로세스 가상화 기술. H/W를 가상화하는 hypervisor와 달리 동일한 OS 에.. 2021. 9. 2.
Container Runtime 컴포넌트 분석 컨테이너 런타임에 대해서 조사하다보면 OCI나 container-shim 과 같은 생소한 용어들이 보인다. 컨테이너 런타임의 과정에 대해서 조사를 하면서 추가로 Runtime 과 관련된 컴포넌트들을 정리해본다. 먼저 자주 쓰이는 용어들은 아래와 같이 별도로 정리하였다. *OCI (Open Container Initiative) : 컨테이너의 기술적 표준. 혹은 컨테이너 기술 표준을 설계하기 위한 Linux foundation project를 지칭한다. 컨테이너 기술을 구현하기 위해서 구현해야 하는 cgroup, namespace 등에 대한 표준을 정의하였으며 Runtime-spec 과 Image-spec 으로 각각 구분된다. *CRI (Container Runtime Interface) : kubelet.. 2021. 9. 1.