소프트웨어 아키텍처/Containerd5 Ctr snapshot 명령을 이용해서 컨테이너에 파일 복사하기 컨테이너를 사용하여 작업을 할때 보통 'docker cp' 명령을 사용해서 컨테이너 안에 쉽게 파일을 복사한다. docker를 사용하지 않고 containerd를 런타임으로 사용하는 경우에도, 보통은 kubernetes 클러스터를 구축하였을 경우 kubectl 에서 제공하는 'kubectl cp' 명령어를 사용하여 쉽게 파드에 파일을 복사할 수 있다. 그런데 'kubectl cp' 의 경우 아래와 같이 help 명령어에서 알 수 있듯이 복사하려는 파드에서 tar 바이너리 파일이 있어야만 복사가 가능하다. docker cp 명령어와는 달리 내부적으로 tar 압축/압축해제 로직이 포함되어 있는 듯 하다. kubectl cp -h Copy files and directories to and from conta.. 2021. 11. 8. 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. 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 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. 이전 1 다음