장바구니 담기 close

장바구니에 상품을 담았습니다.

리눅스 컨테이너 LXC

리눅스 컨테이너 LXC

  • 콘스탄틴 이바노프
  • |
  • 에이콘출판
  • |
  • 2017-11-29 출간
  • |
  • 452페이지
  • |
  • 188 X 235 X 21 mm
  • |
  • ISBN 9791161750811
판매가

30,000원

즉시할인가

27,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
27,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

★ 이 책에서 다루는 내용 ★

커널 네임스페이스와 제어 그룹을 사용한 리눅스 컨테이너 기반 기술
LXC 및 libvirt를 사용한 리눅스 컨테이너 설치, 구성 및 관리
파이썬 libvirt 바인딩을 사용한 애플리케이션 작성
컨테이너 네트워킹
LXC 모니터링과 보안 설정
클라우드 환경에서 LXC를 활용한 고가용 애플리케이션 개발 및 배포

★ 이 책의 대상 독자 ★

LXC 동작 방법에 대한 깊이 있는 이해를 원하는 리눅스 관리자부터 하이퍼바이저에 대한 오버헤드 없이 격리된 환경에서 쉽고 빠르게 프로토타입 코드를 작성해야 하는 소프트웨어 개발자까지 리눅스 컨테이너에 관심이 있는 모든 독자를 대상으로 한다. 데브옵스(DevOps) 엔지니어는 특히 이 책을 처음부터 끝까지 읽어보는 것을 권장한다.

★ 이 책의 구성 ★

1장, ‘리눅스 컨테이너 소개’에서는 리눅스 커널에서의 컨테이너 역사에 대한 깊이 있는 탐구와 함께 기본 용어들을 살펴본다. 기본 내용을 학습한 후 커널 네임스페이스(namespace) 와 제어 그룹(cgroup)의 구현 방식을 자세히 살펴보고, 일부 C 시스템 콜을 실습해본다.
2장, ‘리눅스 시스템에서 LXC 설치하고 실행하기’에서는 우분투(Ubuntu) 와 레드햇(Red Hat) 시스템에 LXC를 설치하고 설정 후 실행하기 위한 모든 내용을 다룬다. 다양한 LXC 구성 방법과 함께 필요한 패키지 및 도구를 배워본다. 2장이 끝날 때쯤 LXC 컨테이너가 실행 중인 리눅스 시스템이 만들어져 있을 것이다.
3장, ‘네이티브 도구와 libvirt 도구를 이용한 명령행 작업’에서는 명령행을 이용해 LXC를 실행하고 운영하는 내용을 담고 있다. 패키지 목록의 다양한 도구들을 다루고, 컨테이너화된 애플리케이션과 상호작용을 할 수 있는 다양한 방법을 보여준다.
4장, ‘파이썬을 사용한 LXC 코드 통합’에서는 도구를 작성하는 방법과 파이썬 라이브러리를 사용해 LXC 프로비저닝 및 관리를 자동화하는 방법을 예제를 통해 살펴본다. 베이그런트 (Vagrant) 와 LXC를 사용해 개발 환경을 만드는 방법 또한 살펴볼 것이다.
5장, ‘리눅스 브리지와 OVS를 이용한 LXC 네트워킹’에서는 컨테이너 환경에서의 네트워킹을 심층적으로 다룬다. 리눅스 브리지(Linux bridge)에 LXC를 연결, 직접 연결, NAT 및 다른 다양한 방법에 대해 살펴볼 것이다. 그리고 OVS Open vSwitch 를 사용한 좀 더 진화된 트래픽 관리 기술 역시 살펴본다.
6장, ’LXC의 클러스터링과 수평적 확장’에서는 이전 장에서 배운 지식을 활용해 아파치 컨테이너 클러스터를 구축하고 GRE 터널과 OVS를 사용해 클러스터에 연결하는 방법을 배워본다. 또한 최소 루트 파일시스템(Minimal Root Filesystem) 컨테이너 내부에서 단일 프로세스 애플리케이션을 실행하는 예제들도 함께 다룰 것이다.
7장, ‘컨테이너 환경의 모니터링과 백업’에서는 LXC 애플리케이션 컨테이너를 백업하고 동작에 대한 알림과 트리거 설정을 위해 모니터링 솔루션을 배포하는 방법을 다룬다. 센수 (Sensu)와 모닛(Monit)을 사용한 모니터링 예제 및 iSCSI와 GlusterFS를 사용한 핫(hot)/콜드 (cold) 백업 생성 예제를 살펴볼 것이다.
8장, ‘오픈스택에서 LXC 사용하기’에서는 오픈스택(OpenStack)을 활용해 LXC 컨테이너를 프로비저닝하는 방법을 다룬다. 오픈스택을 구성하는 다양한 컴포넌트에 대한 소개와 함께 LXC 노바 드라이버(Nova Driver)를 사용해 컴퓨팅 자원 풀에서 자동으로 LXC 컨테이너를 프로비저닝하는 방법을 살펴본다.
부록, ‘LXC의 대안, 도커와 오픈VZ’에서는 도커(Docker)와 오픈VZ(OpenVZ) 같은 유명한 컨테이너 솔루션들의 역사와 함께, 솔루션 간 유사점 및 차이점을 살펴보며 이 책을 마무리한다. 이 솔루션들을 설치하고 구성한 후 LXC와 함께 실행하는 실용적인 예제들도 배워볼 것이다.

목차

1장. 리눅스 컨테이너 소개

__운영체제 커널의 발전과 초기 운영체제 커널의 제한사항
__리눅스 컨테이너 사례
__리눅스 네임스페이스: LXC의 기본
____마운트 네임스페이스
____UTS 네임스페이스
____IPC 네임스페이스
____PID 네임스페이스
____사용자 네임스페이스
____네트워크 네임스페이스
____cgroup을 사용한 자원 관리
________I/O 처리량 제한
________메모리 사용 제한
________cpu 및 cpuset 하위 시스템
________cgroup freezer 하위 시스템
________사용자공간 도구를 사용해 cgroup 관리 및 변경사항 유지하기
________systemd를 사용해 자원 관리하기
__요약

2장. 리눅스 시스템에서 LXC 설치하고 실행하기

__LXC 설치하기
____우분투에서 apt 명령을 사용해 LXC 설치하기
____우분투에서 소스를 사용해 LXC 설치하기
____센트OS에서 yum을 사용해 LXC 설치하기
____센트OS 에서 소스를 사용해 LXC 설치하기
____LXC 디렉토리 구조
__LXC 컨테이너 생성하고 조작하기
____첫 컨테이너 만들기
____우분투에서 debootstrap을 사용해 맞춤형 컨테이너 만들기
____센트OS에서 yum을 사용해 맞춤형 컨테이너 만들기
__요약

3장. 네이티브 도구와 libvirt 도구를 이용한 명령행 작업

__LVM 백업 저장소 사용하기
____LVM 백업 저장소를 이용해 LXC 컨테이너 만들기
____LVM 백업 저장소에 컨테이너 스냅샷 만들기
____truncate, dd, losetup을 이용해 블록 장치 만들기
__Btrfs 백업 저장소 사용하기
____Btrfs 백업 저장소를 사용해 LXC 컨테이너 만들기
____Btrfs 백업 저장소에 컨테이너 스냅샷 만들기
__ZFS 백업 저장소 사용하기
____ZFS 백업 저장소를 사용해 LXC 컨테이너 만들기
____ZFS 백업 저장소에 컨테이너 스냅샷 만들기
__LXC 컨테이너 자동 시작하기
__LXC 컨테이너 훅
__실행 중인 컨테이너의 파일시스템을 호스트 OS의 디렉토리로 붙이고 탐색하기
__실행 중인 컨테이너 고정하기
__컨테이너의 자원 사용량 제한하기
__libvirt와 함께 LXC 컨테이너 만들고 실행하기
____데비안과 센트OS에서 제공하는 패키지를 이용해 libvirt 설치하기
____Containerization
____소스로부터 libvirt 설치하기
____libvirt를 사용해 LXC 컨테이너 정의하기
____libvirt를 사용해 LXC 컨테이너 시작하고 연결하기
____libvirt를 사용해 실행 중인 컨테이너에 블록 장치 부착하기
____libvirt LXC로 네트워킹하기
____libvirt를 사용해 기존 LXC 컨테이너의 설정을 XML 파일로 변환 추출하기
____libvirt와 함께 사용하는 LXC 컨테이너 정지하기와 삭제하기
__요약

4장. 파이썬을 사용한 LXC 코드 통합

__LXC 파이썬 바인딩
____LXC 파이썬 바인딩을 설치하고 우분투와 센트OS에서 개발 환경 준비하기
____파이썬을 사용해 첫 컨테이너 만들기
____파이썬을 사용해 컨테이너 정보 수집하기
____파이썬을 이용해 컨테이너 시작, 변경 및 설정 옵션 조회하기
____파이썬을 이용해 컨테이너 상태 바꾸기
____파이썬으로 컨테이너 정지하기
____파이썬으로 컨테이너 복제하기
____파이썬으로 컨테이너를 제거하고 가상 환경 비활성화하기
__libvirt의 파이썬 바인딩
____libvirt 파이썬 개발 패키지 설치하기
____libvirt 파이썬으로 LXC 컨테이너 만들기
____libvirt 파이썬을 이용해 컨테이너를 시작하고 기본 작업 실행하기
____libvirt 파이썬을 이용해 컨테이너 정보 모으기
____libvirt 파이썬을 이용해 LXC 컨테이너를 정지하고 환경 삭제하기
__베이그런트와 LXC
____베이그런트 LXC 설정하기
__모두 모으기: 파이썬을 이용해 LXC에 간단한 RESTful API 구축하기
____LXC 컨테이너를 생성하고 설정하는 API 호출
____API 호출을 이용해 정리하기
__요약

5장. 리눅스 브리지와 OVS를 이용한 LXC 네트워킹

__리눅스의 소프트웨어 브리지
____리눅스 브리지
____우분투의 리눅스 브리지와 LXC 패키지
____센트OS의 리눅스 브리지와 LXC 패키지
____컨테이너에 IP를 얻어오기 위한 dnsmasq 서비스 사용
____LXC 컨테이너에 수동으로 IP 주소 할당하기
____LXC 네트워크 설정 옵션의 개요
____수동으로 리눅스 브리지 조작
____OVS
__호스트 네트워크에 LXC 연결하기
____none 네트워크 모드로 LXC 구성
____empty 네트워크 모드로 LXC 구성
____veth 모드로 LXC 구성
____phys 모드로 LXC 설정
____vlan 모드로 LXC 설정
____macvlan 모드로 LXC 구성
__요약

6장. LXC의 클러스터링과 수평적 확장

__LXC를 사용해 애플리케이션 확장하기
____libvert LXC를 사용해 최소 루트 파일시스템을 갖는 아파치 확장하기
________컨테이너에서 사용하는 최소 루트 파일시스템 만들기
________아파치 libvirt 컨테이너 정의하기
________아파치 libvirt 컨테이너 시작하기
____libvirt LXC와 HA프록시를 사용해 아파치 확장하기
____완전 LXC 루트 파일 시스템과 OVS GRE 터널을 사용해 아파치 확장하기
________로드 밸런서 호스트 구성하기
________로드 밸런서 컨테이너 만들기
________GRE 터널 구축하기
________아파치 노드 구성하기
________아파치와 HP프록시를 설치하고 연결을 테스트하기
________아파치 서비스 확장하기
__요약

7장. 컨테이너 환경의 모니터링과 백업

__LXC 백업과 마이그레이션
____tar와 rsync를 사용해 LXC 백업본 만들기
____아카이브 백업을 사용해 복구하기
____lxc-copy 유틸리티를 사용해 컨테이너 백업본 만들기
____iSCSI 대상에서 LXC 컨테이너 마이그레이션하기
________iSCSI 대상 설정하기
________iSCSI 초기자 설정하기
________블록 장치를 LXC용 rootfs로 사용해 iSCSI 대상에 로그인하기
________iSCSI 컨테이너 구축하기
________iSCSI 컨테이너 복구하기
____복제 GlusterFS 저장소를 사용해 LXC 활성 백업하기
________공유 저장소 만들기
________GlusterFS LXC 컨테이너 구축하기
________GlsterFS 컨테이너 복구하기
__LXC 메트릭을 모니터링하고 경고하기
____컨테이너 메트릭 수집하기
________lxc-monitor를 사용해 컨테이너 상태 추적하기
________lxc-top을 사용해 CPU와 메모리 사용률 확인하기
________lxc-info를 사용해 컨테이너 정보 수집하기
________cgroup을 활용해 메모리 메트릭 수집하기
________cgroup을 사용해 CPU 통계 수집하기
________네트워크 메트릭 수집하기
____모닛을 사용한 간단한 컨테이너 모니터링과 경고
____센수를 사용한 컨테이너 모니터링과 경고 트리거
________센수 에이전트와 서버를 사용해 LXC 컨테이너 모니터링하기
________독립 센수 검사를 사용해 LXC 컨테이너 모니터링하기
__LXC와 젠킨스, 센수를 사용한 자동 확장 패턴
__요약

8장. 오픈스택에서 LXC 사용하기

__우분투에 LXC를 지원하는 오픈스택 배포하기
____호스트 준비하기
____데이터베이스 서비스 설치하기
____메시지 큐 서비스 설치하기
____캐싱 서비스 설치하기
____신원 확인 서비스 설치 및 설정하기
____이미지 서비스 설치 및 설정하기
____컴퓨팅 서비스 설치 및 설정하기
____네트워킹 서비스의 설치 및 구성하기
____LXC 인스턴스 flavor 정의, 키 페어 생성 및 보안 그룹 만들기
____네트워크 만들기
____오픈스택을 사용해 LXC 컨테이너 프로비저닝하기
__요약

부록. LXC의 대안, 도커와 오픈VZ

__오픈VZ로 컨테이너 생성
__도커로 컨테이너 생성
__특권 없는 LXC 컨테이너 실행하기
__요약

저자소개

저자 콘스탄틴 이바노프는 15년 이상 고가용성 리눅스 환경을 설계, 구성, 배포 및 관리해온 경험을 보유한 리눅스 시스템 엔지니어, 오픈소스 개발자이자 관련 기술 블로그 운영자다.
관심 분야는 대규모 분산 시스템, 작업 자동화 및 여러 기술스택과 관련된 기술적 과제를 해결하는 것이다.
스템 및 네트워크 보안과 소프트웨어 엔지니어링 전공으로 불가리아와 미국의 대학에서 2개의 컴퓨터공학 석사 학위를 받았다.
여가 시간에는 기술 블로그를 쓰고 두 아들과 시간을 보내는 것을 좋아한다. 링크드인(https://www.linkedin.com/in/konstantinivanov)과 직접 운영하는 블로그(http://www.linux-admins.net/)에서 그를 만날 수 있다.

도서소개

최근 몇 년 동안 다양한 애플리케이션을 운영하는 기업들은 컨테이너 기술을 채택해 광범위하게 활용하고 있다. 이는 커널 네임스페이스(Namespace)와 함께 제어 그룹(Cgroup) 기술의 출현으로 더 나은 자원 관리가 가능해졌기 때문이다. 리눅스 컨테이너는 하이퍼바이저 계층의 오버헤드 없이 커널 기능을 활용해 운영체제 수준의 가상화를 제공한다.
이 책은 LXC 구현에 대한 기본 개념 소개부터 LXC 컨테이너를 설치 및 구성하고 컨테이너의 네트워킹, 보안, 백업까지 실용적인 내용을 다루는 완벽한 단계별 안내서다. 그뿐 아니라 오픈스택(OpenStack)과 베이그런트(Vagrant) 같은 다양한 기술을 사용해 LXC를 배포하는 방법도 함께 배워본다. 이 책의 학습이 끝나면 LXC를 구현하는 방법과 함께 고가용성과 확장성이 요구되는 운영 환경에서 애플리케이션을 실행하는 방법을 명확하게 이해할 수 있을 것이다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.