https://netpple.github.io/docs/make-container-without-docker/#목차

지난 2년간 카카오 검색시스템의 클라우드 전환을 준비하면서 컨테이너 기술 관련하여 학습하고 교육했던 내용들을 정리하였습니다. 검색은 massive한 데이터와 트래픽을 다루는 대용량 분산처리 시스템인만큼 서비스 도입을 위해서는 컨테이너 인터널과 네트워킹, 오케스트레이션에 대한 깊이 있는 이해가 필수적으로 수반되어야 하였습니다. 컨테이너를 좀 더 깊이 이해하고 실전에 활용할 수 있도록 컨테이너 관련 내용과 더불어 필요한 배경지식과 실습을 포함하였습니다. 컨테이너에 관심있으시거나 시작해보려고 하시는 분들, 그리고 deep~하게 파보고 싶은 분들 모두 도움이 되시리라 생각됩니다

목차

컨테이너란 무엇일까요? 마법 상자를 열어 보도록 하겠습니다.제가 처음 도커를 접했을 때는 “vmware, virtualbox 와 뭐가 다르지?” vmware처럼 OS이미지도 있었고 터미널 환경에서 동작하는 모습 역시 똑같아 보였거든요.그렇게 시작하게 되었습니다. 도커는 무엇이고 컨테이너는 무엇인지 실체가 궁금하더라구요 컨테이너의 개념을 설명하고 컨테이너의 시작이라 할 수 있는 chroot에 대해 다룹니다.

v1.2 updated 04/27 03:04, 2021 1편에 이어 chroot의 탈옥문제를 해결하는 pivot_root를 다루고 남은 문제들을 해결하는 컨테이너의 발전과정을 살펴봅니다. 컨테이너가 신기술, 유행 같은 것이라고 생각했었는데, 나름 역사와 사연이 많은 친구네요. chroot로 시작하여 지금의 컨테이너로 성장하기까지 어떤 문제들이 있었고 그러한 문제들을 어떻게 해결하여 왔는지를 다뤄봅니다.

v1.3 updated 04/29 02:04, 2021 서비스 운영 중에 네트웍 장애를 만나면 곤란하곤 하는데요. 컨테이너는 가상 네트웍을 기반으로 하고 있고 이 위에서 컨테이너 간의 통신이 어떻게 이루어지는지를 잘 이해하고 있으면 개발과 운영에 많은 도움이 됩니다. 네트워크 네임스페이스를 이해하기 위한 네트워크 기초 개념들을 다루고 네트워크 네임스페이 실습과 함께 컨테이너 환경에서의 가상 네트워크 구축이 어떻게 이루어지는지를 학습합니다.

v1.0 updated 05/03 08:05, 2021 3편에 이어서 네트워크 네임스페이스를 외부 네트워크와 통신이 가능하도록 구성해 봅니다. 그리고 3,4편에서 다룬 내용을 바탕으로 도커 컨테이너의 네트워크 구성과 비교해 봅니다.

v1.0 new 05/09 14:05, 2021 1,2편에서 다룬 chroot와 pivot_root를 통해서 root filesystem을 isolation하였습니다. 마운트 네임스페이스는 파일시스템 마운트를 isolation 하는 것으로 이미 pivot_root에서도 사용하였지만, mount 처리를 격리함으로써 컨테이너 내부의 파일시스템 구조를 독립적으로 유지합니다. 실제 도커 컨테이너의 이미지 tarball을 이용하여 pivot_root와 mount namespace까지 적용하여 실제 도커 방식과 유사하게 컨테이너를 기동하여 봅니다. 그리고, 컨테이너 이미지 용량/중복을 해결하기 위한 overlayFS 에 대하여 다룹니다.

v1.0 new 05/11 13:05, 2021 분산환경에서 컨테이너 간의 통신은 어떻게 이루어 지는 것일까요? 3,4편에서는 호스트 안에 가상네트워크를 만들어보았습니다. 6편에서는 이를 바탕으로 분산환경에서 호스트 간에 가상 네트워크로 통신이 가능하도록 만들어 봅니다. 이 방법은 실제 쿠버네티스 flannel 등의 CNI에서 사용하고 있는 vxlan 기반의 오버레이 네트워크 구성을 다룹니다.

7편 Overlay Network (2)

준비 중입니다

8편 Pid namespace

준비 중입니다