본문내용 바로가기
MD의선택 무료배송 이벤트 소득공제

쿠버네티스 인 액션 그림과 상세한 설명으로 명확하게 이해하는

오픈소스 프로그래밍 시리즈
마르코 룩샤 지음 | 강인호 , 황주필 , 이원기 , 임찬식 옮김 | 에이콘출판 | 2020년 03월 31일 출간
클로버 리뷰쓰기

이 책의 다른 상품 정보

  • 정가 : 45,000원
    판매가 : 40,500 [10%↓ 4,500원 할인]
  • 혜택 :
    [기본적립] 2250원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(17일,토) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • 클라우드 네이티브로 가는 여정을 밝혀줄 책 모음전
    2020.04.09 ~ 2022.05.31
  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
  • MANNING, O'REILLY, PACKT, WILE..
    2016.03.07 ~ 2021.12.31
상품상세정보
ISBN 9791161754048(1161754040)
쪽수 844쪽
크기 188 * 235 * 50 mm /1532g 판형알림
이 책의 원서/번역서 Kubernetes in Action / Marko Luksa

책소개

이 책이 속한 분야

쿠버네티스를 이용해 애플리케이션을 효과적으로 개발하고 운영할 수 있는 방법을 초보자도 쉽게 이해할 수 있도록 설명한다. 쿠버네티스 아키텍처와 각 객체의 개념을 명확히 정립할 수 있도록 예제와 그림을 곁들였다. 후반부에는 쿠버네티스의 내부 구조 및 동작 원리도 쉽게 설명하고 있어 쿠버네티스의 안팎을 모두 살필 수 있다.

작가의 말

레드햇에서 몇 년 동안 근무하다 2014년 말 새로 생긴 클라우드 지원(Cloud Enablement) 팀에 배정됐다. 임무는 회사의 미들웨어 제품군을 쿠버네티스상에서 개발된 오픈시프트(OpenShift) 컨테이너 플랫폼으로 변경하는 것이었다. 당시 쿠버네티스는 정식으로 발표되지 않은 초기 버전(1.0)이었다.
소프트웨어의 적절한 방향을 설정하고 쿠버네티스가 제공하는 기능을 이용하려면 쿠버네티스의 모든 기능을 신속하게 파악해야 했다. 문제가 발생하면 우리가 잘못한 건지 아니면 쿠버네티스 초기 버전의 버그인지를 구분하기가 어려웠다.
그 후 쿠버네티스는 눈부시게 발전했고 나도 쿠버네티스를 많이 이해하게 됐다. 나는 쿠버네티스라는 말조차 생소할 때부터 쿠버네티스를 사용하기 시작했다. 지금은 클라우드와 온프레미스(on-premises) 데이터 센터에서 애플리케이션을 실행하는 데 가장 빠르게 성장하고 가장 많이 사용하는 방법으로, 소프트웨어 엔지니어라면 모르는 사람이 없을 정도다.
쿠버네티스를 접한 지 한 달쯤 뒤 오픈시프트/쿠버네티스에서 JBoss 와일드플라이(WildFly) 애플리케이션 서버 클러스터를 실행하는 방법을 두 개의 글로 작성해 블로그에 올렸다. 당시 블로그 글을 보고 매닝출판사 담당자가 쿠버네티스에 관한 책을 써 달라고 연락하리라고는 상상도 못했다. 내가 아니더라도 책을 쓸 만한 누군가에게 연락했을 그 제안을 나는 거절하지 않았다.
그렇게 이 책을 쓰게 됐다. 1년 반 넘게 글쓰기와 연구에 매진한 끝에 마침표를 찍었다. 굉장히 값진 경험이었다. 그저 사용자로서 배울 때보다 책을 쓰면서 쿠버네티스를 훨씬 더 자세히 알 수 있었다. 이 과정에서 쿠버네티스에 관한 지식이 확장됐고, 쿠버네티스도 진화했으므로 이전에 썼던 내용을 고치고 다듬어야 했다. 나는 완벽주의자다. 이 책에 만족하지 않는다. 그럼에도 MEAP(Manning Early Access Program) 프로그램의 수많은 독자가 이 책을 쿠버네티스를 향한 훌륭한 안내서로 평가해줘서 기쁘다.
내 목표는 독자가 기술 자체를 이해하고 도구를 사용해 쿠버네티스 클러스터에 효과적이고 효율적으로 애플리케이션을 개발해 배포하는 방법을 가르치는 데 있다. 이 책은 실제로 적정 수준의 가용성을 갖는 쿠버네티스 클러스터를 구성하거나 운영하는 것에 중점을 두지 않는다. 그러나 마지막 3부에서는 클러스터의 상세 구성과 클러스터를 다루는 추가 리소스를 독자들이 이해하기 쉽게 작성했다.
쿠버네티스라는 굉장한 시스템으로 최대한의 결과를 얻는 방법을 알아가면서 즐거움을 느끼길 바란다.

목차

1부. 쿠버네티스 개요

1장. 쿠버네티스 소개

1.1 쿠버네티스와 같은 시스템이 필요한 이유
1.1.1 모놀리스 애플리케이션에서 마이크로서비스로 전환
1.1.2 애플리케이션에 일관된 환경 제공
1.1.3 지속적인 배포로 전환: 데브옵스와 노옵스
1.2 컨테이너 기술 소개
1.2.1 컨테이너 이해
1.2.2 도커 컨테이너 플랫폼 소개
1.2.3 도커의 대안으로 rkt 소개
1.3 쿠버네티스 소개
1.3.1 쿠버네티스의 기원
1.3.2 넓은 시각으로 쿠버네티스 바라보기
1.3.3 쿠버네티스 클러스터 아키텍처 이해
1.3.4 쿠버네티스에서 애플리케이션 실행
1.3.5 쿠버네티스 사용의 장점
1.4 요약

2장. 도커와 쿠버네티스 첫걸음

2.1 도커를 사용한 컨테이너 이미지 생성, 실행, 공유하기
2.1.1 도커 설치와 Hello World 컨테이너 실행하기
2.1.2 간단한 node.js 애플리케이션 생성하기
2.1.3 이미지를 위한 Dockerfile 생성
2.1.4 컨테이너 이미지 생성
2.1.5 컨테이너 이미지 실행
2.1.6 실행 중인 컨테이너 내부 탐색하기
2.1.7 컨테이너 중지와 삭제
2.1.8 이미지 레지스트리에 이미지 푸시
2.2 쿠버네티스 클러스터 설치
2.2.1 Minikube를 활용한 단일 노드 쿠버네티스 클러스터 실행하기
2.2.2 구글 쿠버네티스 엔진을 활용한 관리형 쿠버네티스 클러스터 사용하기
2.2.3 kubectl의 alias와 명령줄 자동완성 설정하기
2.3 쿠버네티스에 첫 번째 애플리케이션 실행하기
2.3.1 Node.js 애플리케이션 구동하기
2.3.2 웹 애플리케이션에 접근하기
2.3.3 시스템의 논리적인 부분
2.3.4 애플리케이션 수평 확장
2.3.5 애플리케이션이 실행 중인 노드 검사하기
2.3.6 쿠버네티스 대시보드 소개
2.4 요약

2부. 쿠버네티스 핵심 개념

3장. 파드: 쿠버네티스에서 컨테이너 실행

3.1 파드 소개
3.1.1 파드가 필요한 이유
3.1.2 파드 이해하기
3.1.3 파드에서 컨테이너의 적절한 구성
3.2 YAML 또는 JSON 디스크립터로 파드 생성
3.2.1 기존 파드의 YAML 디스크립터 살펴보기
3.2.2 파드를 정의하는 간단한 YAML 정의 작성하기
3.2.3 kubectl create 명령으로 파드 만들기
3.2.4 애플리케이션 로그 보기
3.2.5 파드에 요청 보내기
3.3 레이블을 이용한 파드 구성
3.3.1 레이블 소개
3.3.2 파드를 생성할 때 레이블 지정
3.3.3 기존 파드 레이블 수정
3.4 레이블 셀렉터를 이용해 파드 부분 집합 나열
3.4.1 레이블 셀렉터를 사용한 파드 나열
3.4.2 레이블 셀렉터에서 여러 조건 사용
3.5 레이블과 셀렉터를 이용해 파드 스케줄링 제한
3.5.1 워커 노드 분류에 레이블 사용
3.5.2 특정 노드에 파드 스케줄링
3.5.3 하나의 특정 노드로 스케줄링
3.6 파드에 어노테이션 달기
3.6.1 오브젝트의 어노테이션 조회
3.6.2 어노테이션 추가 및 수정
3.7 네임스페이스를 사용한 리소스 그룹화
3.7.1 네임스페이스의 필요성
3.7.2 다른 네임스페이스와 파드 살펴보기
3.7.3 네임스페이스 생성
3.7.4 다른 네임스페이스의 오브젝트 관리
3.7.5 네임스페이스가 제공하는 격리 이해
3.8 파드 중지와 제거
3.8.1 이름으로 파드 삭제
3.8.2 레이블 셀렉터를 이용한 파드 삭제
3.8.3 네임스페이스를 삭제한 파드 제거
3.8.4 네임스페이스를 유지하면서 네임스페이스 안에 있는 모든 파드 삭제
3.8.5 네임스페이스에서 (거의) 모든 리소스 삭제
3.9 요약

4장. 레플리케이션과 그 밖의 컨트롤러: 관리되는 파드 배포

4.1 파드를 안정적으로 유지하기
4.1.1 라이브니스 프로브 소개
4.1.2 HTTP 기반 라이브니스 프로브 생성
4.1.3 동작 중인 라이브니스 프로브 확인
4.1.4 라이브니스 프로브의 추가 속성 설정
4.1.5 효과적인 라이브니스 프로브 생성
4.2 레플리케이션컨트롤러 소개
4.2.1 레플리케이션컨트롤러의 동작
4.2.2 레플리케이션컨트롤러 생성
4.2.3 레플리케이션컨트롤러 작동 확인
4.2.4 레플리케이션컨트롤러의 범위 안팎으로 파드 이동하기
4.2.5 파드 템플릿 변경
4.2.6 수평 파드 스케일링
4.2.7 레플리케이션컨트롤러 삭제
4.3 레플리케이션컨트롤러 대신 레플리카셋 사용하기
4.3.1 레플리카셋과 레플리케이션컨트롤러 비교
4.3.2 레플리카셋 정의하기
4.3.3 레플리카셋 생성 및 검사
4.3.4 레플리카셋의 더욱 표현적인 레이블 셀렉터 사용하기
4.3.5 레플리카셋 정리
4.4 데몬셋을 사용해 각 노드에서 정확히 한 개의 파드 실행하기
4.4.1 데몬셋으로 모든 노드에 파드 실행하기
4.4.2 데몬셋을 사용해 특정 노드에서만 파드를 실행하기
4.5 완료 가능한 단일 태스크를 수행하는 파드 실행
4.5.1 잡 리소스 소개
4.5.2 잡 리소스 정의
4.5.3 파드를 실행한 잡 보기
4.5.4 잡에서 여러 파드 인스턴스 실행하기
4.5.5 잡 파드가 완료되는 데 걸리는 시간 제한하기
4.6 잡을 주기적으로 또는 한 번 실행되도록 스케줄링하기
4.6.1 크론잡 생성하기
4.6.2 스케줄된 잡의 실행 방법 이해
4.7 요약

5장. 서비스: 클라이언트가 파드를 검색하고 통신을 가능하게 함

5.1 서비스 소개
5.1.1 서비스 생성
5.1.2 서비스 검색
5.2 클러스터 외부에 있는 서비스 연결
5.2.1 서비스 엔드포인트 소개
5.2.2 서비스 엔드포인트 수동 구성
5.2.3 외부 서비스를 위한 별칭 생성
5.3 외부 클라이언트에 서비스 노출
5.3.1 노드포트 서비스 사용
5.3.2 외부 로드밸런서로 서비스 노출
5.3.3 외부 연결의 특성 이해
5.4 인그레스 리소스로 서비스 외부 노출
5.4.1 인그레스 리소스 생성
5.4.2 인그레스로 서비스 액세스
5.4.3 하나의 인그레스로 여러 서비스 노출
5.4.4 TLS 트래픽을 처리하도록 인그레스 구성
5.5 파드가 연결을 수락할 준비가 됐을 때 신호 보내기
5.5.1 레디니스 프로브 소개
5.5.2 파드에 레디니스 프로브 추가
5.5.3 실제 환경에서 레디니스 프로브가 수행해야 하는 기능
5.6 헤드리스 서비스로 개별 파드 찾기
5.6.1 헤드리스 서비스 생성
5.6.2 DNS로 파드 찾기
5.6.3 모든 파드 검색 - 준비되지 않은 파드도 포함
5.7 서비스 문제 해결
5.8 요약

6장. 볼륨: 컨테이너에 디스크 스토리지 연결

6.1 볼륨 소개
6.1.1 예제의 볼륨 설명
6.1.2 사용 가능한 볼륨 유형 소개
6.2 볼륨을 사용한 컨테이너 간 데이터 공유
6.2.1 emptyDir 볼륨 사용
6.2.2 깃 리포지터리를 볼륨으로 사용하기
6.3 워커 노드 파일시스템의 파일 접근
6.3.1 hostPath 볼륨 소개
6.3.2 hostPath 볼륨을 사용하는 시스템 파드 검사하기
6.4 퍼시스턴트 스토리지 사용
6.4.1 GCE 퍼시스턴트 디스크를 파드 볼륨으로 사용하기
6.4.2 기반 퍼시스턴트 스토리지로 다른 유형의 볼륨 사용하기
6.5 기반 스토리지 기술과 파드 분리
6.5.1 퍼시스턴트볼륨과 퍼시스턴트볼륨클레임 소개
6.5.2 퍼시스턴트볼륨 생성
6.5.3 퍼시스턴트볼륨클레임 생성을 통한 퍼시스턴트볼륨 요청
6.5.4 파드에서 퍼시스턴트볼륨클레임 사용하기
6.5.5 퍼시스턴트볼륨과 퍼시스턴트볼륨클레임 사용의 장점 이해하기
6.5.6 퍼시스턴트볼륨 재사용
6.6 퍼시스턴트볼륨의 동적 프로비저닝
6.6.1 스토리지클래스 리소스를 통한 사용 가능한 스토리지 유형 정의하기
6.6.2 퍼시스턴트볼륨클레임에서 스토리지 클래스 요청하기
6.6.3 스토리지 클래스를 지정하지 않은 동적 프로비저닝
6.7 요약

7장. 컨피그맵과 시크릿: 애플리케이션 설정

7.1 컨테이너화된 애플리케이션 설정
7.2 컨테이너에 명령줄 인자 전달
7.2.1 도커에서 명령어와 인자 정의
7.2.2 쿠버네티스에서 명령과 인자 재정의
7.3 컨테이너의 환경변수 설정
7.3.1 컨테이너 정의에 환경변수 지정
7.3.2 변숫값에서 다른 환경변수 참조
7.3.3 하드코딩된 환경변수의 단점
7.4 컨피그맵으로 설정 분리
7.4.1 컨피그맵 소개
7.4.2 컨피그맵 생성
7.4.3 컨피그맵 항목을 환경변수로 컨테이너에 전달
7.4.4 컨피그맵의 모든 항목을 한 번에 환경변수로 전달
7.4.5 컨피그맵 항목을 명령줄 인자로 전달
7.4.6 컨피그맵 볼륨을 사용해 컨피그맵 항목을 파일로 노출
7.4.7 애플리케이션을 재시작하지 않고 애플리케이션 설정 업데이트
7.5 시크릿으로 민감한 데이터를 컨테이너에 전달
7.5.1 시크릿 소개
7.5.2 기본 토큰 시크릿 소개
7.5.3 시크릿 생성
7.5.4 컨피그맵과 시크릿 비교
7.5.5 파드에서 시크릿 사용
7.5.6 이미지를 가져올 때 사용하는 시크릿 이해
7.6 요약

8장. 애플리케이션에서 파드 메타데이터와 그 외의 리소스에 액세스하기

8.1 Downward API로 메타데이터 전달
8.1.1 사용 가능한 메타데이터 이해
8.1.2 환경변수로 메타데이터 노출하기
8.1.3 downwardAPI 볼륨에 파일로 메타데이터 전달
8.2 쿠버네티스 API 서버와 통신하기
8.2.1 쿠버네티스 REST API 살펴보기
8.2.2 파드 내에서 API 서버와 통신
8.2.3 앰배서더 컨테이너를 이용한 API 서버 통신 간소화
8.2.4 클라이언트 라이브러리를 사용해 API 서버와 통신
8.3 요약

9장. 디플로이먼트: 선언적 애플리케이션 업데이트

9.1 파드에서 실행 중인 애플리케이션 업데이트
9.1.1 오래된 파드를 삭제하고 새 파드로 교체
9.1.2 새 파드 기동과 이전 파드 삭제
9.2 레플리케이션컨트롤러로 자동 롤링 업데이트 수행
9.2.1 애플리케이션의 초기 버전 실행
9.2.2 kubectl을 이용한 롤링 업데이트
9.2.3 kubectl rolling-update를 더 이상 사용하지 않는 이유
9.3 애플리케이션을 선언적으로 업데이트하기 위한 디플로이먼트 사용하기
9.3.1 디플로이먼트 생성
9.3.2 디플로이먼트 업데이트
9.3.3 디플로이먼트 롤백
9.3.4 롤아웃 속도 제어
9.3.5 롤아웃 프로세스 일시 중지
9.3.6 잘못된 버전의 롤아웃 방지
9.4 요약

10장. 스테이트풀셋: 복제된 스테이트풀 애플리케이션 배포하기

10.1 스테이트풀 파드 복제하기
10.1.1 개별 스토리지를 갖는 레플리카 여러 개 실행하기
10.1.2 각 파드에 안정적인 아이덴티티 제공하기
10.2 스테이트풀셋 이해하기
10.2.1 스테이트풀셋과 레플리카셋 비교하기
10.2.2 안정적인 네트워크 아이덴티티 제공하기
10.2.3 각 스테이트풀 인스턴스에 안정적인 전용 스토리지 제공하기
10.2.4 스테이트풀셋 보장 이해하기
10.3 스테이트풀셋 사용하기
10.3.1 애플리케이션과 컨테이너 이미지 생성하기
10.3.2 스테이트풀셋을 통한 애플리케이션 배포하기
10.3.3 파드 가지고 놀기
10.4 스테이트풀셋의 피어 디스커버리
10.4.1 DNS를 통한 피어 디스커버리
10.4.2 스테이트풀셋 업데이트
10.4.3 클러스터된 데이터 저장소 사용하기
10.5 스테이트풀셋이 노드 실패를 처리하는 과정 이해하기
10.5.1 노드의 네트워크 연결 해제 시뮬레이션
10.5.2 수동으로 파드 삭제하기
10.6 요약

3부. 쿠버네티스 심화

11장. 쿠버네티스 내부 이해

11.1 아키텍처 이해
11.1.1 쿠버네티스 구성 요소의 분산 특성
11.1.2 쿠버네티스가 etcd를 사용하는 방법
11.1.3 API 서버의 기능
11.1.4 API 서버가 리소스 변경을 클라이언트에 통보하는 방법 이해
11.1.5 스케줄러 이해
11.1.6 컨트롤러 매니저에서 실행되는 컨트롤러 소개
11.1.7 Kubelet이 하는 일
11.1.8 쿠버네티스 서비스 프록시의 역할
11.1.9 쿠버네티스 애드온 소개
11.1.10 모든 것을 함께 가져오기
11.2 컨트롤러가 협업하는 방법
11.2.1 관련된 구성 요소 이해
11.2.2 이벤트 체인
11.2.3 클러스터 이벤트 관찰
11.3 실행 중인 파드에 관한 이해
11.4 파드 간 네트워킹
11.4.1 네트워크는 어떤 모습이어야 하는가
11.4.2 네트워킹 동작 방식 자세히 알아보기
11.4.3 컨테이너 네트워크 인터페이스 소개
11.5 서비스 구현 방식
11.5.1 kube-proxy 소개
11.5.2 kube-proxy가 iptables를 사용하는 방법
11.6 고가용성 클러스터 실행
11.6.1 애플리케이션 가용성 높이기
11.6.2 쿠버네티스 컨트롤 플레인 구성 요소의 가용성 향상
11.7 요약

12장. 쿠버네티스 API 서버 보안

12.1 인증 이해
12.1.1 사용자와 그룹
12.1.2 서비스어카운트 소개
12.1.3 서비스어카운트 생성
12.1.4 파드에 서비스어카운트 할당
12.2 역할 기반 액세스 제어로 클러스터 보안
12.2.1 RBAC 인가 플러그인 소개
12.2.2 RBAC 리소스 소개
12.2.3 롤과 롤바인딩 사용
12.2.4 클러스터롤과 클러스터롤바인딩 사용하기
12.2.5 디폴트 클러스터롤과 클러스터롤바인딩의 이해
12.2.6 인가 권한을 현명하게 부여하기
12.3 요약

13장. 클러스터 노드와 네트워크 보안

13.1 파드에서 호스트 노드의 네임스페이스 사용
13.1.1 파드에서 노드의 네트워크 네임스페이스 사용
13.1.2 호스트 네트워크 네임스페이스를 사용하지 않고 호스트 포트에 바인딩
13.1.3 노드의 PID와 IPC 네임스페이스 사용
13.2 컨테이너의 보안 컨텍스트 구성
13.2.1 컨테이너를 특정 사용자로 실행
13.2.2 컨테이너가 루트로 실행되는 것 방지
13.2.3 특권 모드에서 파드 실행
13.2.4 컨테이너에 개별 커널 기능 추가
13.2.5 컨테이너에서 기능 제거
13.2.6 프로세스가 컨테이너의 파일시스템에 쓰는 것 방지
13.2.7 컨테이너가 다른 사용자로 실행될 때 볼륨 공유
13.3 파드의 보안 관련 기능 사용 제한
13.3.1 PodSecurityPolicy 리소스 소개
13.3.2 runAsUser, fsGroup, supplementalGroups 정책
13.3.3 allowed, default, disallowed 기능 구성
13.3.4 파드가 사용할 수 있는 볼륨 유형 제한
13.3.5 각각의 사용자와 그룹에 다른 PodSecurityPolicies 할당
13.4 파드 네트워크 격리
13.4.1 네임스페이스에서 네트워크 격리 사용
13.4.2 네임스페이스의 일부 클라이언트 파드만 서버 파드에 연결하도록 허용
13.4.3 쿠버네티스 네임스페이스 간 네트워크 격리
13.4.4 CIDR 표기법으로 격리
13.4.5 파드의 아웃바운드 트래픽 제한
13.5 요약

14장. 파드의 컴퓨팅 리소스 관리

14.1 파드 컨테이너의 리소스 요청
14.1.1 리소스 요청을 갖는 파드 생성하기
14.1.2 리소스 요청이 스케줄링에 미치는 영향
14.1.3 CPU 요청이 CPU 시간 공유에 미치는 영향
14.1.4 사용자 정의 리소스의 정의와 요청
14.2 컨테이너에 사용 가능한 리소스 제한
14.2.1 컨테이너가 사용 가능한 리소스 양을 엄격한 제한으로 설정
14.2.2 리소스 제한 초과
14.2.3 컨테이너의 애플리케이션이 제한을 바라보는 방법
14.3 파드 QoS 클래스 이해
14.3.1 파드의 QoS 클래스 정의
14.3.2 메모리가 부족할 때 어떤 프로세스가 종료되는지 이해
14.4 네임스페이스별 파드에 대한 기본 요청과 제한 설정
14.4.1 LimitRange 리소스 소개
14.4.2 LimitRange 오브젝트 생성하기
14.4.3 강제 리소스 제한
14.4.4 기본 리소스 요청과 제한 적용
14.5 네임스페이스의 사용 가능한 총 리소스 제한하기
14.5.1 리소스쿼터 오브젝트 소개
14.5.2 퍼시스턴트 스토리지에 관한 쿼터 지정하기
14.5.3 생성 가능한 오브젝트 수 제한
14.5.4 특정 파드 상태나 QoS 클래스에 대한 쿼터 지정
14.6 파드 리소스 사용량 모니터링
14.6.1 실제 리소스 사용량 수집과 검색
14.6.2 기간별 리소스 사용량 통계 저장 및 분석
14.7 요약

15장. 파드와 클러스터 노드의 오토스케일링

15.1 수평적 파드 오토스케일링
15.1.1 오토스케일링 프로세스 이해
15.1.2 CPU 사용률 기반 스케일링
15.1.3 메모리 소비량에 기반을 둔 스케일링
15.1.4 기타 및 사용자 정의 메트릭 기반 스케일링
15.1.5 오토스케일링에 적합한 메트릭 결정
15.1.6 레플리카를 0으로 감소
15.2 수직적 파드 오토스케일링
15.2.1 리소스 요청 자동 설정
15.2.2 파드가 실행되는 동안 리소스 요청 수정
15.3 수평적 클러스터 노드 확장
15.3.1 클러스터 오토스케일러 소개
15.3.2 클러스터 오토스케일러 활성화
15.3.3 클러스터 스케일 다운 동안에 서비스 중단 제한
15.4 요약

16장. 고급 스케줄링

16.1 테인트와 톨러레이션을 사용해 특정 노드에서 파드 실행 제한
16.1.1 테인트와 톨러레이션 소개
16.1.2 노드에 사용자 정의 테인트 추가하기
16.1.3 파드에 톨러레이션 추가
16.1.4 테이트와 톨러레이션의 활용 방안 이해
16.2 노드 어피니티를 사용해 파드를 특정 노드로 유인하기
16.2.1 하드 노드 어피니티 규칙 지정
16.2.2 파드의 스케줄링 시점에 노드 우선순위 지정
16.3 파드 어피니티와 안티-어피니티를 이용해 파드 함께 배치하기
16.3.1 파드 간 어피니티를 사용해 같은 노드에 파드 배포하기
16.3.2 동일한 랙, 가용 영역 또는 리전에 파드 배포
16.3.3 필수 요구 사항 대신 파드 어피니티 선호도 표현하기
16.3.4 파드 안티-어피니티를 사용해 파드들이 서로 떨어지게 스케줄링하기
16.4 요약

17장. 애플리케이션 개발을 위한 모범 사례

17.1 모든 것을 하나로 모아 보기
17.2 파드 라이프사이클 이해
17.2.1 애플리케이션이 종료되고 파드 재 배치 예상하기
17.2.2 종료된 파드 또는 부분적으로 종료된 파드를 다시 스케줄링하기
17.2.3 원하는 순서로 파드 시작
17.2.4 라이프사이클 훅 추가
17.2.5 파드 셧다운 이해하기
17.3 모든 클라이언트 요청의 적절한 처리 보장
17.3.1 파드가 시작될 때 클라이언트 연결 끊기 방지
17.3.2 파드 셧다운 동안 연결 끊어짐 방지
17.4 쿠버네티스에서 애플리케이션을 쉽게 실행하고 관리할 수 있게 만들기
17.4.1 관리 가능한 컨테이너 이미지 만들기
17.4.2 이미지에 적절한 태그를 지정하고 imagePullPolicy를 현명하게 사용
17.4.3 일차원 레이블 대신 다차원 레이블 사용
17.4.4 어노테이션으로 각 리소스 설명
17.4.5 프로세스가 종료된 원인에 대한 정보 제공
17.4.6 애플리케이션 로깅 처리
17.5 개발 및 테스트 모범사례
17.5.1 개발 중 쿠버네티스 외부에서 애플리케이션 실행
17.5.2 개발 중 Minikube 사용
17.5.3 버전 관리 및 자동 배포 리소스 매니페스트
17.5.4 YAML/JSON 매니페스트 대안으로 Ksonnet 소개
17.5.5 지속적 통합과 지속적 배포
17.6 요약

18장. 쿠버네티스의 확장

18.1 사용자 정의 API 오브젝트 정의
18.1.1 CustomResourceDefinition 소개
18.1.2 사용자 정의 컨트롤러로 사용자 정의 리소스 자동화
18.1.3 사용자 정의 오브젝트 유효성 검증
18.1.4 사용자 정의 오브젝트를 위한 사용자 정의 API 서버 제공
18.2 쿠버네티스 서비스 카탈로그를 통한 쿠버네티스 확장
18.2.1 서비스 카탈로그 소개
18.2.2 서비스 카탈로그 API 서버 및 컨트롤러 매니저 소개
18.2.3 Service Broker와 OpenServiceBroker API 소개
18.2.4 프로비저닝과 서비스 사용
18.2.5 바인딩 해제와 프로비저닝 해제
18.2.6 서비스 카탈로그의 이점 이해
18.3 쿠버네티스 기반 플랫폼
18.3.1 레드햇 오픈시프트 컨테이너 플랫폼
18.3.2 Deis Workflow and Helm
18.4 요약

부록 A. 다중 클러스터 환경에서 kubectl 사용하기

부록 B. kubeadm을 사용한 다중 노드 클러스터 설정하기

부록 C. 다른 컨테이너 런타임 사용하기

부록 D. 클러스터 페더레이션

책에서 다루는 쿠버네티스 리소스

출판사 서평

★ 이 책에서 다루는 내용 ★
■ 쿠버네티스 내부 구조
■ 클러스터상에서 컨테이너 배포
■ 클러스터 보안
■ 중단 없이 애플리케이션 갱신

★ 이 책의 대상 독자 ★
도커나 컨테이너 오케스트레이션 시스템에 익숙하지 않은 초, 중급 소프트웨어 개발자를 대상으로 한다.
주로 애플리케이션 개발자를 대상으로 설명하지만, 운영 관점에서 애플리케이션 관리 개요도 제공한다. 이는 다수 서버 환경에서 컨테이너화된 애플리케이션을 실행하고 관리하는 데 관심이 있는 모든 사용자에게 적합하다. 컨테이너 기술을 배우고 여러 개의 관련된 컨테... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

스토리K

1건의 스토리K가 있습니다.

    교환/반품/품절안내

    ※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

    교환/반품/품절안내
    반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
    [1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

    ※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
        또는 고객센터 (1544-1900)
    반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
    반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    반품/교환 불가 사유
    • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
      (단지 확인을 위한 포장 훼손은 제외)
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
      예) 화장품, 식품, 가전제품(악세서리 포함) 등
    • 복제가 가능한 상품 등의 포장을 훼손한 경우
      예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
      해당되는 경우
    (1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
    상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
    이메일과 문자로 안내드리겠습니다.
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
      소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
      소비자 보호에 관한 법률에 따라 처리함

    바로가기

    • 우측 확장형 배너 2
    • 우측 확장형 배너 2

    최근 본 상품