본문 바로가기

리디북스 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디북스 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기


개정판 | 시작하세요! 도커/쿠버네티스 상세페이지

컴퓨터/IT 개발/프로그래밍

개정판 | 시작하세요! 도커/쿠버네티스

친절한 설명으로 쉽게 이해하는 컨테이너 관리

구매종이책 정가36,000
전자책 정가30%25,200
판매가25,200
개정판 | 시작하세요! 도커/쿠버네티스

작품 소개

<개정판 | 시작하세요! 도커/쿠버네티스>

쿠버네티스와 도커의 기본 사용 방법을 정확히 이해하는 것을 목표로 합니다!

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

★ 이 책의 구성 ★

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


저자 소개

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

목차

01장: 도커란?
1.1 가상 머신과 도커 컨테이너
1.2 도커를 시작해야 하는 이유
- 1.2.1 애플리케이션의 개발과 배포가 편해집니다.
- 1.2.2 여러 애플리케이션의 독립성과 확장성이 높아집니다.
1.3 도커 엔진 설치
- 1.3.1 도커 엔진의 종류 및 버전
- 1.3.2 리눅스 도커 엔진 설치
- 1.3.3 윈도우, 맥 OS에 도커 설치
- 1.3.4 Docker Toolbox와 Docker for Windows/Mac의 차이점
- 1.3.5 리눅스 환경에 도커 마련하기

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.4 Dockerfile
- 2.4.1 이미지를 생성하는 방법
- 2.4.2 Dockerfile 작성
- 2.4.3 Dockerfile 빌드
- 2.4.4 기타 Dockerfile 명령어
- 2.4.5 Dockerfile로 빌드할 때 주의할 점
2.5 도커 데몬
- 2.5.1 도커의 구조
- 2.5.2 도커 데몬 실행
- 2.5.3 도커 데몬 설정
- 2.5.4 도커 데몬 모니터링
- 2.5.5 Remote API 라이브러리를 이용한 도커 사용

03장: 도커 스웜
3.1 도커 스웜을 사용하는 이유
3.2 스웜 클래식과 도커 스웜 모드
3.3 스웜 모드
- 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.1 Docker for Mac / Windows에서 쿠버네티스 사용
- 5.3.2 Minikube로 쿠버네티스 설치
5.4 여러 서버로 구성된 쿠버네티스 클러스터 설치
- 5.4.1 kubeadm으로 쿠버네티스 설치
- 5.4.2 kops로 AWS에서 쿠버네티스 설치
- 5.4.3 구글 클라우드 플랫폼의 GKE로 쿠버네티스 사용하기

06장: 쿠버네티스 시작하기
6.1 쿠버네티스를 시작하기 전에
6.2 포드(Pod) : 컨테이너를 다루는 기본 단위
- 6.2.1 포드 사용하기
- 6.2.2 포드 vs. 도커 컨테이너
- 6.2.3 완전한 애플리케이션으로서의 포드
6.3 레플리카셋(Replica Set) : 일정 개수의 포드를 유지하는 컨트롤러
- 6.3.1 레플리카셋을 사용하는 이유
- 6.3.2 레플리카셋 사용하기
- 6.3.3 레플리카셋의 동작 원리
- 6.3.4 레플리케이션 컨트롤러 vs. 레플리카셋
6.4 디플로이먼트(Deployment) : 레플리카셋, 포드의 배포를 관리
- 6.4.1 디플로이먼트 사용하기
- 6.4.2 디플로이먼트를 사용하는 이유
6.5 서비스(Service) : 포드를 연결하고 외부에 노출
- 6.5.1 서비스(Service)의 종류
- 6.5.2 ClusterIP 타입의 서비스 - 쿠버네티스 내부에서만 포드에 접근하기
- 6.5.3 NodePort 타입의 서비스 - 서비스를 이용해 포드를 외부에 노출하기
- 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.4 Nginx 인그레스 컨트롤러에 SSL/TLS 보안 연결 적용
8.5 여러 개의 인그레스 컨트롤러 사용하기

09장: 퍼시스턴트 볼륨(PV)과 퍼시스턴트 볼륨 클레임(PVC)
9.1 로컬 볼륨 : hostPath, emptyDir
- 9.1.1 워커 노드의 로컬 디렉터리를 볼륨으로 사용 : hostPath
- 9.1.2 포드 내의 컨테이너 간 임시 데이터 공유 : emptyDir
9.2 네트워크 볼륨
9.3 PV, PVC를 이용한 볼륨 관리
- 9.3.1 퍼시스턴트 볼륨과 퍼시스턴트 볼륨 클레임을 사용하는 이유
- 9.3.2 퍼시스턴트 볼륨과 퍼시스턴트 볼륨 클레임 사용하기
- 9.3.3 퍼시스턴트 볼륨을 선택하기 위한 조건 명시
- 9.3.4 퍼시스턴트 볼륨의 라이프사이클과 Reclaim Policy
- 9.3.5 StorageClass와 Dynamic Provisioning

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

11장: 애플리케이션 배포를 위한 고급 설정
11.1 포드의 자원 사용량 제한
- 11.1.1 컨테이너와 포드의 자원 사용량 제한 : Limit
- 11.1.2 컨테이너와 포드의 자원 사용량 제한하기 : Request
- 11.1.3 CPU 자원 사용량의 제한 원리
- 11.1.4 QoS 클래스와 메모리 자원 사용량 제한 원리
- 11.1.5 ResourceQuota와 LimitRanger
- 11.1.6 ResourceQuota, LimitRanger의 원리 : Admission Controller
11.2 쿠버네티스 스케줄링
- 11.2.1 포드가 실제로 노드에 생성되기까지의 과정
- 11.2.2 포드가 생성될 노드를 선택하는 스케줄링 과정
- 11.2.3 NodeSelector와 Node Affinity, Pod Affinity
- 11.2.4 Taints와 Tolerations 사용하기
- 11.2.5 Cordon, Drain 및 PodDistributionBudget
- 11.2.6 커스텀 스케줄러 및 스케줄러 확장
11.3 쿠버네티스 애플리케이션 상태와 배포
- 11.3.1 디플로이먼트를 통해 롤링 업데이트
- 11.3.2 포드의 생애 주기(Lifecycle)
- 11.3.3 HPA를 활용한 오토스케일링

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

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

14장: 쿠버네티스 모니터링
14.1 모니터링 기본 구조
14.2 모니터링 메트릭의 분류
14.3 쿠버네티스 모니터링 기초
- 14.3.1 metrics-server
- 14.3.2 metrics-server 동작 원리: APIService 리소스
- 14.3.3 kube-state-metrics
- 14.3.4 node-exporter
14.4 프로메테우스를 활용한 메트릭 수집
- 14.4.1 프로메테우스 설치
- 14.4.2 프로메테우스로 메트릭 수집하기
- 14.4.3 그라파나로 프로메테우스 메트릭 시각화하기

부록
부록A: 도커 데몬 시작 옵션 변경하기
부록B: 특정 버전의 도커 설치하기
부록C: gcloud 명령어 설치하기
부록D: AWS CLI 설치하기


리뷰

구매자 별점

4.0

점수비율

  • 5
  • 4
  • 3
  • 2
  • 1

1명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디북스에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전