1장 도커와 쿠버네티스의 개요
1 쿠버네티스란?
1.1 쿠버네티스의 개요
1.2 탄생부터 현재까지의 역사
1.3 쿠버네티스의 발음과 로고에 대하여
1.4 쿠버네티스가 해결하는 과제
1.5 쿠버네티스의 아키텍처
마무리
참고 자료
2 컨테이너의 이해
2.1 컨테이너를 사용하는 이유
2.2 가상 서버와 컨테이너의 차이점
2.3 도커의 아키텍처
2.4 레지스트리와 쿠버네티스의 관계
2.5 도커와 쿠버네티스의 연동
2.6 컨테이너를 위한 기술과 표준
마무리
참고 자료
Column 해상 컨테이너가 이룩한 혁명과 IT의 컨테이너 기술 혁명
3 쿠버네티스의 기본
3.1 아키텍처
3.2 쿠버네티스 계층 구조
3.3 쿠버네티스 API 오브젝트
3.4 파드의 기본
3.5 파드의 라이프 사이클
3.6 파드의 종료 처리
3.7 클러스터 네트워크
3.8 서비스의 기본
3.9 컨트롤러의 기본
마무리
참고 자료
4 이 책의 학습 환경
4.1 빠르게 전반적인 기능을 파악하고 싶은 경우
4.2 직접 돌려보면서 익히고 싶은 경우
4.3 각 학습 환경의 구성
4.4 학습 환경 선택
4.5 이 책에서 다루는 OSS 목록
5 도커 커맨드 치트 시트
5.1 컨테이너 환경 표시
5.2 컨테이너의 3대 기능
5.3 디버그 관련 기능
5.4 쿠버네티스와 중복되는 기능
참고 자료
6 kubectl 커맨드 치트 시트
6.1 kubectl 커맨드의 기본
6.2 커맨드
6.3 리소스 타입
6.4 옵션
6.5 kubectl 커맨드 실행 예
참고 자료
Column 5G와 자율 운전으로 주목받는 쿠버네티스
2장 컨테이너 개발을 익히기 위한 5단계
Step 01 컨테이너 첫걸음
01.1 hello-world 실행
01.2 컨테이너의 생명 주기와 도커 커맨드
Step 01 마무리
Step 01 참고 자료
Step 02 컨테이너 다루기
02.1 대화형 모드로 컨테이너 기동 및 정지
02.2 컨테이너 조작 및 이미지 작성
02.3 여러 터미널에서 조작하기
02.4 호스트와 컨테이너의 관계
Step 02 마무리
Step 02 참고 자료
Step 03 컨테이너 개발
03.1 이미지 빌드의 개요
03.2 빌드 실행 순서
03.3 Dockerfile 작성법
03.4 Dockerfile 작성 모범 사례
Step 03 마무리
Step 03 참고 자료
Step 04 컨테이너와 네트워크
04.1 컨테이너 네트워크
04.2 외부에 포트를 공개하기
04.3 AP 컨테이너와 DB 컨테이너의 연동 예
Step 04 마무리
Step 04 참고 자료
Step 05 컨테이너 API
05.1 컨테이너 API의 종류와 개요
05.2 환경 변수 API 구현 예
05.3 종료 요청 API 구현 예
05.4 퍼시스턴스 볼륨 API 구현 예
05.5 로그와 백그라운드 기동
Step 05 마무리
Step 05 참고 자료
Column K8s 사용자를 위한 YAML 입문
3장 K8s 실전 활용을 위한 10단계
Step 06 쿠버네티스 첫걸음
06.1 클러스터 구성 확인
06.2 파드 실행
06.3 컨트롤러에 의한 파드 실행
06.4 잡에 의한 파드 실행
Step 06 마무리
Step 06 참고 자료
Step 07 매니페스트와 파드
07.1 매니페스트 작성법
07.2 매니페스트 적용 방법
07.3 파드의 동작 확인
07.4 파드의 헬스 체크 기능
07.5 초기화 전용 컨테이너
07.6 사이드카 패턴
Step 07 마무리
Step 07 참고 자료
Step 08 디플로이먼트
08.1 디플로이먼트의 생성과 삭제
08.2 스케일 기능
08.3 롤아웃 기능
08.4 롤백 기능
08.5 파드의 IP 주소가 변경되는 경우와 아닌 경우
08.6 자동 복구
08.7 디플로이먼트를 이용한 고가용성 구성
08.8 디플로이먼트의 자동 복구
Step 08 마무리
Step 08 참고 자료
Column 파드의 트러블 슈팅
Step 09 서비스
09.1 ClusterIP
09.2 서비스 타입 NodePort
09.3 서비스 타입 LoadBalancer
09.4 서비스 타입 ExternalName
09.5 서비스와 파드의 연결
09.6 서비스의 매니페스트 작성법
09.7 서비스 생성과 기능 확인
09.8 세션 어피니티
09.9 NodePort 사용
09.10 로드밸런서
09.11 ExternalName
Step 09 마무리
Step 09 참고 자료
Step 10 잡과 크론잡
10.1 잡 활용 예
10.2 잡의 실행수와 동시 실행수
10.3 하나의 컨테이너로 구성된 파드가 이상 종료 하는 경우
10.4 여러 컨테이너 중 일부가 이상 종료 할 때의 동작
10.5 소수 계산 컨테이너와 잡 컨트롤러
10.6 메시지 브로커와의 조합
10.7 쿠버네티스 API 라이브러리 사용
10.8 실행
10.9 크론잡
Step 10 마무리
Step 10 참고 자료
Step 11 스토리지
11.1 스토리지의 종류와 클러스터 구성
11.2 스토리지 시스템의 방식
11.3 스토리지의 추상화와 자동화
11.4 퍼시스턴트 볼륨 이용
11.5 NFS 서버 사용
11.6 클라우드에서의 동적 프로비저닝
11.7 SDS 연동에 의한 동적 프로비저닝
Step 11 마무리
Step 11 참고 자료
Step 12 스테이트풀셋
12.1 디플로이먼트와의 차이
12.2 매니페스트 작성법
12.3 수동 테이크 오버 방법
12.4 노드 장애 시의 동작
12.5 테이크 오버를 자동화하는 코드 개발
12.6 장애 회복 테스트
Step 12 마무리
Step 12 참고 자료
Step 13 인그레스
13.1 인그레스의 기능과 개요
13.2 인그레스 학습 환경 준비
13.3 공개 URL과 애플리케이션의 매핑
13.4 인그레스 적용
13.5 인그레스 SSL/TLS 암호화
13.6 모더니제이션 과제
13.7 세션 어피니티 기능 사용
13.8 kube-keepalived-vip에 의한 VIP 획득과 HA 구성
13.9 퍼블릭 클라우드에서 인그레스 사용
Step 13 마무리
Step 13 참고 자료
Step 14 오토스케일
14.1 오토스케일링 작업
14.2 학습 환경 3에서의 오토스케일 체험
14.3 부하 테스트용 컨테이너 준비
14.4 HPA 설정과 부하 테스트
Step 14 마무리
Step 14 참고 자료
Step 15 클러스터 가상화
15.1 네임스페이스(Namespace)
15.2 kubectl 커맨드의 네임스페이스 설정
15.3 시크릿과 컨피그맵
15.4 시크릿 이용
15.5 컨피그맵
15.6 메모리와 CPU 할당과 상한 지정
15.7 네트워크의 접근 제어(Calico)
15.8 역할에 따른 접근 범위 제한
15.9 환경 구축
15.10 설정 파일 내용
Step 15 마무리
Step 15 참고 자료
부록 학습 환경 구축
1 학습 환경 1
1.1 Mac 환경
1.2 Windows 환경
1.3 Vagrant의 리눅스에서 미니쿠베 사용하기
1.4 미니쿠베 사용 방법
2 학습 환경 2
2.1 멀티 노드 K8s
2.2 가상 NFS 서버
2.3 가상 GlusterFS 클러스터
2.4 프라이빗 레지스트리
3 학습 환경 3
3.1 IBM Cloud Kubernetes Service
3.2 Google Kubernet