이롭게 현명하게

[R-LOG] 서평단 / 그림과 실습으로 배우는 쿠버네티스 입문 / 길벗 본문

T-LOG/R-LOG

[R-LOG] 서평단 / 그림과 실습으로 배우는 쿠버네티스 입문 / 길벗

dev_y.h 2025. 11. 4. 18:07
728x90
반응형

본 서평은 출판사의 서평단으로 선정되어 제공받은 도서를 읽고 작성하였습니다.
#협찬 출판사에서 도서를 제공 받았음

 


[목차]

들어가며

이 책은 어떤 책인가?

책 후기

추천 대상

마무리

 


[들어가며]

사이드 프로젝트를 진행하면서 백엔드 개발자들과 소통해야 하는 상황이 많아졌다.

개발 도중 배포 과정에서 여러 오류를 겪으며 인프라에 대한 이해가 부족하다는 것을 느꼈다.

효율적인 협업을 위해 쿠버네티스의 개념과 동작 방식을 제대로 알고 싶었고, 프론트엔드 개발을 넘어서 서비스가 실제로 배포되고 운영되는 전 과정을 이해하고 싶었다.

그러던 중 '그림과 실습으로 배우는 쿠버네티스 입문'을 만나게 되어 서평단에 참가할 수 있었다.

 


[이 책은 어떤 책인가?]

그림과 실습으로 배우는 쿠버네티스 입문

  • 제목 : 그림과 실습으로 배우는 쿠버네티스 입문
  • 저자 : [저자(글)] 타카하시 아오이, [감수] 이가라시 아야, [번역] 이동규
  • 출판사 : 길벗
  • 출판일 : 2025년 10월 31일

 

더보기

 

1부 쿠버네티스 만들어 보기

1장 도커 컨테이너 만들어 보기
1.1 쿠버네티스는 왜 도커가 필요한가?
1.2 도커 알아보기
____1.2.1 도커란?
____1.2.2 컨테이너란?
____1.2.3 왜 컨테이너인가?
____1.2.4 그래서 도커란?
____1.2.5 준비: 도커 환경 만들기
____1.2.6 컨테이너 실행하기
____1.2.7 컨테이너의 틀이 되는 도커 이미지
____1.2.8 컨테이너 이미지의 설계서인 Dockerfile
____1.2.9 도커 이미지 빌드하기
____1.2.10 직접 만든 도커 이미지로 컨테이너 실행하기
____1.2.11 도커 이미지 공개하기
____1.2.12 Dockerfile 작성 팁
1.3 [만들기] 나만의 http server 컨테이너 실행하기

2장 쿠버네티스 클러스터 만들어 보기
2.1 쿠버네티스란?
____2.1.1 컨테이너를 쉽게 만들고 파기할 수 있게 된 이후의 상황
____2.1.2 쿠버네티스의 특징
____2.1.3 쿠버네티스 아키텍처 개요
____2.1.4 다양한 쿠버네티스 클러스터 구축 방법
2.2 [만들고 고치기] 쿠버네티스 클러스터 만들고 지우기

3장 전체적인 설명
3.1 학습 흐름
3.2 사용하는 애플리케이션에 대해

4장 쿠버네티스 클러스터 위에 애플리케이션 만들기
4.1 쿠버네티스 클러스터 위에 애플리케이션 실행하기
____4.1.1 리소스의 사양을 담은 매니페스트
____4.1.2 컨테이너를 실행하기 위한 최소 구성 리소스: Pod
____4.1.3 리소스가 만들어지는 공간: 네임스페이스
4.2 [만들기] Pod 만들기
____4.2.1 준비: Pod를 만들기 전에 쿠버네티스 클러스터가 준비되었는지 확인하기
____4.2.2 매니페스트 사용해 보기
____4.2.3 매니페스트를 쿠버네티스 클러스터에 적용하기

2부 애플리케이션을 망가뜨리면서 배우는 쿠버네티스

5장 트러블 슈팅 가이드와 kubectl 명령어 사용법
5.1 트러블 슈팅 가이드
____5.1.1 트러블 슈팅에 도움이 되는 Pod의 STATUS 컬럼
5.2 kubectl로 현황 파악하기
____5.2.1 리소스 확인하기: kubectl get
____5.2.2 리소스 상세 정보 출력하기: kubectl describe
____5.2.3 컨테이너의 로그 출력하기: kubectl logs
5.3 kubectl 명령어로 상세 정보 출력하기
____5.3.1 디버그용 사이드카 컨테이너 시작하기: kubectl debug
____5.3.2 컨테이너를 그 자리에서 실행하기 kubectl run
____5.3.3 컨테이너에 로그인하기: kubectl exec
____5.3.4 포트 포워딩으로 애플리케이션에 접속하기
5.4 장애를 해결하기 위한 kubectl 명령어
____5.4.1 매니페스트를 그 자리에서 편집하기: kubectl edit
____5.4.2 리소스를 삭제하기: kubectl delete
5.5 터미널을 더 편리하게 사용하기 위한 팁
____5.5.1 자동 완성 설정하기
____5.5.2 kubectl의 별명 설정하기
____5.5.3 리소스 이름 축약하기
____5.5.4 kubectl 작업을 도와주는 도구
____5.5.5 kubectl 플러그인 사용해 보기
5.6 [고치기] 디버그해 보기
____5.6.1 준비: Pod가 실행 중인 것을 확인하기
____5.6.2 애플리케이션 망가뜨리기
____5.6.3 애플리케이션 조사하기

6장 쿠버네티스 리소스 만들고 망가뜨리기
6.1 Pod의 라이프사이클 알기
6.2 Pod의 다중화를 위한 ReplicaSet과 Deployment
____6.2.1 ReplicaSet
____6.2.2 Deployment
____6.2.3 [만들고 고치기] Deployment를 만들고 망가뜨리기
6.3 Pod로의 접속을 도와주는 Service
____6.3.1 Service의 Type 알기
____6.3.2 Service를 사용한 DNS
____6.3.3 [망가뜨리기] Service 망가뜨리기
6.4 Pod의 외부에서 정보를 읽어들이는 ConfigMap
____6.4.1 환경 변수로 읽어들이기
____6.4.2 볼륨을 통해 설정 파일 읽어들이기
____6.4.3 [망가뜨리기] ConfigMap 설정으로 인한 장애!
6.5 기밀 데이터를 다루기 위한 Secret
____6.5.1 환경 변수로 읽어들이기
____6.5.2 볼륨을 사용해서 컨테이너의 설정 파일 읽어들이기
6.6 한 번만 실행하는 태스크를 위한 Job
6.7 Job을 정기적으로 실행하는 CronJob

7장 무상태 애플리케이션을 안전하게 만들기
7.1 애플리케이션의 헬스 체크
____7.1.1 Readiness probe
____7.1.2 Liveness probe
____7.1.3 Startup probe
____7.1.4 [망가뜨리기] State는 Running이지만…
7.2 애플리케이션에 적절한 리소스 지정하기
____7.2.1 Resource requests로 컨테이너의 리소스 사용량 요구하기
____7.2.2 Resource limits로 컨테이너의 리소스 사용량 제어하기
____7.2.3 리소스의 단위
____7.2.4 Pod의 Quality of Service(QoS) 클래스
____7.2.5 [망가뜨리기] 또 Pod가 고장났다
7.3 Pod 스케줄링의 편리한 기능 이해하기
____7.3.1 Node selector로 노드 지정하기
____7.3.2 Affinity와 Anti-affinity로 Pod 스케줄링을 유연하게 지정하기
____7.3.3 Pod 분산을 위한 Pod Topology Spread Constraints 설정하기
____7.3.4 Taint와 Toleration
____7.3.5 Tips: Pod Priority와 Preemption
____7.3.6 [망가뜨리기] Pod 스케줄링 실패
7.4 애플리케이션 스케일링하기
____7.4.1 수평 스케일링
____7.4.2 수직 스케일링
7.5 노드 정지에 대비하기
____7.5.1 애플리케이션의 가용성을 보증하는 PodDisruptionBudget(PDB)

8장 전체 복습: 애플리케이션 고치기
8.1 준비 환경 만들기
8.2 애플리케이션 환경 구축하기
8.3 애플리케이션 업데이트하기
8.4 정상 상태 확인하기
8.5 원인 조사하기

3부 고장나도 움직이는 쿠버네티스

9장 쿠버네티스의 구조와 아키텍처 이해하기
9.1 쿠버네티스의 아키텍처에 대하여
9.2 아키텍처 개요
9.3 쿠버네티스 클러스터의 핵심인 컨트롤 플레인
9.4 애플리케이션 실행을 담당하는 워커 노드
9.5 쿠버네티스 클러스터에 접근하기 위한 CLI: kubectl
9.6 kubectl apply 이후 컨테이너가 실행될 때까지의 흐름
9.7 [만들고, 망가뜨리기] 쿠버네티스는 부서지지 않는다?
____9.7.1 준비: 클러스터 구축하기
____9.7.2 hello-server 실행하기
____9.7.3 컨트롤 플레인 정지하기
9.8 쿠버네티스를 확장하는 방법

10장 쿠버네티스 개발 워크플로 이해하기
10.1 쿠버네티스에 배포하기
____10.1.1 Push형 배포 방법: CIOps
____10.1.2 Pull형 배포 방법: GitOps
10.2 쿠버네티스 매니페스트 관리
____10.2.1 Helm
____10.2.2 Jsonnet
____10.2.3 자체 템플릿
____10.2.4 Kustomize
____10.2.5 [만들기] Kustomize로 매니페스트를 이해하기 쉽게 만들기

11장 옵저버빌리티와 모니터링 다루기
11.1 관측 가능성에 대해 알아보자
____11.1.1 정보 수집하기: 로그
____11.1.2 측정값 처리하기: 메트릭스
____11.1.3 통신 추적하기: 트레이스
11.2 모니터링에 대해 알아보기
____11.2.1 정보를 시각화하기: 대시보드
____11.2.2 이상 경보: 알림
11.3 [만들기] 모니터링 시스템 구축하기
____11.3.1 Prometheus/Grafana 설치하기
____11.3.2 메트릭스 수집 애플리케이션 실행하기
____11.3.3 메트릭스 수집을 위한 설정
____11.3.4 Prometheus에 접속하기
____11.3.5 Grafana에 접속하기

12장 이 책 이후의 학습에 대하여
12.1 자격증 취득하기
12.2 쿠버네티스에서의 애플리케이션 운영 지식 넓히기
12.3 쿠버네티스의 장애 대응에 강해지기
12.4 쿠버네티스 커미터 되기
12.5 실력을 향상시키는 방법
____12.5.1 공식 문서 읽기
____12.5.2 내부 구현 코드 읽기
____12.5.3 책으로 쿠버네티스에 대한 지식 넓히기
____12.5.4 직접 쿠버네티스 클러스터 구축하기
____12.5.5 커스텀 컨트롤러 만들기

 

 

 

 

이 책은 독자가 시각적인 정보를 바탕으로 학습한다.

단순히 개념을 설명하는 것이 아니라 직접 도커 컨테이너를 만들어보고, 쿠버네티스 클러스터를 구성한다.

쿠버네티스가 무엇인지 만화와 그림으로 이해하기 쉽게 설명해 주고 있다.

그래서 쿠버네티스를 처음 접하는 독자라도 어렵지 않게 개념을 잡을 수 있다.

이해하기 어려웠던 개념도 만화를 통해 시각적으로 풀어주어 텍스트만 있는 입문서보다 훨씬 빠르게 이해할 수 있었다.

도커와 컨테이너

 

트러블 슈팅을 해결할 수 있도록 가이드가 나와 있다.

직접 장애를 일으켜 kubectl 명령어로 문제를 진단하고 해결하는 과정을 따라가며 운영자의 시각을 체득하도록 구성되어 있다.

단순히 인프라를 구축하는 것이 아닌 '장애를 재현하고 해결하는 흐름'을 통해 운영자의 시각을 기를 수 있다.

트러블 슈팅 가이드

 

어떻게 하면 애플리케이션이 안전하게 동작할 수 있는지에 대한 정보들이 담겨있다.

앱이 정상적으로 작동하지 않을 때 해결 방법에 대해 설명해 두었다.

 

쿠버네티스의 아키텍처에 대해 설명하고 있다.

문제 해결이 가능해도 아키텍처에 대한 지식이 있으면 복잡한 문제를 더 빠르게 해결할 수 있다.

 

 


[책 후기]

이 책은 시각적인 자료를 중심으로 학습할 수 있도록 구성되어 있다.

특히 만화 형식의 설명이 더해져 복잡한 개념도 쉽게 이해할 수 있도록 돕고 있다.

그림과 실습으로 쿠버네티스의 핵심 개념을 단계적으로 익히고 실제 장애 상황을 재현하여 해결하는 과정을 따라가다 보면 자연스럽게 응용력이 길러진다.

현업에서 마주할 수 있는 다양한 문제 상황을 실습 중심으로 다루기 때문에 쿠버네티스를 운영하는 실무 감각과 트러블 슈팅 능력을 함께 키울 수 있다.

단순히 개념을 설명하는 것이 아닌 만들고 망가뜨리고 고치며 체득하는 쿠버네티스의 가이드이다.

 

 


[추천 대상]

  • 컨테이너 환경이나 쿠버네티스를 처음 접하면서도 실무 감각을 함께 기르고자 하는 IT 개발자 또는 인프라 엔지니어
  • 기존에 구축 중심의 입문서를 접했지만 '운영, 트러블 슈팅' 감각이 부족하다고 느끼는 분
  • 팀 내에서 쿠버네티스 도입을 준비 중이거나 실제 장애 대응 경험을 쌓고 싶은 분
  • 개념을 텍스트로만 학습하는 데 지친 분, 시각과 체험 중심 학습 방식으로 접근하고 싶은 분

[마무리]

"만들고, 망가뜨리고, 고치며 체득한다."는 이 책의 모토처럼 단순히 읽고 넘어가는 것이 아닌 직접 실습하며 감각을 익힐 수 있는 구성 덕분에 매운 만족스러운 학습 경험이었다.

쿠버네티스를 막 시작하려는 분이나 운영자의 관점에서 이해해보고 싶다는 마음을 가진 분께 딱 맞는 입문서라고 생각됩니다.

이 책을 통해 컨테이너 기반 인프라의 개념을 확실히 잡고, 이후 더 큰 규모의 시스템으로 확장하기 위한 탄탄한 기초를 다질 수 있습니다.

 


 


잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!☺️

댓글과 좋아요는 큰 힘이 됩니다!

728x90
반응형
Comments