-
-
한 권으로 배우는 도커 & 쿠버네티스 - 컨테이너 개념부터 쿠버네티스를 활용한 배포까지
장철원 지음 / 한빛미디어 / 2024년 4월
평점 :
- 소프트웨어 개발은 단순 코드 작성으로 끝나지 않는다. 다양한 사용자들을 위해 배포해야 할 서버는 다양한데 특정 서버에서만 문제를 일으킨다면 그 문제를 해결하기 위해 시간과 노력을 들여야 한다. 우리는 어디에서나 문제없이 잘 돌아가게끔 '잘 돌아가는 환경'까지 포함하여 소프트웨어를 포장하고 싶어졌다. 그렇게 나온 것이 도커와 쿠베너티스.
- 도커를 활용하면 컨테이너 기반 가상화 기술로 애플리케이션을 효율적으로 패키징하고 실행할 수 있다. 쿠버네티스는 컨테이너 관리를 자동화함으로 대규모 애플리케이션 배포 및 확장을 쉽게 할 수 있다.
- 책 1장에서는 우분투 비롯하여 실습환경을 구축한다. 우분투는 리눅스 운영체제를 기반한다. 실제 물리 서버를 구축하는 건 비용이 발생하므로 가상 머신을 생성할 수 있는 소프트웨어 '버추얼박스'를 다운로드한다.
- 2장 도입에서 사전 기초 지식을 이렇게 풍부한 그림 자료와 함께 알아갈 수 있다.
-프로그램은 실행 가능한 명령어의 집합이자 하드 디스크 같은 저장 장치에는 저장되어 있지만 메모리에는 올라가지 않은 정적인 상태를 의미한다. < - > 프로세스는 실행 중인 프로그램을 의미하며 동적인 상태의 프로그램이다.
우리에게 친숙한 파워포인트라는 소프트웨어로 예시를 보여주니 더 잘 이해갔다.
-스레드는 프로세스가 할당받은 자원을 이용하는 실행 단위이자 프로세스 내에서 실행되는 여러 흐름의 단위이다. 프로세스는 최소 1개 이상의 스레드를 가지며 이를 메인 스레드라고 한다. 프로세스는 스레드의 정보를 담고 있다. 즉 프로세스는 스레드의 컨테이너에 해당한다. 워드 프로그램의 경우, 하나의 스레드는 화면 상에 글자를 보여주는 일을 하고 다른 스레드는 사용자의 키 입력에 대응하고 다른 스레드는 백그라운드에서 오탈자와 문법을 확인한다.
-sw로서의 도커는 컨테이너라고 부르는 이용 체제 수준의 가상화 방식으로 소프트웨어를 배포하는 PaaS 제품을 의미한다. 오픈소스다.
-컨테이너란 소프트웨어를 배포할 때 필요한 코드, 라이브러리, 환경설정 등을 파일을 한데 모아 격리 시킨 후 실행 가능한 패키지로 만든 것을 의미한다. 이러한 컨테이너 개념은 최소 구성요소로 분할한다는 마이크로 서비스 아키텍처의 기반이 된다.
-자주 쓰는 도커 명령어도 책에 수록되어 도움받을 수 있다.
-이렇게 도커의 기초에 대한 내용이 끝나고 5장에서는 도커를 활용한 장고를 실행한다. pyenv로 파이썬에서 가상환경을 구축하고 YAML 실습을 위해 pyyaml 라이브러리를 설치한다. (YAML은 플러터에서 처음 봤는데 도커 컴포즈와 쿠버네티스에서도 사용한다고 한다. 다시 보니 반갑구료)
-파이썬을 처음 해보는 거라고 해도 이 책에서 직접 뭔가를 개발하고 그러는 게 아니라서 걱정할 필요 없다. DBMS는 PostgreSQL 사용함.
-6장에서는 django가 아니라 Flask로 웹서비스를 시행한다. 책 앞머리에 학습 길라잡이에서 공부 방향을 정해준다.
-7장부터 쿠버네티스 파트가 시작된다. 쿠버네티스는 줄여서 K8s라고도 부름
쿠버네티스는 수많은 컨테이너를 관리하는 시스템이다. 당장 실행할 컨테이너가 200개면 docker container run 명령어를 100개 입력해야 한다. 이때 쿠버네티스를 사용하면 여러 개의 컨테이너를 쉽게 생성하고 관리할 수 있다.
-8장은 쿠버네티스 실습 환경 구축에 대해 다룬다. 버추얼 박스로 가상 머신을 추가한다. 책에서는 서버 세 대로 쿠버네티스 클러스터를 구출한 후 실습을 진행한다. 쿠버네티스는 마스터 노드와 워커 노드라는 두 종류의 노트로 구성되어 있다. 마스터 노드는 클라이언트의 API 요청을 받고 워커 노드를 다루며 워커 노드는 실제 컨테이너를 실행하는 역할을 한다. 책에서는 편의상 서버 대신 노드라는 용어를 사용한다.
-9장은 쿠버네티스 패키지 관리 프로그램인 헬름, 10장에서는 앞에 도커 파트에 나온 django와 Flask를 쿠버네티스를 통해 실행한다. 도커 허브에 가입
-10장은 서비스 실행 위주였다면 11장에서는 깃허브 액션으로 CI, ArgoCD로 CD를 실습해 본다. 사전 준비 사항은 metalLB 설치 여부와 깃허브 가입
-ArgoCD는 쿠버네티스 앱의 자동 배포를 가능하게 하는 오픈소스 소프트웨어다.
-12장은 쿠버네티스 모니터링에 대해 다룬다. 매트릭 서버로 리소스 사용량을 확인하고, 프로메테우스로 모니터링 데이터를 수집하고, 그라파나를 통해 모니터링 데이터를 시각화하고, 로키를 이용해 로그를 확인한다.
-깃허브 예제 주소와 실습환경을 제공한다.