도커/쿠버네티스 (친절한 설명으로 쉽게 이해하는 컨테이너 관리)

도커/쿠버네티스 (친절한 설명으로 쉽게 이해하는 컨테이너 관리)

$39.11
Description
쿠버네티스와 도커의 기본 사용 방법을 정확히 이해하는 것을 목표로 합니다!
도커 컨테이너는 애플리케이션을 배포하기 위한 새로운 패러다임을 제시하는 가상화 패러다임입니다. 컨테이너 자체는 사용하기 매우 쉽지만 이를 활용하고 관리하기는 결코 쉽지 않습니다. 이 책은 도커를 처음 접하는 개발자를 위한 도커 컨테이너와 이미지의 기본적인 개념을 먼저 설명한 뒤, 도커 컴포즈와 스웜 모드를 통해 컨테이너 애플리케이션을 YAML 파일로 작성하고 클러스터에서 배포하는 방법을 소개합니다. 나아가 도커 컨테이너, 도커 컴포즈, 스웜 모드에서 학습한 지식을 활용해 쿠버네티스의 기초 사용법, 다양한 쿠버네티스 오브젝트의 사용 방법 및 심화 개념까지 알아봅니다.
개정판에서는 도커와 쿠버네티스의 설치 및 사용 방법을 최신 버전에 맞게 수정하였으며, 심화된 쿠버네티스 사용 방법 및 클라우드 생태계에 대한 설명을 강화했습니다. 또 쿠버네티스 환경에서 모니터링 시스템을 구축하기 위한 프로메테우스 기반의 쿠버네티스 메트릭 수집 방법, metrics-server 등과 같은 오픈소스모니터링 도구의 기초적인 사용 방법도 함께 다룹니다.
저자

용찬호

데브시스터즈에서컨테이너인프라관리를맡고있으며,다양한개발과정에서얻은경험들을공유하기위해자그마한블로그(blog.naver.com/alice_k106)를운영하고있습니다.최근에는클라우드라는분야에종속되지않고네트워크,빅데이터,머신러닝등다양한분야를융합하기위해노력하고있습니다.그림,음악등에도관심이많아클라우드와예술분야를결합해보고싶다는꿈을가지고있습니다.

목차

▣01장:도커란?
1.1가상머신과도커컨테이너
1.2도커를시작해야하는이유
____1.2.1애플리케이션의개발과배포가편해집니다
____1.2.2여러애플리케이션의독립성과확장성이높아집니다
____1.2.3도커를통해컨테이너기술을쉽게학습할수있습니다
1.3도커엔진설치
____1.3.1도커엔진의종류및버전
____1.3.2리눅스도커엔진설치
____1.3.3윈도우,맥OS에도커설치
____1.3.4리눅스환경에도커마련하기

▣02장:도커엔진
2.1도커이미지와컨테이너
____2.1.1도커이미지
____2.1.2도커컨테이너
2.2도커컨테이너다루기
____2.2.1컨테이너생성
____2.2.2컨테이너목록확인
____2.2.3컨테이너삭제
____2.2.4컨테이너를외부에노출
____2.2.5컨테이너애플리케이션구축
____2.2.6도커볼륨
____2.2.7도커네트워크
____2.2.8컨테이너로깅
____2.2.9컨테이너자원할당제한
2.3도커이미지
____2.3.1도커이미지생성
____2.3.2이미지구조이해
____2.3.3이미지추출
____2.3.4이미지배포
2.4Dockerfile
____2.4.1이미지를생성하는방법
____2.4.2Dockerfile작성
____2.4.3Dockerfile빌드
____2.4.4기타Dockerfile명령어
____2.4.5Dockerfile로빌드할때주의할점
2.5도커데몬
____2.5.1도커의구조
____2.5.2도커데몬실행
____2.5.3도커데몬설정
____2.5.4도커데몬모니터링
____2.5.5파이썬RemoteAPI라이브러리를이용한도커사용

▣03장:도커스웜
3.1도커스웜을사용하는이유
3.2스웜모드
____3.3.1도커스웜모드의구조
____3.3.2도커스웜모드클러스터구축
____3.3.3스웜모드서비스
____3.3.4도커스웜모드노드다루기

▣04장:도커컴포즈
4.1도커컴포즈를사용하는이유
4.2도커컴포즈설치
4.3도커컴포즈사용
____4.3.1도커컴포즈기본사용법
____4.3.2도커컴포즈활용
4.4도커학습을마치며:도커와컨테이너생태계

▣05장:쿠버네티스설치
5.1쿠버네티스설치환경의종류
5.2쿠버네티스버전선택
5.3개발용도의쿠버네티스설치
____5.3.1DockerforMac/Windows에서쿠버네티스사용
____5.3.2Minikube로쿠버네티스설치
5.4여러서버로구성된쿠버네티스클러스터설치
____5.4.1kubeadm으로쿠버네티스설치
____5.4.2kops로AWS에서쿠버네티스설치
____5.4.3구글클라우드플랫폼의GKE로쿠버네티스사용하기

▣06장:쿠버네티스시작하기
6.1쿠버네티스를시작하기전에
6.2파드(Pod):컨테이너를다루는기본단위
____6.2.1파드사용하기
____6.2.2파드vs.도커컨테이너
____6.2.3완전한애플리케이션으로서의파드
6.3레플리카셋(ReplicaSet):일정개수의파드를유지하는컨트롤러
____6.3.1레플리카셋을사용하는이유
____6.3.2레플리카셋사용하기
____6.3.3레플리카셋의동작원리
6.4디플로이먼트(Deployment):레플리카셋,파드의배포를관리
____6.4.1디플로이먼트사용하기
____6.4.2디플로이먼트를사용하는이유
6.5서비스(Service):파드를연결하고외부에노출
____6.5.1서비스(Service)의종류
____6.5.2ClusterIP타입의서비스-쿠버네티스내부에서만파드에접근하기
____6.5.3NodePort타입의서비스-서비스를이용해파드를외부에노출하기
____6.5.4클라우드플랫폼의로드밸런서와연동하기-LoadBalancer타입의서비스
____6.5.5트래픽의분배를결정하는서비스속성-externalTrafficPolicy
____6.5.6요청을외부로리다이렉트하는서비스-ExternalName

▣07장:쿠버네티스리소스의관리와설정
7.1네임스페이스(Namespace):리소스를논리적으로구분하는장벽
7.2컨피그맵(Configmap),시크릿(Secret):설정값을파드에전달
____7.2.1컨피그맵(Configmap)
____7.2.2시크릿(Secret)

▣08장:인그레스(Ingress)
8.1인그레스를사용하는이유
8.2인그레스의구조
8.3인그레스의세부기능:annotation을이용한설정
8.4Nginx인그레스컨트롤러에SSL/TLS보안연결적용
8.5여러개의인그레스컨트롤러사용하기

▣09장:퍼시스턴트볼륨(PV)과퍼시스턴트볼륨클레임(PVC)
9.1로컬볼륨:hostPath,emptyDir
____9.1.1워커노드의로컬디렉터리를볼륨으로사용:hostPath
____9.1.2파드내의컨테이너간임시데이터공유:emptyDir
9.2네트워크볼륨
9.3PV,PVC를이용한볼륨관리
____9.3.1퍼시스턴트볼륨과퍼시스턴트볼륨클레임을사용하는이유
____9.3.2퍼시스턴트볼륨과퍼시스턴트볼륨클레임사용하기
____9.3.3퍼시스턴트볼륨을선택하기위한조건명시
____9.3.4퍼시스턴트볼륨의라이프사이클과ReclaimPolicy
____9.3.5StorageClass와DynamicProvisioning

▣10장:보안을위한인증과인가-ServiceAccount와RBAC
10.1쿠버네티스의권한인증과정
10.2서비스어카운트와롤(Role),클러스터롤(ClusterRole)
10.3쿠버네티스API서버에접근
____10.3.1서비스어카운트의시크릿을이용해쿠버네티스API서버에접근
____10.3.2클러스터내부에서kubernetes서비스를통해API서버에접근
____10.3.3쿠버네티스SDK를이용해포드내부에서API서버에접근
10.4서비스어카운트에이미지레지스트리접근을위한시크릿설정
10.5kubeconfig파일에서비스어카운트인증정보설정
10.6유저(User)와그룹(Group)의개념
10.7x509인증서를이용한사용자인증

▣11장:애플리케이션배포를위한고급설정
11.1파드의자원사용량제한
____11.1.1컨테이너와파드의자원사용량제한:Limit
____11.1.2컨테이너와파드의자원사용량제한하기:Request
____11.1.3CPU자원사용량의제한원리
____11.1.4QoS클래스와메모리자원사용량제한원리
____11.1.5ResourceQuota와LimitRanger
____11.1.6ResourceQuota,LimitRanger의원리:AdmissionController
11.2쿠버네티스스케줄링
____11.2.1파드가실제로노드에생성되기까지의과정
____11.2.2파드가생성될노드를선택하는스케줄링과정
____11.2.3NodeSelector와NodeAffinity,PodAffinity
____11.2.4Taints와Tolerations사용하기
____11.2.5Cordon,Drain및PodDistributionBudget
____11.2.6커스텀스케줄러및스케줄러확장
11.3쿠버네티스애플리케이션상태와배포
____11.3.1디플로이먼트를통해롤링업데이트
____11.3.2파드의생애주기(Lifecycle)
____11.3.3HPA를활용한오토스케일링

▣12장:커스텀리소스와컨트롤러
12.1쿠버네티스컨트롤러의개념과동작방식
12.2커스텀리소스에대한개념
12.3커스텀리소스를정의하기위한CRD(CustomResourceDefinition)
12.4커스텀리소스와컨트롤러

▣13장:파드를사용하는다른오브젝트들
13.1잡(Jobs)
13.2데몬셋(DaemonSets)
13.3스테이트풀셋(StatefulSets)

▣14장:쿠버네티스모니터링
14.1모니터링기본구조
14.2모니터링메트릭의분류
14.3쿠버네티스모니터링기초
____14.3.1metrics-server
____14.3.2metrics-server동작원리:APIService리소스
____14.3.3kube-state-metrics
____14.3.4node-exporter
14.4프로메테우스를활용한메트릭수집
____14.4.1프로메테우스설치
____14.4.2프로메테우스로메트릭수집하기
____14.4.3그라파나로프로메테우스메트릭시각화하기

▣부록
부록A:도커데몬시작옵션변경하기
부록B:gcloud명령어설치하기
부록C:AWSCLI설치하기

출판사 서평

★이책의구성★

◎도커의기본사용방법을익힘으로써컨테이너의기본개념을학습합니다.(1부1장,1부2장)
◎도커스웜모드를통해서버클러스터링과오케스트레이션의기본개념을학습합니다.(1부3장)
◎도커컴포즈를통해YAML파일의사용방법및여러개의컨테이너를다루는방법을학습합니다.(1부4장)
◎위내용을바탕으로쿠버네티스로운영환경을구축하기위한방법을학습합니다.(2부이후)