본문 바로가기
  • 오늘처럼

container15

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.
Container Network Interface : CNI Container Network Interface : CNI 컨테이너는 자신만의 격리된 공간을 가지게 되며, 이 경우 특정 컨테이너는 컨테이너 안에서 내부적으로 독립된 네트워크 환경을 가지고 있는 것으로 보인다. 즉 외부의 다른 네트워크 환경을 전혀 알 수가 없게 되는 것인데, 여러 개의 컨테이너를 관리하거나 혹은 2개 이상의 모듈로 동작하는 시스템을 각각 컨테이너화 한 경우에는 컨테이너 간의 네트워킹도 필요하게 된다. 이를 위해서 컨테이너에게 가상의 네트워크 리소스를 부여하고 이를 관리해주는 것이 CNI 이다. CNI는 CNCF(Cloud Native Computing Foundation) 에서 관리되는 프로젝트로, 네트워크 인터페이스를 구성하기 위해 필요한 플러그인과 스펙 및 라이브러리로 구성되어 있.. 2021. 9. 3.
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.
kubernetes : overview Kubernetes - overview Application 배포의 흐름 전통적인 어플리케이션 구성 환경의 경우 물리 리소스인 하드웨어 위에 미들웨어로서 운영체제를 구축하고 해당 운영체제 위에서 소프트웨어를 배포하여 서비스를 제공하게 된다. 그러나 이러한 기존 방식에서는 수시로 변동되는 서비스 요청에 따라 네트워크, 스토리지 등의 하드웨어 자원을 효율적으로 사용하기가 어렵다. 이에 자원의 효율적 사용을 위하여 가상화 개념이 도입되었다. 인프라 제공자들은 이러한 가상 머신(Virtual Machine)을 사용하여 완전히 격리된 공간을 제공하였고, 이를 통하여 기존 방식의 자원사용의 비효율성을 해결할 수 있었다. 그리고 2013년 초에 도커 컨테이너 서비스가 등장하면서 컨테이너를 통한 배포가 활발해졌다. 컨.. 2021. 8. 26.