메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

개념에 대한 탄탄한 이해를 기반으로 실습하는 ‘한 권으로 배우는 도커&쿠버네티스’

imjihye***

|

2024-05-26

한 권으로 배우는 도커 & 쿠버네티스

STEP BY STEP, 원리부터 이해하는 도커 & 쿠버네티스 가이드

  • 저자 : 장철원
  • 출간 : 2024-04-29

 

 ‘한 권으로 배우는 도커&쿠버네티스’는 제목에서 분명히 드러나듯 도커와 쿠버네티스를 다루고 있는 책이다. 클라우드 혹은 마이크로서비스와 관련한 필수적인 개념들을 한 번에 그리고 쉽게 배울 수 있다는 점이 책의 가장 큰 장점이다. 보통 클라우드와 관련된 학습은 도커 개념에서 부터 출발되므로 클라우드를 공부하기에 앞서 이 책을 읽어보는 것이 좋을 것 같다. 

 

 

대상 독자

  • 도커와 쿠버네티스를 처음 공부하는 독자
  • 저자는 크래프톤과 NHN에서 머신러닝을 활용한 데이터 분석과 IT 보안 등의 업무를 수행하고, 다수의 기업에서 IT 강의를 진행해왔다. 실제 도커와 쿠버네티스를 공부하는 수강생들은 학습과정에서 어려움을 느끼고 포기하곤 했다고 한다. 이 점에 착안하여 책에서는 도커, 쿠버네티스에 대한 개념을 확실히 이해시키고자 한다. 기본 개념과 역할을 이해할 수 있어야 유의미한 실습을 수행할 수 있다는 것을 전제로 한다.

책의 구성

  • 책은 1부와 2부로 나뉜다. 1부에서는 도커의 개념부터 기초 명령어를 학습하고 django, Flask 등의 실습을 수행한다. 2부에서는 쿠버네티스의 기본 구조와 기초 내용을 학습한 후 django, Flask를 활용하여 웹 서비스를 배포한다. 깃허브 액션과 ArgoCD를 활용하여 CI/CD를 진행하고 쿠버네티스 클러스터 모니터링 방법을 학습하는 것으로 마무리한다.

예제 소스 및 첨부 파일

  • https://github.com/losskatsu/DockerKubernetes

 

 

 초심자가 어려움을 겪는 도커의 쿠버네티스의 개념을 살펴보고자 한다. 책에서는 운영체제, 스레드 등 더욱 상세한 설명을 더하지만 이 글에서는 핵심 개념을 위주로 발췌하여 작성하였다.

 도커는 컨테이너를 통해 서비스를 배포할 수 있는 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를 활용하여 쿠버네티스 클러스터 애플리케이션을 지속적으로 관리하고 배포한다.

 

 

책의 장점

  • 저자가 개념에 대한 이해를 강조했던 만큼 개념을 확실하게 이해할 수 있게끔 한다. 상위개념과 하위개념, 관련된 용어를 선행함으로서 개념 간의 관계를 구상할 수 있도록 돕는다.
  • 개념을 이해한 후엔 구체적으로 어떻게 구성되고 동작하는지를 파악해야 한다. 이는 책에 나와있는 구조도 혹은 표로 확실하게 구성과 관계를 잡아갈 수 있었다. 구조도가 꽤 빈번하게 등장하는데 동작을 이해하는데 큰 도움이 되었다.

 

 

 

 

 

 

 

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?