1장. 쿠버네티스 소개 __1.1 컨테이너 __1.2 컨테이너 오케스트레이션 시스템 __1.3 쿠버네티스 __1.4 쿠버네티스의 특징 ____1.4.1 선언적 API ____1.4.2 워크로드 분리 ____1.4.3 어디서나 실행 가능 ____1.4.4 커뮤니티
2장. 쿠버네티스 설치하기 __2.1 설치 없이 쿠버네티스 사용하기 ____2.1.1 카타코다 쿠버네티스 플레이그라운드 ____2.1.2 Play with Kubernetes __2.2 도커 데스크톱을 이용한 쿠버네티스 설치 ____2.2.1 윈도우에 도커와 쿠버네티스 설치하기 ____2.2.2 macOS에 도커와 쿠버네티스 설치하기 __2.3 클라우드 서비스에서 제공하는 쿠버네티스 도구 ____2.3.1 구글 쿠버네티스 엔진 ____2.3.2 아마존 쿠버네티스 일래스틱 컨테이너 서비스 ____2.3.3 애저 쿠버네티스 서비스 __2.4 쿠버네티스 클러스터를 직접 구성하는 도구 ____2.4.1 Kubeadm ____2.4.2 Kubespray
3장. 쿠버네티스로 컨테이너 실행하기 __3.1 kubectl ____3.1.1 설치 ____3.1.2 기본 사용법 ____3.1.3 POSIX/GNU 스타일의 명령 작성 규칙 ____3.1.4 플래그 ____3.1.5 kubeconfig 환경 변수 ____3.1.6 자동 완성 ____3.1.7 다양한 사용 예 __3.2 디플로이먼트를 이용해 컨테이너 실행하기 ____3.2.1 kubectl run으로 컨테이너 실행하기 ____3.2.2 템플릿으로 컨테이너 실행하기 __3.3 클러스터 외부에서 클러스터 안 앱에 접근하기
Part II. 쿠버네티스 기본 개념
4장. 쿠버네티스 아키텍처 __4.1 쿠버네티스 클러스터의 전체 구조 __4.2 쿠버네티스의 주요 컴포넌트 ____4.2.1 마스터용 컴포넌트 ____4.2.2 노드용 컴포넌트 ____4.2.3 애드온 __4.3 오브젝트와 컨트롤러 ____4.3.1 네임스페이스 ____4.3.2 템플릿
5장. 파드 __5.1 파드 개념 __5.2 파드 사용하기 __5.3 파드 생명 주기 __5.4 kubelet으로 컨테이너 진단하기 __5.5 초기화 컨테이너 __5.6 파드 인프라 컨테이너 __5.7 스태틱 파드 __5.8 파드에 CPU와 메모리 자원 할당 __5.9 파드에 환경 변수 설정하기 __5.10 파드 환경 설정 내용 적용하기 __5.11 파드 구성 패턴 ____5.11.1 사이드카 패턴 ____5.11.2 앰배서더 패턴 ____5.11.3 어댑터 패턴
6장. 컨트롤러 __6.1 레플리케이션 컨트롤러 __6.2 레플리카세트 ____6.2.1 레플리카세트 사용하기 ____6.2.2 레플리카세트와 파드의 연관 관계 __6.3 디플로이먼트 ____6.3.1 디플로이먼트 사용하기 ____6.3.2 디플로이먼트 롤백하기 ____6.3.3 파드 개수 조정하기 ____6.3.4 디플로이먼트 배포 정지, 배포 재개, 재시작하기 ____6.3.5 디플로이먼트 상태 __6.4 데몬세트 ____6.4.1 데몬세트 사용하기 ____6.4.2 데몬세트의 파드 업데이트 방법 변경하기 __6.5 스테이트풀세트 ____6.5.1 스테이트풀세트 사용하기 ____6.5.2 파드를 순서 없이 실행하거나 종료하기 ____6.5.3 스테이트풀세트로 파드 업데이트하기 __6.6 잡 ____6.6.1 잡 사용하기 ____6.6.2 잡 병렬성 관리 ____6.6.3 잡의 종류 ____6.6.4 비정상적으로 실행 종료된 파드 관리하기 ____6.6.5 잡 종료와 정리 ____6.6.6 잡 패턴 __6.7 크론잡 ____6.7.1 크론잡 사용하기 ____6.7.2 크론잡 설정
7장. 서비스 __7.1 서비스의 개념 __7.2 서비스 타입 __7.3 서비스 사용하기 ____7.3.1 ClusterIP 타입 서비스 사용하기 ____7.3.2 NodePort 타입 서비스 사용하기 ____7.3.3 LoadBalancer 타입 서비스 사용하기 ____7.3.4 ExternalName 타입 서비스 사용하기 __7.4 헤드리스 서비스 __7.5 kube-proxy ____7.5.1 userspace 모드 ____7.5.2 iptables 모드 ____7.5.3 IPVS 모드
8장. 인그레스 __8.1 인그레스의 개념 __8.2 ingress-nginx 컨트롤러 __8.3 인그레스 SSL 설정하기 __8.4 무중단 배포를 할 때 주의할 점 ____8.4.1 maxSurge와 maxUnavailable 필드 설정 ____8.4.2 파드가 readinessProbe를 지원하는지 확인 ____8.4.3 쿠버네티스와 컨테이너 안에 그레이스풀 종료 설정 __8.5 무중단 배포 테스트
9장. 레이블과 애너테이션 __9.1 레이블 __9.2 애너테이션 __9.3 레이블을 이용한 카나리 배포
10장. 컨피그맵 __10.1 컨피그맵 사용하기 __10.2 컨피그맵 설정 중 일부만 불러와서 사용하기 __10.3 컨피그맵 설정 전체를 한꺼번에 불러와서 사용하기 __10.4 컨피그맵을 볼륨에 불러와서 사용하기
11장. 시크릿 __11.1 시크릿 만들기 ____11.1.1 명령으로 시크릿 만들기 ____11.1.2 템플릿으로 시크릿 만들기 __11.2 시크릿 사용하기 ____11.2.1 파드의 환경 변수로 시크릿 사용하기 ____11.2.2 볼륨 형식으로 파드에 시크릿 제공하기 ____11.2.3 프라이빗 컨테이너 이미지를 가져올 때 시크릿 사용하기 ____11.2.4 시크릿으로 TLS 인증서를 저장해 사용하기 __11.3 시크릿 데이터 용량 제한
13장. 인증과 권한 관리 __13.1 인증 ____13.1.1 kubectl의 config 파일에 있는 TSL 인증 정보 구조 확인하기 ____13.1.2 서비스 계정 토큰을 이용해 인증하기 __13.2 권한 관리 ____13.2.1 롤 ____13.2.2 클러스터롤 ____13.2.3 롤바인딩 ____13.2.4 클러스터롤바인딩 ____13.2.5 다양한 롤의 권한 관리 확인하기
14장. 데이터 저장 __14.1 볼륨 ____14.1.1 emptyDir ____14.1.2 hostPath ____14.1.3 nfs __14.2 퍼시스턴트 볼륨과 퍼시스턴트 볼륨 클레임 ____14.2.1 프로비저닝 ____14.2.2 바인딩 ____14.2.3 사용 ____14.2.4 반환 __14.3 퍼시스턴트 볼륨 템플릿 __14.4 퍼시스턴트 볼륨 클레임 템플릿 __14.5 레이블로 PVC와 PV 연결하기 __14.6 파드에서 PVC를 볼륨으로 사용하기 __14.7 PVC 크기 늘리기 __14.8 노드별 볼륨 개수 제한
15장. 클러스터 네트워킹 구성 __15.1 파드 네트워킹 ____15.1.1 도커 컨테이너의 네트워킹 이해하기 ____15.1.2 파드 네트워킹 이해하기 __15.2 쿠버네티스 서비스 네트워킹 __15.3 네트워크 플러그인 ____15.3.1 플라넬 ____15.3.2 칼리코 ____15.3.3 실리엄
16장. 쿠버네티스 DNS __16.1 쿠버네티스 DNS __16.2 클러스터 안에서 도메인 사용하기 __16.3 DNS 질의 구조 ____16.3.1 kube-dns의 질의 구조 ____16.3.2 CoreDNS의 질의 구조 __16.4 파드 안에 DNS 직접 설정하기
17장. 로깅과 모니터링 __17.1 로깅 ____17.1.1 파드 로그 확인하기 ____17.1.2 일래스틱서치로 로그를 수집한 후 모아서 보기 ____17.1.3 클러스터 레벨 로깅 ____17.1.4 플루언트디를 이용해서 로그 수집하기 ____17.1.5 스턴을 이용한 실시간 로그 모니터링 __17.2 쿠버네티스 대시보드 __17.3 쿠버네티스 클러스터 모니터링 ____17.3.1 쿠버네티스 모니터링 아키텍처 ____17.3.2 힙스터 ____17.3.3 메트릭 서버 ____17.3.4 프로메테우스
19장. 사용자 정의 자원 __19.1 사용자 정의 컨트롤러 __19.2 사용자 정의 자원과 컨피그맵 __19.3 사용자 정의 자원 정의하기 __19.4 CRD를 활용한 사용자 정의 컨트롤러 사용하기 __19.5 자원 유효성 검사 __19.6 사용자 정의 자원의 정보 추가하기 __19.7 프로메테우스 오퍼레이터 사용하기
20장. 쿠버네티스 기반으로 워드프레스 앱 실행하기 __20.1 워드프레스 앱의 구성 __20.2 MySQL 비밀번호를 시크릿에 등록하기 __20.3 데이터베이스에 사용할 볼륨 만들기 __20.4 mysql 파드 실행하기 __20.5 워드프레스 앱을 실행하고 데이터베이스 연결하기 __20.6 모니터링 도구 이용하기 __20.7 wordpress 파드 늘리기 __20.8 wordpress 파드 오토스케일링 테스트하기
21장. 헬름 __21.1 헬름 소개 __21.2 헬름 클라이언트와 틸러 서버 __21.3 헬름 설치하고 사용하기 __21.4 헬름 차트의 구조 __21.5 헬름 차트 수정해 사용하기 __21.6 헬름 차트 저장소를 직접 만들어 사용하기