Top

쿠버네티스 시작하기 [인프라 세상 속으로]

  • 원서명Kubernetes: Up and Running: Dive into the Future of Infrastructure (ISBN 9781491935675)
  • 지은이켈시 하이타워(Kelsey Hightower), 조 베다(Joe Beda), 브렌던 번스(Brendan Burns)
  • 옮긴이김경호, 차연철, 차원호
  • ISBN : 9791161751733
  • 20,000원
  • 2018년 06월 20일 펴냄
  • 페이퍼백 | 272쪽 | 188*235mm
  • 시리즈 : 소프트웨어 아키텍처

책 소개

요약

구글은 일주일에 20억 개의 애플리케이션 컨테이너를 배포한다. 어떻게 이러한 일이 가능할까? 구글은 클라우드에서 확장 가능한 분산 시스템을 구축, 배포, 유지 관리하는 작업을 근본적으로 단순화하는 쿠버네티스 프로젝트를 공개했다. 쿠버네티스 프로젝트는 내부적으로 Borg 시스템을 기반으로 오픈소스 클러스터의 조정자 역할을 한다. 이 실용적인 가이드는 쿠버네티스와 컨테이너 기술이 어떻게 새로운 수준의 속도, 민첩성, 신뢰성, 효율성을 달성하는지 보여준다.

이 책에서 다루는 내용

█ 쿠버네티스가 다루는 분산 시스템 문제에 대한 탐구
█ 도커 같은 컨테이너를 사용해 컨테이너화된 애플리케이션 개발
█ 도커 이미지 포맷과 컨테이너 런타임을 사용해 쿠버네티스에서 컨테이너 생성 및 실행
█ 운영 환경에서 애플리케이션을 실행하는 데 필수적인 핵심 쿠버네티스 개념 API 객체 탐구
█ 다운타임과 오류 없이 새로운 소프트웨어 버전을 안전하게 배포
█ 쿠버네티스에서 실제 애플리케이션을 개발하고 배포하는 방법에 대한 예제 참조

이 책의 대상 독자

분산 시스템에 입문하려는 사람이든 이미 클라우드 기반 시스템을 개발해본 경험이 있는 사람이든 관계없이, 컨테이너와 쿠버네티스는 모두에게 새로운 수준의 속도, 민첩성, 신뢰성, 효율성을 가져다 줄 것이다. 이 책은 쿠버네티스 클러스터 오케스트레이터(Orchestrator) 및 그 도구와 API를 사용해 분산 애플리케이션의 개발, 배포, 유지 관리를 향상하는 방법에 관한 지침을 전달한다. 쿠버네티스에 대한 경험이 없는 상태에서 이 책을 최대한 활용하려면 서버 기반 애플리케이션의 개발과 배포에 대한 지식을 갖추고 있어야 한다. 로드밸런서(Load Balancer)나 네트워크 스토리지(Network Storage) 같은 용어는 필수는 아니지만 익숙하다면 도움이 된다. 마찬가지로 리눅스, 리눅스 컨테이너, 도커(Docker)에 대한 이해 역시 필수는 아니지만 알고 있다면 이 책을 좀 더 효율적으로 이용할 수 있다

이 책의 구성

1장은 쿠버네티스의 장점을 개념적인 상위 수준에서 설명한다. 쿠버네티스를 처음 접하는 경우 이 책의 나머지 부분을 모두 읽어야 하는 이유에 대해서도 알 수 있다.
2장은 컨테이너와 컨테이너 애플리케이션에 대해 소개한다. 도커 관련 경험이 없는 경우라면 도커에 대한 유용한 소개를 얻게 될 것이며, 이미 도커를 경험해봤다면 복습하는 기회가 될 것이다.
3장은 쿠버네티스 배포에 대해 다룬다. 이 책의 대부분에서 쿠버네티스 사용에 대해 설명하지만 사용 전에 클러스터를 동작시켜야 한다. 운영 환경에서 클러스터를 동작시키는 것은 이 책의 범위를 벗어나지만, 쿠버네티스 사용에 대한 이해를 높이고자 이 장에서는 클러스터를 생성하는 쉬운 방법 몇 가지를 보여줄 것이다.
5장을 시작으로 쿠버네티스를 사용해 애플리케이션을 배포하는 방법을 자세히 다룬다. 5장에서는 포드(Pod), 6장에서는 라벨(Label)과 애노테이션(Annotation), 7장에서는 서비스(Service), 8장에서는 레플리카세트(ReplicaSet)에 대해 각각 다룬다. 방금 소개한 개념들은 쿠버네티스에서 서비스 배포의 핵심적인 기본 사항이다.
이후 좀 더 쿠버네티스에 특화된 주제를 다룬다. 9장에서는 데몬세트(DeamonSet), 10장에서는 잡(Job), 11장에서는 ConfigMap과 시크릿(Secret)을 다룬다. 이 개념들은 많은 운영 환경 애플리케이션에서 핵심 사항이다. 그렇지만 이제 막 쿠버네티스를 배우는 중이라면 우선 이 부분은 건너뛰고 좀 더 많은 경험과 전문 지식을 쌓은 후 다시 학습할 것을 권장한다.
12장에서는 애플리케이션의 생명주기와 밀접한 관련이 있는 디플로이먼트(Deployment)에 대해 다루며, 13장에서는 쿠버네티스로 스토리지(Storage) 연계에 대해 알아본다. 마지막으로 쿠버네티스를 사용해 실제 애플리케이션을 개발하고 배포하는 예제로 이 책을 마무리하고자 한다.

저자/역자 소개

지은이의 말

새벽 3시에 프로세스를 재시작하려고 일어난 시스템 관리자, 자신의 노트북에서 테스트한 결과처럼 실행되지 않는 부분을 찾으려고 운영 환경에 코드를 주입하는 개발자, 아직 업데이트되지 않고 남은 호스트명으로 인해 운영 환경 서비스에서 잘못된 부하 테스트를 지정한 시스템 아키텍처, 쿠버네티스는 이들 모두에게 감사를 전한다. 쿠버네티스의 개발에 영감을 준 것은 바로 이러한 고통, 시간, 이상한 오류들이다. 한 문장으로 요약하면 쿠버네티스는 분산 시스템을 구축, 개발, 유지 관리하는 작업을 철저하게 단순화하려는 것이다. 쿠버네티스는 신뢰 가능한 시스템을 구축하려는 수십 년 동안의 실제 경험에서 영감을 받았다. 그리고 이런 작업을 진행할 때 황홀함은 아니라도 최소한 즐거움을 느낄 수 있도록 설계됐다. 나와 마찬가지로 독자들도 이 책의 내용을 즐기기 바란다

지은이 소개

켈시 하이타워(Kelsey Hightower)

기술 관련 경력을 쌓으며 다양한 역할을 수행해왔다. 특히 리더 역할을 즐겨, 일을 만들고 소프트웨어를 출시하는 데 집중한다. 강력한 오픈소스 지지자로, 사람들이 작업을 쉽게 할 수 있도록 간단한 도구를 만드는 데 집중하고 있다. Go 코드 작업을 하지 않을 때는 프로그래밍에서 시스템 관리에 이르기까지 모든 기술을 다루는 워크숍에서 활약하는 그를 만날 수 있다.

조 베다(Joe Beda)

마이크로소프트에서 인터넷 익스플로러를 담당하며 직장 생활을 시작했다. 마이크로소프트에서 7년, 구글에서 10년간 GUI 프레임워크, 실시간 음성 및 채팅, 전화, 광고용 머신 러닝, 클라우드 컴퓨팅 분야에서 업적을 쌓아왔다. 가장 주목할 업적은 구글 재직 시 브렌단(Brendan), 크레이그 맥룩키(Craig McLuckie)와 함께 구글 컴퓨트 엔진(Google Compute Engine)을 창립해 쿠버네티스를 만든 것이다. 현재 크레이그와 함께 설립한 스타트업 기업인 헵티오(Heptio)의 CTO로 있으며, 시애틀을 제2의 고향으로 삼고 있다.

브렌던 번스(Brendan Burns)

짧은 기간 동안 소프트웨어 산업 경력을 쌓은 후, 인간 같은 로봇 팔에 대한 운동 계획을 연구해 로보틱스 분야에서 박사 학위를 취득했다. 이후 잠시 동안 컴퓨터과학 교수로 활동했다. 다시 시애틀로 돌아와 구글에 합류해 저지연 인덱싱을 사용한 웹 검색 인프라를 담당했다. 또한 구글에 재직하는 동안 조와 크레이그, 맥룩키와 함께 쿠버네티스를 만들었다. 지금은 마이크로소프트 애저(Azure)의 엔지니어링 임원으로 재직 중이다.

옮긴이의 말

최근 IT 인프라 환경은 도커(Docker)활용과 함께 변하고 있는 중이다. 기존의 무겁고 많은 자원을 소모하는 가상 환경은 데브옵스와 마이크로서비스의 활용이 높아지는 현재 추세에 버거워 보인다. 이에 컨테이너를 기반으로 한 경량화된 환경의 도커를 도입하는 곳이 크게 증가하고 있다. 이런 도커 사용이 증가하면서 관리자/개발자의 우려와 걱정도 함께 증가하고 있다. 수많은 도커를 어떻게 유연하게 관리할 수 있을까? 서로 어떻게 연계를 하고 애플리케이션을 배포할 수 있을까? 수많은 사람들이 항상 머릿속으로 고민을 하는 문제들이다.
오픈소스 프로젝트인 쿠버네티스는 이에 대한 답이 될 것이다. ‘쿠버네티스에 대한 작지만 강한 책'이 이 책을 가장 짧고 강하게 표현할 수 있는 구문이라 생각한다. 이 책은 쿠버네티스가 무엇이며 무엇을 할 수 있는지를 독자들에게 많은 예시와 함께 설명하고 있다.
쿠버네티스에 대한 소개부터 개념, 오브젝트, 실제 애플리케이션 배포 실습까지 이 책은 각 장/절마다 독자들의 지적 호기심을 자극해, 책을 읽으면 읽을수록 점점 더 쿠버네티스의 매력에 빠지게 한다. 이 책을 읽고 나면 쿠버네티스 세상에서 진두지휘하며 수많은 도커를 오케스트레이션하는 자신의 모습을 발견할 것이다.
이미 도커를 구축하고 관리 중인 독자도, 아직 도입하지는 않았지만 도입을 고려 중인 독자도, 이 책에서 소개하는 재미있고 쉬운 쿠버네티스의 강력한 기능을 사용해 개발과 관리의 유연한 연계가 가능한 새로운 인프라를 구축할 수 있을 것이다.

옮긴이 소개

김경호

(현) 에쓰-오일 IT기획/보안 기획 업무
(현) IITP 평가 위원
(현) 한국정보기술연구원 BoB Best of Best 멘토
(현) 빅데이터 기술 전문가 자문위원
(전) NCS 집필위원
(전) 인터넷 포털업체 IT보안 기획 업무
(전) IT/IT보안컨설팅업체 컨설턴트
(전) 모바일기기 제조업체 IT시스템 운영 업무
(전) 사이버보안전문단원(미래부)
서강대학교 정보통신 석사
해킹방어대회 입상(정보통신부 주관)
정보관리기술사, CCIE, CIA, CISSP, ISMS인증심사원, PIMS인증심사원, 정보보안기사, PMP, ITIL 등 다양한 자격 보유

차연철

(현) 엔텀네트웍스/보안솔루션개발 총괄
(현) IITP 평가위원
(현) 미래창조과학부 한이음 ICT 멘토
(현) 동국대학교 산학협력 멘토
(현) 개인정보 비식별 조치 적정성 평가단 전문가
(현) 빅데이터 개인정보 비식별 자문위원
(전) SK인포섹/모바일보안개발 팀장
네트워크/PKI/모바일/컨텐츠 영역 보안솔루션 개발, 정보보안 및 개인정보보호 강의
정보관리기술사, 정보보안기사, 데이터품질인증심사원, CISA, CEH, CPPG

차원호

컴퓨터시스템응용기술사, 정보시스템수석감리원, CISSP
(현) 프리랜서
(전) IT시스템 운영/관리

목차

목차
  • 1장. 쿠버네티스 소개
    • 속도
      • 불변성의 가치
      • 선언형 설정
      • 자가 치유 시스템
    • 서비스와 팀의 확장성
      • 분리
      • 애플리케이션과 클러스터를 위한 쉬운 확장
      • 마이크로서비스로 개발 팀 확장
      • 일관성과 확장성에 대한 고려사항 분리
    • 인프라 추상화
    • 효율성
    • 요약

  • 2장. 컨테이너 생성과 실행
    • 컨테이너 이미지
      • 도커 이미지 포맷
    • 도커를 활용한 애플리케이션 이미지 생성
      • 도커 파일
      • 이미지 보안
      • 이미지 크기 최적화
    • 원격 레지스트리에 이미지 저장
    • 도커 컨테이너 런타임
      • 도커로 컨테이너 실행
      • kuard 애플리케이션 탐색
      • 자원 사용량 제한
    • 정리
    • 요약

  • 3장. 쿠버네티스 클러스터 배포
    • 공용 클라우드 제공자 서비스에 쿠버네티스 설치하기
      • 구글 컨테이너 서비스
      • 애저 컨테이너 서비스에 쿠버네티스 설치하기
      • 아마존 AWS에 쿠버네티스 설치하기
    • minikube를 사용해 로컬에 쿠버네티스 설치하기
    • 라즈베리파이에서 쿠버네티스 운영
    • 쿠버네티스 클라이언트
      • 클러스터 상태 확인
      • 쿠버네티스 워커 노드 목록 조회
    • 클러스터 구성요소
      • 쿠버네티스 프록시
      • 쿠버네티스 DNS
      • 쿠버네티스 UI
    • 요약

  • 4장. 일반적인 kubectl 명령
    • 네임스페이스
    • 컨텍스트
    • 쿠버네티스 API 객체 보기
    • 쿠버네티스 객체의 생성, 업데이트, 삭제
    • 라벨과 애노테이션
    • 디버깅 명령
    • 요약

  • 5장. 포드
    • 쿠버네티스에서의 포드
    • 포드에 대한 고찰
    • 포드 매니페스트
      • 포드 생성
      • 포드 매니페스트 생성
    • 포드 실행
      • 포드 목록
      • 포드 세부사항
      • 포드 삭제
    • 포드 접속
      • 포트 포워딩 사용
      • 로그에서 더 많은 정보 확인
      • 컨테이너에서 exec로 명령 실행
      • 컨테이너 내외부로의 파일 복사
    • 상태 검사
      • 활성 프로브
      • 준비 프로브
      • 상태 검사 유형
    • 자원 관리
      • 자원 요청: 최소 필요 자원
      • limits로 자원 사용 제한
    • 볼륨에서 데이터 유지
      • 포드로 볼륨 사용
      • 포드에서 볼륨을 사용하는 다른 방법
      • 원격 디스크를 사용한 영구 데이터
    • 종합
    • 요약

  • 6장. 라벨과 애노테이션
    • 라벨
      • 라벨 적용
      • 라벨 수정
      • 라벨 선택기
      • API 객체의 라벨 선택기
    • 애노테이션
      • 애노테이션 정의
    • 정리
    • 요약

  • 7장. 서비스 탐색
    • 서비스 탐색
    • 서비스 객체
      • 서비스 DNS
      • 준비 상태 검사
    • 클러스터 외부로의 서비스
    • 클라우드 연계
    • 고급 세부 정보
      • 엔드포인트
      • 수동 서비스 탐색
      • kube-proxy와 클러스터 IP
      • 클러스터 IP 환경 변수
    • 정리
    • 요약

  • 8장. 레플리카세트
    • 조정 루프
    • 포드와 레플리카세트 관계
      • 기존 컨테이너 수용
      • 컨테이너 격리
    • 레플리카세트 설계
    • 레플리카세트 명세
      • 포드 템플릿
      • 라벨
    • 레플리카세트 생성
    • 레플리카세트 검사
      • 포드에서 레플리카세트 확인
      • 레플리카세트에 대한 포드 집합 찾기
    • 레플리카세트 확장
      • kubectl scale을 사용한 명령형 확장
      • kubectl apply를 사용한 선언형 확장
      • 레플리카세트 자동 확장
    • 레플리카세트 삭제
    • 요약

  • 9장. 데몬세트
    • 데몬세트 스케줄러
    • 데몬세트 생성
    • 특정 노드로 데몬세트 제한
      • 노드에 라벨 추가
      • 노드 선택기
    • 데몬세트 업데이트
      • 개별 노드를 삭제해 데몬세트 업데이트
      • 데몬세트 롤링 업데이트
    • 데몬세트 삭제
    • 요약

  • 10장. 잡
    • 잡 객체
    • 잡 패턴
      • 원샷
      • 병렬성
      • 작업 대기열
    • 요약

  • 11장. ConfigMap과 시크릿
    • ConfigMap
      • ConfigMap 생성
      • ConfigMap 사용
    • 시크릿
      • 시크릿 생성
      • 시크릿 사용
      • 사설 도커 레지스트리
    • 명명 규칙
    • ConfigMap과 시크릿 관리
      • 목록 조회
      • 생성
      • 업데이트
    • 요약

  • 12장. 디플로이먼트
    • 디플로이먼트와의 첫 만남
      • 디플로이먼트 내부
    • 디플로이먼트 생성
    • 디플로이먼트 관리
    • 디플로이먼트 업데이트
      • 디플로이먼트 확장
      • 컨테이너 이미지 업데이트
      • 롤아웃 이력
    • 디플로이먼트 전략
      • 재생성 전략
      • 롤링업데이트 전략
      • 서비스 안정을 위한 느린 롤아웃
    • 디플로이먼트 삭제
    • 요약

  • 13장. 스토리지 솔루션과 쿠버네티스 연계
    • 외부 서비스 가져오기
      • 선택기 비사용 서비스
      • 외부 서비스의 제약사항: 상태 검사
    • 신뢰 가능한 싱글톤 운영
      • MySQL 싱글톤 운영
      • 동적 볼륨 프로비저닝
    • 스테이트풀세트를 사용한 쿠버네티스 기반 스토리지
      • 스테이트풀세트 속성
      • 스테이트풀세트를 사용한 수동 복제 몽고DB
      • 몽고DB 클러스터 자동 생성
      • 영구 볼륨과 스테이트풀세트
      • 마지막 단계: 준비 프로브
    • 요약

  • 14장. 실제 애플리케이션 배포
    • Parse
      • 사전 준비
      • Parse 서버 구축
      • Parse 서버 배포
      • Parse 테스트
    • Ghost
      • Ghost 구성
      • Ghost + MySQL
    • Redis
      • Redis 구성
      • Redis 서비스 생성
      • Redis 배포
      • Redis 클러스터 사용
    • 요약

  • 부록 A. 라즈베리파이 쿠버네티스 클러스터 구축
    • 부품 목록
    • 이미지 굽기
    • 첫 번째 부팅: 마스터
      • 네트워크 설정
      • 쿠버네티스 설치
      • 클러스터 설정

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안