15단계로 배우는 도커와 쿠버네티스 (컨테이너 개발부터 쿠버네티스 프로덕션까지)

15단계로 배우는 도커와 쿠버네티스 (컨테이너 개발부터 쿠버네티스 프로덕션까지)

$38.11
Description
한 권으로 배우는 도커와 쿠버네티스 실전 가이드!
이 책은 컨테이너 기술에 처음 입문하는 독자도 체계적으로 실력을 쌓아갈 수 있도록 도커부터 시작하여 쿠버네티스의 전반적인 기능을 기초부터 단계별로 학습할 수 있도록 구성되어 있다.
독자는 이 책을 통해 현장에서 운영 가능한 수준의 기술을 익힐 수 있을 것이며, 쿠버네티스 기반의 응용 프로그램 개발과 시스템 아키텍처를 그릴 수 있게 될 것이다. 이 책의 예제 파일은 PC나 클라우드에서 실행할 수 있으며, 일일이 실습할 시간이 없거나 흐름만을 파악하고자 할 경우, 책을 읽는 것만으로도 내용을 충분히 파악할 수 있도록 구성하였다.

이 책의 목표와 특징
● 이 책은 쿠버네티스의 핵심 내용을 엄선하여 독자들이 효율적으로 익힐 수 있도록 구성했다. 무엇보다 실무에 보탬이 되는 지식을 담기 위해 노력했다.
● 이 책은 쿠버네티스를 다루기 전에 반드시 알아야 하는 컨테이너 기술의 기초부터 다룬다. 도커의 모든 내용을 망라하지는 않지만, 쿠버네티스를 다루는 데 필수적인 내용을 선별하여 담았다.
● 이 책은 학습 과정을 15단계로 구성하여 이해를 단계적으로 넓힐 수 있게 구성했다. PC에 직접 혹은 가상 머신을 사용하여 실습 환경을 구축하는 방법과 퍼블릭 클라우드를 사용하는 방법을 다룬다
저자

타카라마호

일본IBM클라우드&Cognitive소프트웨어사업본부소속
CertifiedKubernetesAdministratorCKA-1800-001213-0100
2002년에일본IBM에입사후자동차,항공,금융업계와대학및연구기관등다양한고객과의프로젝트에서시스템설계및구축을맡았다.이후클라우드를활용하는고객을담당하기도했고,현재는쿠버네티스를중심으로한IBM클라우드서비스와소프트웨어제품을담당하고있다.사내/외로쿠버네티스교육활동에힘쓰고있으며,컨테이너및쿠버네티스기술지원에도주력하고있다.

목차

1장도커와쿠버네티스의개요23

1쿠버네티스란?25
1.1쿠버네티스의개요...26
1.2탄생부터현재까지의역사...27
1.3쿠버네티스의발음과로고에대하여...29
1.4쿠버네티스가해결하는과제...30
1.5쿠버네티스의아키텍처...33
마무리...34
참고자료...35

2컨테이너의이해38
2.1컨테이너를사용하는이유...38
2.2가상서버와컨테이너의차이점...39
2.3도커의아키텍처...41
2.4레지스트리와쿠버네티스의관계...47
2.5도커와쿠버네티스의연동...48
2.6컨테이너를위한기술과표준...49
마무리...51
참고자료...52
Column해상컨테이너가이룩한혁명과IT의컨테이너기술혁명...55

3쿠버네티스의기본58
3.1아키텍처...58
3.2쿠버네티스계층구조...61
3.3쿠버네티스API오브젝트...62
3.4파드의기본...65
3.5파드의라이프사이클...67
3.6파드의종료처리...68
3.7클러스터네트워크...69
3.8서비스의기본...70
3.9컨트롤러의기본...73
마무리...77
참고자료...77

4이책의학습환경79
4.1빠르게전반적인기능을파악하고싶은경우...79
4.2직접돌려보면서익히고싶은경우...79
4.3각학습환경의구성...80
4.4학습환경선택...81
4.5이책에서다루는OSS목록...82

5도커커맨드치트시트84
5.1컨테이너환경표시...85
5.2컨테이너의3대기능...85
5.3디버그관련기능...87
5.4쿠버네티스와중복되는기능...88
참고자료...89

6kubectl커맨드치트시트90
6.1kubectl커맨드의기본...90
6.2커맨드...91
6.3리소스타입...91
6.4옵션...95
6.5kubectl커맨드실행예...96
참고자료...102
Column5G와자율운전으로주목받는쿠버네티스...103

2장컨테이너개발을익히기위한5단계105

Step01컨테이너첫걸음107
01.1hello-world실행...107
01.2컨테이너의생명주기와도커커맨드...110
Step01마무리...123
Step01참고자료...123
Step02컨테이너다루기124
02.1대화형모드로컨테이너기동및정지...124
02.2컨테이너조작및이미지작성...126
02.3여러터미널에서조작하기...128
02.4호스트와컨테이너의관계...131
Step02마무리...133
Step02참고자료...133

Step03컨테이너개발134
03.1이미지빌드의개요...134
03.2빌드실행순서...136
03.3Dockerfile작성법...139
03.4Dockerfile작성모범사례...141
Step03마무리...142
Step03참고자료...142

Step04컨테이너와네트워크143
04.1컨테이너네트워크...144
04.2외부에포트를공개하기...147
04.3AP컨테이너와DB컨테이너의연동예...148
Step04마무리...154
Step04참고자료...154

Step05컨테이너API155
05.1컨테이너API의종류와개요...155
05.2환경변수API구현예...159
05.3종료요청API구현예...163
05.4퍼시스턴스볼륨API구현예...167
05.5로그와백그라운드기동...170
Step05마무리...171
Step05참고자료...171
ColumnK8s사용자를위한YAML입문...172

3장K8s실전활용을위한10단계177

Step06쿠버네티스첫걸음179
06.1클러스터구성확인...179
06.2파드실행...180
06.3컨트롤러에의한파드실행...185
06.4잡에의한파드실행...190
Step06마무리...192
Step06참고자료...193

Step07매니페스트와파드194
07.1매니페스트작성법...195
07.2매니페스트적용방법...197
07.3파드의동작확인...198
07.4파드의헬스체크기능...200
07.5초기화전용컨테이너...211
07.6사이드카패턴...213
Step07마무리...219
Step07참고자료...220

Step08디플로이먼트221
08.1디플로이먼트의생성과삭제...222
08.2스케일기능...226
08.3롤아웃기능...228
08.4롤백기능...233
08.5파드의IP주소가변경되는경우와아닌경우...235
08.6자동복구...236
08.7디플로이먼트를이용한고가용성구성...239
08.8디플로이먼트의자동복구...242
Step08마무리...246
Step08참고자료...247
Column파드의트러블슈팅...248

Step09서비스255
09.1ClusterIP...256
09.2서비스타입NodePort...256
09.3서비스타입LoadBalancer...258
09.4서비스타입ExternalName...259
09.5서비스와파드의연결...260
09.6서비스의매니페스트작성법...261
09.7서비스생성과기능확인...263
09.8세션어피니티...265
09.9NodePort사용...267
09.10로드밸런서...268
09.11ExternalName...271
Step09마무리...272
Step09참고자료...273

Step10잡과크론잡274
10.1잡활용예...276
10.2잡의실행수와동시실행수...279
10.3하나의컨테이너로구성된파드가이상종료하는경우...282
10.4여러컨테이너중일부가이상종료할때의동작...284
10.5소수계산컨테이너와잡컨트롤러...286
10.6메시지브로커와의조합...290
10.7쿠버네티스API라이브러리사용...295
10.8실행...298
10.9크론잡...302
Step10마무리...305
Step10참고자료...306

Step11스토리지307
11.1스토리지의종류와클러스터구성...308
11.2스토리지시스템의방식...309
11.3스토리지의추상화와자동화...311
11.4퍼시스턴트볼륨이용...313
11.5NFS서버사용...319
11.6클라우드에서의동적프로비저닝...326
11.7SDS연동에의한동적프로비저닝...335
Step11마무리...341
Step11참고자료...342

Step12스테이트풀셋343
12.1디플로이먼트와의차이...344
12.2매니페스트작성법...349
12.3수동테이크오버방법...355
12.4노드장애시의동작...356
12.5테이크오버를자동화하는코드개발...358
12.6장애회복테스트...375
Step12마무리...379
Step12참고자료...381

Step13인그레스382
13.1인그레스의기능과개요...383
13.2인그레스학습환경준비...384
13.3공개URL과애플리케이션의매핑...385
13.4인그레스적용...389
13.5인그레스SSL/TLS암호화...395
13.6모더니제이션과제...399
13.7세션어피니티기능사용...401
13.8kube-keepalived-vip에의한VIP획득과HA구성...405
13.9퍼블릭클라우드에서인그레스사용...423
Step13마무리...425
Step13참고자료...425

Step14오토스케일427
14.1오토스케일링작업...429
14.2학습환경3에서의오토스케일체험...432
14.3부하테스트용컨테이너준비...433
14.4HPA설정과부하테스트...436
Step14마무리...439
Step14참고자료...439

Step15클러스터가상화441
15.1네임스페이스(Namespace)...442
15.2kubectl커맨드의네임스페이스설정...446
15.3시크릿과컨피그맵...451
15.4시크릿이용...452
15.5컨피그맵...457
15.6메모리와CPU할당과상한지정...460
15.7네트워크의접근제어(Calico)...463
15.8역할에따른접근범위제한...464
15.9환경구축...466
15.10설정파일내용...491
Step15마무리...511
Step15참고자료...512

부록학습환경구축515

1학습환경1517
1.1Mac환경...517
1.2Windows환경...527
1.3Vagrant의리눅스에서미니쿠베사용하기...538
1.4미니쿠베사용방법...542

2학습환경2551
2.1멀티노드K8s...551
2.2가상NFS서버...560
2.3가상GlusterFS클러스터...563
2.4프라이빗레지스트리...566

3학습환경3574
3.1IBMCloudKubernetesService...574
3.2GoogleKubernet