처음부터 제대로 배우는 도커/쿠버네티스 컨테이너 개발과 운영 (컨테이너 기초부터 배포, 앱 구축, 패키징, 클라우드 운영, CD 자동화까지 실무 활용법 한 권으로 끝내기 | 개정신

처음부터 제대로 배우는 도커/쿠버네티스 컨테이너 개발과 운영 (컨테이너 기초부터 배포, 앱 구축, 패키징, 클라우드 운영, CD 자동화까지 실무 활용법 한 권으로 끝내기 | 개정신

$44.18
Description
실전 애플리케이션 개발과 운영을 위한 도커/쿠버네티스 컨테이너 기술 완벽 해설서
도커와 쿠버네티스를 활용한 컨테이너 기술의 핵심을 집대성한 실전 입문서다. 컨테이너 가상화 기술의 개념부터 시작해, 도커 기반 애플리케이션 배포와 이미지 생성, 네트워크 구성, 오케스트레이션 시스템 쿠버네티스까지 단계별로 익힐 수 있도록 구성되었다. 초판 출간 이후 변화한 최신 생태계를 반영해 전면 개정/증보되었으며, 컨테이너 개발 경험이 풍부한 저자의 노하우와 현업 사례를 담았기에 초보자부터 중급자까지 모두에게 유용하다.
저자

야마다아키노리

주식회사사이버에이전트소속.라이브스트리밍서비스를개발하며개발자생산성팀의총괄을맡았다.조직전반의개발생산성향상,비용절감,품질보증등을위한서비스개발을지원하고있다.컨테이너를활용한개발과소프트웨어딜리버리에정통하다.

목차

옮긴이머리말xiii
베타리더후기xiv
시작하며xvi
감사의글xviii

CHAPTER1컨테이너와도커기초1
1.1컨테이너란?1
__1.1.1컨테이너형가상화2
__1.1.2컨테이너사용사례3
COLUMN컨테이너의단점5
1.2도커란?5
__1.2.1도커와Docker,Inc.의역사6
__1.2.2애플리케이션배포에초점을맞춘도커7
__1.2.3도커접하기8
COLUMNMoby프로젝트11
1.3컨테이너를사용하는이유11
__1.3.1불변하는애플리케이션과실행환경에의한재현성확보12
COLUMN클라우드의IaC와ImmutableInfrastructure15
COLUMN컨테이너기술과서버리스플랫폼16
__1.3.2애플리케이션구성관리의용이성16
__1.3.3환경과상관없이실행가능한높은이식성18
__1.3.4컨테이너기반개발의효율성20
1.4로컬컨테이너실행환경구축20
__1.4.1도커데스크톱설치21
COLUMNARM아키텍처24
__1.4.2도커데스크톱설정25
__1.4.3도커데스크톱트러블슈팅30
COLUMNLinux환경설치32
COLUMN도커의구독플랜32

CHAPTER2컨테이너배포33
2.1컨테이너로애플리케이션실행하기33
__2.1.1컨테이너이미지와컨테이너의기초34
2.2간단한애플리케이션과컨테이너이미지만들기37
__2.2.1Dockerfile의인스트럭션39
COLUMNCMD실행시덮어쓰기40
COLUMNENTRYPOINT로커맨드실행하는방법알아보기42
COLUMNDockerfile의다른인스트럭션44
COLUMNCMD의지정방식45
__2.2.2컨테이너실행하기45
COLUMN짧은도커커맨드46
2.3이미지다루기48
__2.3.1dockerimagebuild-이미지빌드50
__2.3.2dockersearch-이미지검색54
__2.3.3dockerimagepull-이미지가져오기56
__2.3.4dockerimagels-이미지리스트57
__2.3.5dockerimagetag-이미지태그57
__2.3.6dockerlogin-컨테이너레지스트리로그인60
__2.3.7dockerimagepush-이미지공개64
COLUMNGHCR에컨테이너이미지공개하기67
2.4컨테이너다루기67
__2.4.1컨테이너의라이프사이클68
__2.4.2dockercontainerrun-컨테이너생성과실행69
COLUMN커맨드실행시자주사용되는옵션71
__2.4.3dockercontainerls-컨테이너리스트72
__2.4.4dockercontainerstop-컨테이너중지74
__2.4.5dockercontainerrm-컨테이너파기74
__2.4.6dockercontainerlogs-로그(표준스트림출력)확인하기76
__2.4.7dockercontainerexec-실행중인컨테이너에서커맨드실행77
__2.4.8dockercontainercp-파일복사78
2.5운영관리를위한커맨드79
__2.5.1prune-파기79
__2.5.2dockercontainerstats-사용상태가져오기80
2.6도커컴포즈81
__2.6.1도커컴포즈를사용한단일컨테이너실행81
__2.6.2컴포즈를사용해여러컨테이너실행하기84

CHAPTER3실용적인컨테이너의구축과배포93
3.1애플리케이션과컨테이너의구성93
__3.1.1하나의컨테이너=하나의프로세스?95
__3.1.2하나의컨테이너에하나의관심사98
3.2컨테이너의이식성100
__3.2.1커널및아키텍처와의차이100
COLUMNWindows에서동작하는컨테이너101
__3.2.2라이브러리,동적링크101
3.3컨테이너친화적인애플리케이션102
__3.3.1설정파일을포함하여이미지빌드하기103
__3.3.2컨테이너외부의설정파일사용하기103
COLUMN컨테이너친화적인프로덕트만있는것은아니다.107
3.4보안정보를다루는방법107
__3.4.1보안정보를받는컨테이너107
__3.4.2버전관리시스템과보안정보관리의어려움108
__3.4.3시크릿을사용한보안정보관리109
COLUMN소프트웨어공급망공격111
__3.4.4완벽한대책은존재하지않는다111
3.5영속성데이터의사용방법112
__3.5.1DataVolume112
__3.5.2DataVolume컨테이너114

CHAPTER4여러컨테이너의구성을통한애플리케이션구축119
4.1웹애플리케이션구성119
__4.1.1애플리케이션스펙120
__4.1.2아키텍처120
4.2MySQL구축123
__4.2.1MySQL에접속하는유저의비밀번호생성하기124
__4.2.2MySQL컨테이너추가설정하기125
__4.2.3MySQL의Dockerfile126
__4.2.4MySQL컨테이너의구성설정하기126
4.3데이터베이스마이그레이터구축128
__4.3.1golang-migrate로데이터베이스마이그레이션하기128
__4.3.2마이그레이션실행스크립트131
__4.3.3데이터베이스마이그레이터의Dockerfile132
COLUMN.dockerignore파일134
__4.3.4데이터베이스마이그레이터컨테이너의구성설정하기134
4.4API서버와웹서버구축139
__4.4.1리포지터리디렉터리구성140
COLUMN폴리레포와모노레포142
__4.4.2실행파일과커맨드상세142
__4.4.3API서버의구축144
__4.4.4웹서버구축151
4.5리버스프록시구축158
__4.5.1nginx컨테이너의템플릿구조159
COLUMNentrykit163
__4.5.2Dockerfile163
4.6여러컨테이너를구성하여작업관리앱실행하기164
__4.6.1compose.yaml164
__4.6.2작업관리앱실행하기170
4.7Tilt로여러컨테이너구성을통한개발경험향상171
__4.7.1Tilt실행171
__4.7.2Tilt의강력한기능172
4.8컨테이너오케스트레이션기초정리176

CHAPTER5쿠버네티스입문177
5.1쿠버네티스란?178
__5.1.1도커의번성과쿠버네티스의탄생178
__5.1.2쿠버네티스의위상179
5.2로컬환경에서쿠버네티스실행하기181
__5.2.1도커데스크톱에서로컬쿠버네티스환경구축하기181
COLUMN다른쿠버네티스구축도구187
5.3쿠버네티스개요187
5.4쿠버네티스클러스터와노드188
COLUMN컨트롤플레인을구성하는관리컴포넌트190
5.5네임스페이스191
5.6파드192
__5.6.1파드생성하고배포하기193
__5.6.2파드조작하기195
COLUMN파드와파드내부컨테이너의주소197
5.7레플리카셋197
5.8디플로이먼트199
__5.8.1레플리카셋라이프사이클202
__5.8.2롤백실행하기204
5.9서비스205
__5.9.1레이블셀렉터를사용한트래픽라우팅208
COLUMN서비스의이름분석211
__5.9.2ClusterIP서비스211
__5.9.3Headless서비스211
__5.9.4NodePort서비스213
__5.9.5LoadBalancer서비스214
__5.9.6ExternalName서비스214
5.10인그레스215
__5.10.1인그레스컨트롤러와인그레스클래스215
__5.10.2인그레스를통한액세스216
COLUMNkubectl로리소스타입과리소스명을지정하는방법221
COLUMNTilt로매니페스트파일의업데이트를감지하고,자동으로리소스업데이트하기222
COLUMNkk9s223
COLUMN쿠버네티스API224

CHAPTER6쿠버네티스배포와클러스터구축226
6.1작업관리앱구성226
__6.1.1작업관리앱을구성하는쿠버네티스리소스227
6.2작업관리앱을쿠버네티스에배포하기227
__6.2.1네임스페이스228
__6.2.2시크릿228
__6.2.3MySQL배포232
COLUMN스테이트풀셋의serviceName237
__6.2.4데이터베이스마이그레이터배포238
__6.2.5API서버배포241
__6.2.6웹서버배포245
6.3쿠버네티스애플리케이션온라인에공개하기251
__6.3.1AzureKubernetesService배포251
COLUMN자체도메인과HTTPS로애플리케이션공개하기257
COLUMNkubectx259

CHAPTER7쿠버네티스활용260
7.1파드배포전략260
__7.1.1RollingUpdate261
COLUMN리소스의일부를업데이트하는kubectlpatch커맨드266
__7.1.2컨테이너실행시상태체크설정하기268
COLUMN안전하게애플리케이션을중지하고파드삭제하기271
__7.1.3Blue-GreenDeployment272
COLUMN서비스메시를구현하는프로덕트277
7.2쿠버네티스에서정기적인배치작업실행하기278
__7.2.1크론잡278
__7.2.2타임존을고려한크론잡실행284
__7.2.3크론잡에서잡을일회성으로실행하기284
7.3유저관리와Role-BasedAccessControl(RBAC)285
__7.3.1RBAC를사용해권한제어구현하기286
__7.3.2클러스터롤생성288
__7.3.3서비스어카운트생성290
__7.3.4클러스터롤바인딩생성291
__7.3.5일반유저294

CHAPTER8쿠버네티스애플리케이션패키징299
8.1Kustomize300
__8.1.1기본적인사용방법301
COLUMN권장하지않는commonLabels309
__8.1.2재사용과부분오버레이310
__8.1.3Kustomize에서시크릿다루기315
__8.1.4네트워크를경유해서매니페스트생성하기321
8.2Helm323
__8.2.1Helm설치324

출판사 서평

따라하며익히는컨테이너기술실전입문서

날마다바뀌는소프트웨어개발환경속에서컨테이너기술은선택이아닌필수기술로자리잡았으며,도커와쿠버네티스는이제개발자라면누구나이해해야할핵심도구다.프런트엔드와백엔드,인프라,DevOps를아우르는전방위적수요는모든개발자에게컨테이너기술을요구하고있다.
이책은도커와쿠버네티스를중심으로컨테이너기술을단계적으로익힐수있도록구성되어있다.단순한개념나열이아닌,실습중심의예제와구성으로초보자도실제업무에곧바로적용할수있는실전감각을기를수있다.이미지빌드,다중컨테이너구성,쿠버네티스를통한오케스트레이션전략까지,실무에꼭필요한기술들을풍부하게담았다.
이번개정신판은변화한최신생태계를반영하여내용을전면수정·보완하였으며,저자의실무경험과기술적통찰이더해져더욱깊이있고실용적인지침서를완성했다.개념학습을넘어개발과운영에필요한사고방식을형성하고,실무에컨테이너기술을적용할수있을것이다.
초보자부터실무자까지,컨테이너기술을제대로배우고싶은모든개발자를위한친절하고도실질적인가이드다.이책과함께컨테이너기술여정의첫걸음을내디뎌보자!

주요내용
● 컨테이너와도커의개념,구조,실행원리
● 도커이미지빌드와실행,포트포워딩실습
● 컴포즈를이용한다중컨테이너구성및실행
● 컨테이너간네트워크연동과마운트,시크릿관리
● 도커기반웹애플리케이션과API서버구축
● 실전MySQL데이터스토어와마이그레이터컨테이너설정
● 쿠버네티스를통한고가용성운영및스케일링전략
● 운영환경에서의보안설정,볼륨,로그수집등실무기술