서브메뉴

본문

도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문 (현장에서 바로 활용할 수 있는 컨테이너 개발 기법과 실전 기술)
도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문 (현장에서 바로 활용할 수 있는 컨테이너 개발 기법과 실전 기술)
저자 : 야마다 아키노리
출판사 : 위키북스
출판년 : 2019
ISBN : 9791158391447

책소개

도커/쿠버네티스를 실무 현장에 적용하기 위한 ‘컨테이너 개발’ 입문서!

컨테이너 가상화 기술은 게스트 운영체제 없이 호스트 운영체제 위에 격리된 환경에서 가상화를 구현한다. 게스트 운영체제가 따로 존재하지 않으므로 호스트 운영체제의 요소를 공유하며 그만큼 중복되는 요소가 줄어 성능적 이점을 누릴 수 있다. 이 책은 이러한 컨테이너 가상화 기술을 애플리케이션 개발 및 배포에 도입하기 위한 입문서다. 도커/쿠버네티스를 실무에서 활용 중인 저자가 실무 스킬을 최신 정보와 함께 알기 쉽게 설명한다. 로컬 환경 테스트는 물론이고, Google Kubernetes Engine에 배포하는 법, AWS Fargate 활용법 등 클라우드를 도입하는 방법도 다룬다.

이 책은 도커와 쿠버네티스에 대한 기초 실력을 키우고, 컨테이너에 친화적인 애플리케이션을 개발하기 위한 포인트, 더 나아가 실제 운영 환경에 적합한 기본적인 기법 및 노하우를 전달할 수 있도록 구성하였다. 애플리케이션 개발에서 컨테이너가 필수 스킬이 되어가는데, 아직 컨테이너가 뭔지 모르는 개발자나 컨테이너를 운영환경에 도입하기는 아직 두렵다거나, 이름은 들어봤지만 사용해본 적이 없는 독자에게 꼭 필요한 컨테이너 개발 실무를 익힐 데 많은 도움이 될 것이다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

책 소개

도커/쿠버네티스를 실무 현장에 적용하기 위한 ‘컨테이너 개발’ 입문서!

컨테이너 가상화 기술은 게스트 운영체제 없이 호스트 운영체제 위에 격리된 환경에서 가상화를 구현한다. 게스트 운영체제가 따로 존재하지 않으므로 호스트 운영체제의 요소를 공유하며 그만큼 중복되는 요소가 줄어 성능적 이점을 누릴 수 있다. 이 책은 이러한 컨테이너 가상화 기술을 애플리케이션 개발 및 배포에 도입하기 위한 입문서다. 도커/쿠버네티스를 실무에서 활용 중인 저자가 실무 스킬을 최신 정보와 함께 알기 쉽게 설명한다. 로컬 환경 테스트는 물론이고, Google Kubernetes Engine에 배포하는 법, AWS Fargate 활용법 등 클라우드를 도입하는 방법도 다룬다.

이 책은 도커와 쿠버네티스에 대한 기초 실력을 키우고, 컨테이너에 친화적인 애플리케이션을 개발하기 위한 포인트, 더 나아가 실제 운영 환경에 적합한 기본적인 기법 및 노하우를 전달할 수 있도록 구성하였다. 애플리케이션 개발에서 컨테이너가 필수 스킬이 되어가는데, 아직 컨테이너가 뭔지 모르는 개발자나 컨테이너를 운영환경에 도입하기는 아직 두렵다거나, 이름은 들어봤지만 사용해본 적이 없는 독자에게 꼭 필요한 컨테이너 개발 실무를 익힐 데 많은 도움이 될 것이다.
[예스24에서 제공한 정보입니다.]

목차정보

▣ 01장: 도커의 기초

01. 도커란 무엇인가

__도커의 역사

__도커의 기본 개념

__도커 스타일 체험하기

__환경 차이로 인한 문제 방지

02. 도커를 사용하는 의의

__애플리케이션 구성 관리의 용이성

__운영 환경에서 빛을 발하는 도커

__새로운 개발 스타일

03. 로컬 도커 환경 구축하기

__윈도우용 도커 설치

__macOS용 도커 설치

__윈도우용/macOS용 도커 기본 설정



▣ 02장: 도커 컨테이너 배포

01. 컨테이너로 애플리케이션 실행하기

__도커 이미지와 도커 컨테이너

__간단한 애플리케이션과 도커 이미지 만들기

__도커 이미지 빌드하기

__도커 컨테이너 실행

02. 도커 이미지 다루기

__docker image build - 이미지 빌드

__docker search - 이미지 검색

__docker image pull - 이미지 내려받기

__docker image ls - 보유한 도커 이미지 목록 보기

__docker image tag - 이미지에 태그 붙이기

__docker image push - 이미지를 외부에 공개하기

03. 도커 컨테이너 다루기

__도커 컨테이너의 생애주기

__docker container run - 컨테이너 생성 및 실행

__docker container ls - 도커 컨테이너 목록 보기

__docker container stop - 컨테이너 정지하기

__docker container restart - 컨테이너 재시작하기

__docker container rm - 컨테이너 파기하기

__docker container logs ? 표준 출력 연결하기

__docker container exec - 실행 중인 컨테이너에서 명령 실행하기

__docker container cp - 파일 복사하기

__prune - 컨테이너 및 이미지 파기

04. 운영과 관리를 위한 명령

__docker container stats - 사용 현황 확인하기

05. 도커 컴포즈로 여러 컨테이너 실행하기

__docker-compose 명령으로 컨테이너 실행하기

06. 컴포즈로 여러 컨테이너 실행하기

__젠킨스 컨테이너 실행하기

__마스터 젠킨스 용 SSH 키 생성

__슬레이브 젠킨스 컨테이너 생성



▣ 03장: 컨테이너 실전 구축 및 배포

01. 애플리케이션과 시스템 내 단일 컨테이너의 적정 비중

__컨테이너 1개 = 프로세스 1개?

__컨테이너 1개에 하나의 관심사

02. 컨테이너의 이식성

__커널 및 아키텍처의 차이

__라이브러리와 동적 링크 문제

03. 도커 친화적인 애플리케이션

__환경 변수 활용

__데이터 볼륨

04. 퍼시스턴스 데이터를 다루는 방법

__데이터 볼륨 컨테이너

05. 컨테이너 배치 전략

__도커 스웜

__서비스

__스택

__스웜 클러스터 외부에서 서비스 사용하기



▣ 04장: 스웜을 이용한 실전 애플리케이션 개발

01. 웹 애플리케이션 구성

__애플리케이션의 요구 조건

__아키텍처

__Nginx

__TODO 애플리케이션의 전체 구조

02. MySQL 서비스 구축

__데이터베이스 컨테이너 구성

__인증 정보

__MySQL 설정 - etc/mysql/mysql.conf.d/mysqld.conf

__레플리케이션 설정

__MySQL(mysql_master/mysql_slave) Dockerfile

__스웜에서 마스터 및 슬레이브 실행

__MySQL 컨테이너 확인 및 초기 데이터 투입

03. API 서비스 구축

__todoapi의 기본 구조

__애플리케이션 환경 변수 통제

__MySQL 접속 및 테이블 매핑

__핸들러 구현하기

__servePUT

__API를 위한 Dockerfile

__스웜에서 todoapi 서비스 실행하기

04. Nginx 구축

__nginx.conf 파일 구성하기

__Nginx 컨테이너의 Dockerfile

__Nginx를 거쳐 API에 접근하기

05. 웹 서비스 구축

__TODO API 호출 및 페이지 HTML 렌더링

__웹 서비스의 Dockerfile

__정적 파일을 다루는 방법

__Nginx를 통한 접근 허용

__인그레스로 서비스 노출하기

06. 컨테이너 오케스트레이션을 적용한 개발 스타일



▣ 05장: 쿠버네티스 입문

01. 쿠버네티스란 무엇인가

__도커의 부상과 쿠버네티스의 탄생

__쿠버네티스의 역할

02. 로컬 PC에서 쿠버네티스 실행

__윈도우용/macOS용 도커에 쿠버네티스 설치하기

03. 쿠버네티스의 주요 개념

04. 쿠버네티스 클러스터와 노드

05. 네임스페이스

06. 파드

__파드 생성 및 배포하기

__파드 다루기

07. 레플리카세트

08. 디플로이먼트

__레플리카세트의 생애주기

__롤백 실행하기

09. 서비스

__ClusterIP 서비스

__NodePort 서비스

10. 인그레스

__LoadBalancer 서비스

__ExternalName 서비스

__인그레스를 통해 접근하기



▣ 06장: 쿠버네티스 클러스터 구축

01. Google Kubernetes Engine 환경 설정

__GCP 프로젝트 생성

__구글 클라우드 SDK(gcloud) 설치

__쿠버네티스 클러스터 생성

02. GKE에 TODO 애플리케이션 구축

__퍼시스턴트볼륨과 퍼시트턴트볼륨클레임

03. GKE에 MySQL을 마스터-슬레이브 구성으로 구축

__스토리지클래스(StorageClass)

__스테이트풀세트(StatefulSet)

04. GKE에 TODO API를 구축

05. GKE에 TODO 웹 애플리케이션 구축하기

06. 인그레스로 웹 애플리케이션 노출하기

__클러스터를 구축할 서버 준비하기

08. 온프레미스 환경에서 쿠버네티스 클러스터 구축

09. kubespray를 사용한 쿠버네티스 클러스터 구축

__작업용 서버의 SSH 공개키 등록

__IPv4 포워딩 활성화

__클러스터 설정

__클러스터 구축

__잡



▣ 07장: 쿠버네티스 실전편

01. 쿠버네티스의 그 외 리소스

__크론잡

__시크릿

02. 사용자 관리와 RBAC

__RBAC를 이용한 권한 제어

__서비스 계정

03. 헬름

__헬름 설치

__헬름의 주요 개념

__차트 설치하기

__차트로 설치한 애플리케이션 제거하기

__RBAC를 지원하는 애플리케이션 설치하기

__사용자 차트 생성하기

__롤링 업데이트

04. 쿠버네티스 배포 전략

__실행 중인 컨테이너에 대한 헬스 체크 설정

__블루-그린 배포



▣ 08장: 컨테이너 운영

01. 로깅 운영

__컨테이너에서 생성되는 로그

__로깅 드라이버

__컨테이너 로그 다루기

__Fluentd와 Elasticsearch를 이용한 로그 수집 및 검색 기능 구축

__fluentd 로깅 드라이버의 운영 구조

__쿠버네티스에서 로그 관리하기

__그 외의 로그 수집 도구

__컨테이너의 라이브 리스토어

02. 도커 호스트 및 데몬 운영

__dockerd 튜닝하기

__도커 운영 시의 장애 대책

03. 장애 대책

__쿠버네티스 운영 시의 장애 대책

__헬름의 릴리스 히스토리 제한



▣ 09장: 가벼운 도커 이미지 만들기

01. 가벼운 도커 이미지가 왜 필요할까

__이미지 크기 증가에 따라 나타나는 문제

02. 기반 이미지를 가볍게

__scratch

__BusyBox

__알파인 리눅스

__배포 대상 애플리케이션의 크기 줄이기

03. 가벼운 도커 이미지 만들기

__도커 이미지의 레이어 구조 고려하기

__빌드 컨테이너와 실행 컨테이너의 분리

04. 멀티 스테이지 빌드

__소프트웨어 및 도구 통일



▣ 10장: 다양한 도커 활용 방법

01. 팀 개발에서 개발 환경 통일하기

__개발 환경은 집단지성의 결과

02. 도커 컨테이너에서 명령행 도구(CLI) 사용하기

__이미지에서 명령행 도구 버전 변경하기

__도커 컨테이너로 셸 스크립트 실행하기

__테스트 환경 구축

03. 부하 테스트

__마스터-슬레이브 구성으로 부하 테스트하기



▣ 부록A: 보안

01. 공개된 도커 이미지의 안전성

__도커 허브

__Quay.io

__Docker Bench for Security

02. 안전한 도커 이미지와 도커 운영 체계 꾸리기

__컨테이너에 파일을 추가하면서 발생하는 위험

__적절한 접근 제어

__기밀정보 취급



▣ 부록B: 도커로 개발을 지원하는 도구 및 서비스

01. 인하우스 도커 레지스트리 구축

__Registry(Docker Distribution)

__CircleCI

02. 도커와 CI/CD 서비스 연동

03. ECS에서 AWS Fargate를 이용한 컨테이너 오케스트레이션

__Fargate로 ECS 클러스터 구축하기

__ECS를 조작해 애플리케이션 배포하기



▣ 부록C: 주요 명령어 정리

01. 도커 명령어

02. Dockerfile 인스트럭션

03. 도커 컴포즈 명령어

04. 도커 스웜/스택 명령어

__helm init

05. 헬름 명령어

__helm version

__helm create

__helm lint

__helm package

__helm repo list

__helm repo add

__helm repo remove

__helm repo update

__helm search

__helm fetch

__helm serve

__helm install

__helm update

__helm list

__helm get

__helm delete
[알라딘에서 제공한 정보입니다.]