1부 쿠버네티스 빠르게 훑어보기 1장 시작하기 전에 1.1 쿠버네티스 이해하기 1.2 이 책의 대상 독자 1.3 실습 환경 만들기 __1.3.1 이 책의 예제 코드 내려받기 __1.3.2 도커 데스크톱 설치하기 __1.3.3 도커 커뮤니티 에디션과 K3s 설치하기 __1.3.4 쿠버네티스 명령행 도구 설치하기 __1.3.5 애저 환경에서 단일 노드 쿠버네티스 클러스터 실행하기 __1.3.6 AWS에서 단일 노드 쿠버네티스 클러스터 실행하기 __1.3.7 생성한 클러스터 확인하기 1.4 바로 활용하기
2장 파드와 디플로이먼트로 컨테이너 실행하기 2.1 쿠버네티스는 어떻게 컨테이너를 실행하고 관리하는가 2.2 컨트롤러 객체와 함께 파드 실행하기 2.3 애플리케이션 매니페스트에 배포 정의하기 2.4 파드에서 실행 중인 애플리케이션에 접근하기 2.5 쿠버네티스의 리소스 관리 이해하기 2.6 연습 문제
3장 네트워크를 통해 서비스에 파드 연결하기 3.1 쿠버네티스 내부의 네트워크 트래픽 라우팅 3.2 파드와 파드 간 통신 3.3 외부 트래픽을 파드로 전달하기 3.4 쿠버네티스 클러스터 외부로 트래픽 전달하기 3.5 쿠버네티스 서비스의 해소 과정 3.6 연습 문제
4장 컨피그맵과 비밀값으로 애플리케이션 설정하기 4.1 쿠버네티스에서 애플리케이션에 설정이 전달되는 과정 4.2 컨피그맵에 저장한 설정 파일 사용하기 4.3 컨피그맵에 담긴 설정값 데이터 주입하기 4.4 비밀값을 이용하여 민감한 정보가 담긴 설정값 다루기 4.5 쿠버네티스의 애플리케이션 설정 관리 4.6 연습 문제
5장 볼륨, 마운트, 클레임을 이용한 데이터 퍼시스턴시 5.1 쿠버네티스에서 컨테이너 파일 시스템이 구축되는 과정 5.2 볼륨과 마운트로 노드에 데이터 저장하기 5.3 전체에서 접근 가능하도록 데이터 저장하기: 영구볼륨과 클레임 5.4 스토리지의 유형과 동적 볼륨 프로비저닝 5.5 스토리지를 선택할 때 고려할 점 5.6 연습 문제
6장 컨트롤러 리소스를 이용한 애플리케이션의 스케일링 6.1 쿠버네티스는 어떻게 애플리케이션을 스케일링하는가 6.2 디플로이먼트와 레플리카셋을 이용한 부하 스케일링 6.3 데몬셋을 이용한 스케일링으로 고가용성 확보하기 6.4 쿠버네티스의 객체 간 오너십 6.5 연습 문제
2부 쿠버네티스 실무에 활용하기 7장 멀티컨테이너 파드를 이용하여 애플리케이션 확장하기 7.1 파드와 컨테이너의 통신 7.2 초기화 컨테이너를 이용한 애플리케이션 시작 7.3 어댑터 컨테이너를 이용한 일관성 있는 애플리케이션 관리 7.4 외부와의 통신을 추상화하기: 앰배서더 컨테이너 7.5 파드 환경 이해하기 7.6 연습 문제
8장 데이터를 많이 다루는 애플리케이션 실행하기: 스테이트풀셋과 잡 8.1 스테이트풀셋을 이용한 안정성 모델링 8.2 스테이트풀셋에서 초기화 컨테이너 활용하기 8.3 볼륨 클레임 템플릿으로 스토리지 요청하기 8.4 잡과 크론잡을 이용한 유지 보수 작업 8.5 유상태 애플리케이션을 위한 플랫폼 선택하기 8.6 연습 문제
9장 롤아웃과 롤백을 이용한 애플리케이션 릴리스 관리 9.1 쿠버네티스의 롤링 업데이트 9.2 롤아웃과 롤백을 이용한 디플로이먼트 업데이트 9.3 디플로이먼트의 롤링 업데이트 설정 9.4 데몬셋과 스테이트풀셋의 롤링 업데이트 9.5 릴리스 전략 이해하기 9.6 연습 문제
10장 헬름을 이용한 애플리케이션 패키징 및 관리 10.1 헬름이 제공하는 기능 10.2 헬름으로 애플리케이션 패키징하기 10.3 차트 간 의존 관계 모델링하기 10.4 헬름으로 설치한 릴리스의 업그레이드와 롤백 10.5 헬름은 어떤 상황에 적합한가 10.6 연습 문제
11장 애플리케이션 개발: 개발 워크플로와 CI/CD 11.1 도커 개발 워크플로 11.2 쿠버네티스 개발 워크플로 11.3 컨텍스트와 네임스페이스를 이용하여 워크로드 분리하기 11.4 도커를 배제한 쿠버네티스의 지속적 전달 11.5 쿠버네티스 환경의 개발자 워크플로 평가하기 11.6 연습 문제
3부 운영 환경으로 가자 12장 자기수복형 애플리케이션 활용하기 12.1 정상 파드에만 트래픽 라우팅하기: 레디니스 프로브 12.2 고장을 일으킨 파드 재시작하기: 리브니스 프로브 12.3 헬름을 이용한 안전한 애플리케이션 업데이트 12.4 계산 리소스를 관리하여 애플리케이션 및 노드 보호하기 12.5 자기수복형 애플리케이션의 한계점 12.6 연습 문제
13장 플루언트디와 일래스틱서치를 이용한 중앙화된 로그 관리 13.1 쿠버네티스의 로그 관리 13.2 플루언트디를 이용한 로그 파일 수집 13.3 수집된 로그를 일래스틱서치에 저장하기 13.4 로그 파싱 및 필터링하기 13.5 쿠버네티스에 적용할 수 있는 그 외 로그 모델 13.6 연습 문제
14장 프로메테우스를 이용한 쿠버네티스 및 애플리케이션 모니터링 14.1 프로메테우스가 쿠버네티스 애플리케이션을 모니터링하는 과정 14.2 프로메테우스 클라이언트 라이브러리가 사용된 애플리케이션 모니터링하기 14.3 측정값 추출기를 이용한 모니터링 14.4 쿠버네티스 객체와 컨테이너 모니터링하기 14.5 모니터링을 위한 투자의 방향성 14.6 연습 문제
15장 인그레스를 이용한 인입 트래픽 관리 15.1 인그레스의 라우팅 과정 15.2 인그레스 규칙을 이용한 HTTP 트래픽 라우팅 15.3 인그레스 컨트롤러 비교하기 15.4 인그레스를 사용하여 HTTPS 적용하기 15.5 인그레스 및 인그레스 컨트롤러의 이해 15.6 연습 문제
16장 폴리시, 컨텍스트, API 접근 제어를 이용한 애플리케이션 보안 16.1 네트워크 폴리시를 이용하여 컨테이너 통신 제약하기 16.2 보안 컨텍스트를 이용하여 컨테이너 기능 제약하기 16.3 웹훅을 이용한 워크로드의 차단 또는 변경하기 16.4 오픈 폴리시 에이전트를 이용한 어드미션 컨트롤 16.5 쿠버네티스의 보안 그 깊은 곳 16.6 연습 문제
4부 고급 쿠버네티스 사용법 17장 역할 기반 접근 제어를 이용한 리소스 보안 17.1 쿠버네티스 리소스에 대한 접근 제어하기 17.2 클러스터 내부의 리소스 접근 제어하기 17.3 사용자나 서비스 계정 또는 그 그룹에 롤을 부여하기 17.4 서드파티 플러그인을 사용한 권한 부여 검증하기 17.5 RBAC 전략 구상하기 17.6 연습 문제
18장 쿠버네티스 배치하기: 다중 노드 혹은 다중 아키텍처 클러스터 18.1 쿠버네티스 클러스터의 구조 18.2 컨트롤플레인 초기화하기 18.3 노드를 추가하고 클러스터에서 애플리케이션 실행하기 18.4 윈도우 노드를 추가하고 하이브리드 애플리케이션 실행하기 18.5 쿠버네티스 클러스터를 확장할 때 고려할 것 18.6 연습 문제
19장 워크로드의 배치 조정과 자동 스케일링 19.1 쿠버네티스의 워크로드 배치 과정 19.2 어피니티 및 안티어피니티를 이용한 파드 배정 지정 19.3 자동 스케일링을 이용하여 처리 용량 제어 19.4 선점과 우선순위를 이용한 리소스 보호 19.5 워크로드 관리의 메커니즘 이해 19.6 연습 문제
20장 사용자 정의 리소스와 오퍼레이터를 이용하여 쿠버네티스 확장하기 20.1 사용자 정의 리소스를 이용한 쿠버네티스 확장하기 20.2 사용자 정의 컨트롤러를 이용한 워크플로 트리거 20.3 오퍼레이터를 이용한 서드파티 컴포넌트 관리하기 20.4 오퍼레이터 직접 작성하기 20.5 쿠버네티스의 기능 확장이 필요한 시점은 언제일까 20.6 연습 문제
21장 쿠버네티스에서 서버리스 펑션 실행하기 21.1 서버리스 플랫폼의 동작 원리 21.2 HTTP 요청을 통해 서버리스 펑션 호출하기 21.3 서버리스 펑션 호출하기: 이벤트 트리거와 스케줄 트리거 21.4 Serverless를 이용하여 서버리스 펑션 추상화하기 21.5 서버리스 펑션의 용도 이해하기 21.6 연습 문제
22장 끝없는 정진 22.1 장별 추가 학습 자료 22.2 어떤 쿠버네티스 플랫폼을 선택해야 할까 22.3 쿠버네티스의 개발 프로세스 22.4 커뮤니티 참여하기
부록은 무료 전자책으로 제공합니다. 온라인 서점 eBook 코너에서 ‘쿠버네티스 교과서’로 검색하면 찾을 수 있습니다. 부록 A. 애플리케이션 소스 코드에서 도커 이미지까지 부록 B. 컨테이너 모니터링으로 투명성 있는 애플리케이션 만들기 부록 C. 컨테이너의 애플리케이션 설정 관리 부록 D. 도커를 이용한 로그 생성 및 관리