도서 소개

15단계로 배우는 도커와 쿠버네티스

제이펍 2020. 10. 12. 16:18

컨테이너 기반 소프트웨어 개발의 필수 항해 도구, 닻(도커)과 키잡이(쿠버네티스)!

 

도서 구매 사이트(가나다순)

[교보문고] [도서11번가] [알라딘] [영풍문고] [예스이십사] [인터파크] [쿠팡]

전자책 구매 사이트(가나다순)

[교보문고] [구글북스] [리디북스] [알라딘] [예스이십사] [인터파크]

 

출판사 제이펍

원출판사 リックテレコム

원서명 15Stepで習得 Dockerから入るKubernetes コンテナ開発からK8s本番運用まで(원서 ISBN: 9784865941616)

저자명 타카라 마호

역자명 이동규

출판일 2020년 10월 12일

페이지 596쪽

시리즈 I♥Cloud 20(제이펍의 클라우드 시리즈 20)

판 형 (188*245*28.8)

제 본 무선(soft cover)

정 가 34,000원

ISBN 979-11-90665-46-9 (93000)

키워드 도커 / 쿠버네티스 / 미니쿠베 / 컨테이너 / 아키텍처 / 파드 / OSS / 컨트롤러 / 클러스터 / 커맨드 / K8s / YAML / 매니페스트/ 디플로이먼트 / 잡 / 크론잡 스토리지 / 스테이트풀셋 / 인그레스 / 오토스케일 / 가상화

분야 네트워크 / 클라우드

 

관련 사이트

아마존 도서소개 페이지

원출판사 도서소개 페이지

 

관련 포스트

2020/09/29 - [출간전 책소식] - 컨테이너 기반 소프트웨어 개발의 필수 항해 도구, 닻(도커)과 키잡이(쿠버네티스)!

 

관련 시리즈

I♥Cloud 시리즈

 

관련 도서

실습으로 완성하는 구글 클라우드 플랫폼 인 액션

테라폼 설치에서 운영까지

아마존 웹 서비스 부하 테스트 입문

 

관련 파일 다운로드

실습 코드 다운로드(깃헙)

 

 

강의보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음의 자료를 보내드리겠습니다.)

■ 본문의 그림과 표

 

샘플 PDF(차례, 옮긴이 머리말, 시작하며, 감사의 말, 샘플 코드 및 기타 안내, 베타리더 후기, 1장 '도커와 쿠버네티스의 개요' 일부, 2장 '컨테이너 개발을 익히기 위한 5단계' 일부, 3장 'K8s 실전 활용을 위한 10단계' 일부, 부록 '학습 환경 구축' 일부)

sample_15단계로배우는도커와쿠버네티스(DIC-217).pdf
4.67MB

 

정오표 페이지

jpub.tistory.com/1115

도서 구매 사이트(가나다순)

[교보문고] [도서11번가] [알라딘] [영풍문고] [예스이십사] [인터파크] [쿠팡]

전자책 구매 사이트(가나다순)

[교보문고] [구글북스] [리디북스] [알라딘] [예스이십사] [인터파크]

 

도서 소개

한 권으로 배우는 도커와 쿠버네티스 실전 가이드!

 

이 책은 컨테이너 기술에 처음 입문하는 독자도 체계적으로 실력을 쌓아갈 수 있도록 도커부터 시작하여 쿠버네티스의 전반적인 기능을 기초부터 단계별로 학습할 수 있도록 구성되어 있다.

독자는 이 책을 통해 현장에서 운영 가능한 수준의 기술을 익힐 수 있을 것이며, 쿠버네티스 기반의 응용 프로그램 개발과 시스템 아키텍처를 그릴 수 있게 될 것이다. 이 책의 예제 파일은 PC나 클라우드에서 실행할 수 있으며, 일일이 실습할 시간이 없거나 흐름만을 파악하고자 할 경우, 책을 읽는 것만으로도 내용을 충분히 파악할 수 있도록 구성하였다.

 

이 책의 목표와 특징

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

지은이 소개

타카라 마호(高良真穂)

일본 IBM 클라우드 & Cognitive 소프트웨어 사업 본부 소속

Certified Kubernetes Administrator CKA-1800-001213-0100

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

옮긴이 소개

이동규

도쿄에 살면서 라인 재팬의 데이터 엔지니어로 일하고 있다. 번역하며 공부하는 것이 즐거워 꾸준히 번역 활동을 하고 있다. 지은 책으로는 《함수형 언어 산책》이 있으며, 옮긴 책으로는 《자바스크립트와 Node.js를 이용한 웹 크롤링 테크닉》과 《처음 만나는 파이썬》, 《칼퇴를 부르는 엑셀 테크닉 122》, 《모두를 위한 리눅스 프로그래밍》이 있다.

차례

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

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


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

Step 01 컨테이너 첫걸음 107
01.1 hello-world 실행 . . . 107
01.2 컨테이너의 생명 주기와 도커 커맨드 . . . 110
Step 01 마무리 . . . 123
Step 01 참고 자료 . . . 123

Step 02 컨테이너 다루기 124
02.1 대화형 모드로 컨테이너 기동 및 정지 . . . 124
02.2 컨테이너 조작 및 이미지 작성 . . . 126
02.3 여러 터미널에서 조작하기 . . . 128
02.4 호스트와 컨테이너의 관계 . . . 131
Step 02 마무리 . . . 133
Step 02 참고 자료 . . . 133

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

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

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


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

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

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

Step 08 디플로이먼트 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
Step 08 마무리 . . . 246
Step 08 참고 자료 . . . 247
Column 파드의 트러블 슈팅 . . . 248

Step 09 서비스 255
09.1 ClusterIP . . . 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.9 NodePort 사용 . . . 267
09.10 로드밸런서 . . . 268
09.11 ExternalName . . . 271
Step 09 마무리 . . . 272
Step 09 참고 자료 . . . 273

Step 10 잡과 크론잡 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
Step 10 마무리 . . . 305
Step 10 참고 자료 . . . 306

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

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

Step 13 인그레스 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.8 kube-keepalived-vip에 의한 VIP 획득과 HA 구성 . . . 405
13.9 퍼블릭 클라우드에서 인그레스 사용 . . . 423
Step 13 마무리 . . . 425
Step 13 참고 자료 . . . 425

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

Step 15 클러스터 가상화 441
15.1 네임스페이스(Namespace) . . . 442
15.2 kubectl 커맨드의 네임스페이스 설정 . . . 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
Step 15 마무리 . . . 511
Step 15 참고 자료 . . . 512


부록 학습 환경 구축 515

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

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

3 학습 환경 3 574
3.1 IBM Cloud Kubernetes Service . . . 574
3.2 Google Kubernetes Engine . . . 584
참고 자료 . . . 591

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

네이버 책 포스트 유튜브 인스타그램 트위터 페이스북