그림과 실습으로 배우는 쿠버네티스 입문 (만들고, 망가뜨리고, 고치며 체득하는 운영 역량과 실무 감각)

그림과 실습으로 배우는 쿠버네티스 입문 (만들고, 망가뜨리고, 고치며 체득하는 운영 역량과 실무 감각)

$28.00
Description
클러스터 장애, OOMKilled, kubectl 디버깅까지, 실제 문제 해결 과정을 경험하자.
만들고, 망가뜨리고, 고치며 체득하는 운영 실무 감각 & 문제 해결 능력!
풍부한 만화와 도해 & 실습 위주의 접근과 단계적 구성으로 쉽게 실전 감각을 키우자!
쿠버네티스는 현대 IT 인프라의 핵심 기술로, 애플리케이션을 안정적으로 운영할 수 있는 강력한 도구다. 그러나 안정적이라는 특징 때문에 트러블슈팅 경험을 쌓기가 쉽지 않다. 이 책에서는 고장난 쿠버네티스를 고치면서, 자연스럽게 문제를 마주하고 해결하는 과정을 경험한다. 컨테이너를 만들고, 클러스터에 애플리케이션을 배포한 뒤 장애를 일으켜 복구하는 시나리오를 반복하면서 쿠버네티스의 동작 원리를 몸으로 익힌다. OOMKilled 오류나 서비스 연결 문제처럼 현업에서 자주 발생하는 상황을 그대로 재현해 보며, 실제 운영에 필요한 감각을 키운다. 단순한 구축과 운영을 넘어 시스템 내부 상태를 들여다보고 한 단계 높은 운영 역량을 갖추기 위해 ‘관측 가능성’과 ‘모니터링’처럼 문제를 조기에 감지할 수 있는 도구와 방법도 설명한다. 풍부한 만화와 도해로 난해한 개념을 시각적으로 풀어내고 실습으로 이론과 실제를 긴밀히 연결하여, 쿠버네티스의 원리를 깊이 이해하고 실제 문제 해결 능력을 체득할 수 있게 구성했다.
저자

타카하시아오이

저자:타카하시아오이
대형제조업체에서소프트웨어엔지니어로근무한후,IT기업의SRE로옮겼다.기술동인지『만화로시작하는쿠버네티스』등을집필했으며,사람들에게쿠버네티스관련기술을어떻게쉽게전할수있을지매일고민하고있다.취미는만화읽기와그리기,음악듣기와맥주마시기.(X:@_a0i)

역자:이동규
도쿄에살면서소프트웨어엔지니어로일하고있다.컴퓨터학을석사까지공부하고개발자와데이터엔지니어로일한지어느덧10년이넘었다.번역하며공부하는것이즐거워꾸준히번역활동을하고있다.지은책으로는『함수형언어산책』이있으며,옮긴책으로는『15단계로배우는도커와쿠버네티스』(제이펍,2020),『모두를위한리눅스프로그래밍』(제이펍,2018),『처음만나는파이썬』(제이펍,2017),『자바스크립트와Node.js를이용한웹크롤링테크닉』(제이펍,2016),『모두의리눅스』(길벗,2021),『그림으로이해하는알고리즘』(길벗,2024)등이있다.

감수:이가라시아야
PreferredNetworks,Inc.에서쿠버네티스를기반으로한머신러닝인프라개발및운영을담당하고있다.이전에는통신사에서OpenStack기반클라우드서비스인프라개발,Yahoo!Japan을위한쿠버네티스인프라연구개발,미국스타트업에서쿠버네티스비용최적화업무를수행했다.쿠버네티스관련OSS개발과쿠버네티스MeetupTokyo의공동운영을맡고있으며,저서로는『리눅스부트캠프(기술평론사)』,『도커/쿠버네티스개발·운용을위한보안실천가이드(마이나비출판)』,『모두의도커쿠버네티스(기술평론사)』,『쿠버네티스실천입문(기술평론사)』이있다.(X:@Ladicle)

목차

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.12Dockerfile작성팁
1.3[만들기]나만의httpserver컨테이너실행하기

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.2kubectl로현황파악하기
____5.2.1리소스확인하기:kubectlget
____5.2.2리소스상세정보출력하기:kubectldescribe
____5.2.3컨테이너의로그출력하기:kubectllogs
5.3kubectl명령어로상세정보출력하기
____5.3.1디버그용사이드카컨테이너시작하기:kubectldebug
____5.3.2컨테이너를그자리에서실행하기kubectlrun
____5.3.3컨테이너에로그인하기:kubectlexec
____5.3.4포트포워딩으로애플리케이션에접속하기
5.4장애를해결하기위한kubectl명령어
____5.4.1매니페스트를그자리에서편집하기:kubectledit
____5.4.2리소스를삭제하기:kubectldelete
5.5터미널을더편리하게사용하기위한팁
____5.5.1자동완성설정하기
____5.5.2kubectl의별명설정하기
____5.5.3리소스이름축약하기
____5.5.4kubectl작업을도와주는도구
____5.5.5kubectl플러그인사용해보기
5.6[고치기]디버그해보기
____5.6.1준비:Pod가실행중인것을확인하기
____5.6.2애플리케이션망가뜨리기
____5.6.3애플리케이션조사하기

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

7장무상태애플리케이션을안전하게만들기
7.1애플리케이션의헬스체크
____7.1.1Readinessprobe
____7.1.2Livenessprobe
____7.1.3Startupprobe
____7.1.4[망가뜨리기]State는Running이지만…
7.2애플리케이션에적절한리소스지정하기
____7.2.1Resourcerequests로컨테이너의리소스사용량요구하기
____7.2.2Resourcelimits로컨테이너의리소스사용량제어하기
____7.2.3리소스의단위
____7.2.4Pod의QualityofService(QoS)클래스
____7.2.5[망가뜨리기]또Pod가고장났다
7.3Pod스케줄링의편리한기능이해하기
____7.3.1Nodeselector로노드지정하기
____7.3.2Affinity와Anti-affinity로Pod스케줄링을유연하게지정하기
____7.3.3Pod분산을위한PodTopologySpreadConstraints설정하기
____7.3.4Taint와Toleration
____7.3.5Tips:PodPriority와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.6kubectlapply이후컨테이너가실행될때까지의흐름
9.7[만들고,망가뜨리기]쿠버네티스는부서지지않는다?
____9.7.1준비:클러스터구축하기
____9.7.2hello-server실행하기
____9.7.3컨트롤플레인정지하기
9.8쿠버네티스를확장하는방법

10장쿠버네티스개발워크플로이해하기
10.1쿠버네티스에배포하기
____10.1.1Push형배포방법:CIOps
____10.1.2Pull형배포방법:GitOps
10.2쿠버네티스매니페스트관리
____10.2.1Helm
____10.2.2Jsonnet
____10.2.3자체템플릿
____10.2.4Kustomize
____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.1Prometheus/Grafana설치하기
____11.3.2메트릭스수집애플리케이션실행하기
____11.3.3메트릭스수집을위한설정
____11.3.4Prometheus에접속하기
____11.3.5Grafana에접속하기

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커스텀컨트롤러만들기

출판사 서평

쿠버네티스,이제두렵지않다!
쉬운그림과장애실습으로체득하는쿠버네티스실무역량!

"인프라관련작업을하다보면동작하지않을때가많다.
쿠버네티스를사용하고는있지만사실잘몰라서문제가생기면당황스럽다“
"그럼쿠버네티스에애플리케이션을배포하고망가뜨려보자!
정상상태만알고있으면망가졌을때곤란하다.
망가뜨리고고칠수있다면실제로망가지더라도안심할수있다.
원인을조사하고해결하는방법을알면응용할수있다.현장에서활용할수있는지식을배워보자!"

-쿠버네티스의핵심개념과동작원리를풍부한일러스트로쉽고재미있게!
-현업에서마주할수있는다양한문제상황을그대로실습하며배운다
-쿠버네티스를구축,운영하는실무감각과트러블슈팅능력을단단히다진다
-망가뜨리고고치며체득하는쿠버네티스문제해결가이드!

저자의말

이책은『CodeZine』에서연재한‘그림으로시작하는쿠버네티스’를바탕으로만들었습니다.책을만들면서초심자에게친절한책이란어떤책일지다시한번깊이고민했습니다.무언가를처음다룰때매뉴얼을봐도잘안되고매뉴얼대로해도꼭문제가생겨고민하던과거의제모습을기억하며이책을구상했습니다.또한사람마다학습스타일이다르다는점도염두에두었습니다.저의학습스타일은다음과같습니다.
-시각적인정보를바탕으로학습한다.
-특히만화로되어있으면더쉽게입문한다.
-우선직접손을움직여돌려보면서학습한다.
쿠버네티스자체도어려운데,함께등장하는많은용어를이해하는것이어렵다고한탄하던과거의제모습을떠올리며쿠버네티스의생태계도최대한설명했습니다.기술이빠르게발전하여동시에다양한지식을습득해야하는상황에서쿠버네티스의문을두드린여러분에게다시한번감사합니다!이책이여러분의여정의첫걸음이되기를바랍니다.