imjihye***
2024-05-26


‘한 권으로 배우는 도커&쿠버네티스’는 제목에서 분명히 드러나듯 도커와 쿠버네티스를 다루고 있는 책이다. 클라우드 혹은 마이크로서비스와 관련한 필수적인 개념들을 한 번에 그리고 쉽게 배울 수 있다는 점이 책의 가장 큰 장점이다. 보통 클라우드와 관련된 학습은 도커 개념에서 부터 출발되므로 클라우드를 공부하기에 앞서 이 책을 읽어보는 것이 좋을 것 같다.
대상 독자
책의 구성
예제 소스 및 첨부 파일
초심자가 어려움을 겪는 도커의 쿠버네티스의 개념을 살펴보고자 한다. 책에서는 운영체제, 스레드 등 더욱 상세한 설명을 더하지만 이 글에서는 핵심 개념을 위주로 발췌하여 작성하였다.
도커는 컨테이너를 통해 서비스를 배포할 수 있는 PaaS로서, 다양한 개발환경에서 편리하게 활용할 수 있다는 이점이 있다. 가령, 다른 서버 환경에서 구축된 두개의 서비스가 있다고 하자. 이 서비스들은 동작할 수 있는 환경이 달라 하나의 서버에서 작동시킬 수 없지만 도커 위에서는 한 번에 동작시킬 수 있다. 컨테이너 단위로 애플리케이션을 실행하여 한 번에 작동 시키면서도 독립성이 보장된다는 것 또한 도커의 장점 중 하나다.
컨테이너는 코드, 라이브러리, 환경 설정 파일을 격리하여 실행가능한 패키지로 만든 것을 의미한다. 격리된 환경에서 서로 충돌하지 않으면서도 통신을 주고 받을 수 있다. 마이크로서비스 아키텍처의 근간이라 할 수 있는 개념이다.
저자는 도커를 이해하기 위해서는 가상화의 개념을 선행해야 한다고 강조한다. 가상화는 리소스를 추상화하는 개념으로 여러 개의 가상머신을 생성하여 단일 컴퓨팅 자원을 여러 개의 논리적인 자원으로 동작시킬 수 있다.
도커의 구성 요소로는 도커 클라이언트와 도커 데몬, containerd, runc, containerd-shim이 있다. 도커를 실행하는 과정에서의 구성요소의 정의와 핵심 역할을 설명한다. 도커 클라이언트는 터미널로서 build, pull, run 등의 명령어를 내리거나 도커 데몬과 통신한다. 도커 데몬(dockerd)은 도커 API 요청을 수신하고 도커 이미지, 컨테이너와 같은 도커 관련 객체를 관리한다. containerd는 컨테이너의 전 생명주기를 관리한다. runc는 컨테이너 실행만을 담당한다. containerd-shim은 containerd와 runc 사이에서 작동하며 컨테이너 실행을 조정한다.

도커는 도커 클라이언트, 도커 호스트, 도커 레지스트리로 구성된다. CLI로 컨테이너를 관리하는 것부터 시작하여 배포까지 수행할 수 있다. 위와 같은 구조에서 조금 더 깊숙이 들어간다면 도커 데몬과 도커 이미지, 도커 컨테이너 개념 또한 숙지해야 한다.
개념을 익힌 뒤엔 실제 명령어를 입력해본다. 가장 먼저 입력하는 것은 ‘docker run hello-world’이다. 이 간단한 명령어에서도 20여개의 결과가 도출될 수 있다. 우리가 파악해야할 정보를 책에서는 한줄 한줄 설명해주기 때문에 이해하는데 큰 무리가 없었다. 심화 실습에서도 같은 방식으로 구조와 작동 원리, 상세한 설명이 함께한다.

1장의 실습을 마친 뒤엔 쿠버네티스를 학습한다. 쿠버네티스 또한 개념과 구조를 먼저 이해해야 한다. 쿠버네티스는 컨테이너들을 관리하는 시스템이다. 여러 개의 컨테이너를 쉽게 생성하고 관리하는 것이 쿠버네티스의 가장 큰 장점이다. 쿠버네티스는 도커에 비해 복잡한 구조와 개념을 가지고 있다. 쿠버네티스 클러스터 내의 컨트롤 플레인, 노드, 워크로드, 네트워크, 스토리지의 역할을 파악해야 구조를 가늠할 수 있을 것이다.
책의 후반부에서는 깃허브 액션과 ArgoCD를 활용하여 소스코드를 지속적으로 통합/배포하는 과정을 다룬다. 깃허브 액션은 소프트웨어 워크플로우 자동화를 쉽게 만들어주는 CI/CD도구이다. 깃허브 액션을 통해 도커 이미지를 빌드하고 컨테이너 실행 테스트를 쉽게 수행할 수 있다. 쿠버네티스의 경우 ArgoCD를 활용한다. 깃허브 액션에서는 쿠버네티스를 통해 배포하는 것이 어렵기 때문이다. ArgoCD를 활용하여 쿠버네티스 클러스터 애플리케이션을 지속적으로 관리하고 배포한다.
책의 장점
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."