목차 : 24단계 실습으로 배우는 쿠버네티스(가제, 위키북스)
아마도 곧(?) 출간될 책의 목차를 공유합니다.
목차
1부. 쿠버네티스 설치와 클러스터 기본 관리 업무 실습
1. 쿠버네티스 클러스터 설치와 로컬호스트 관리
1-1. Kubespray를 이용하여 3개의 노드로 구성된 클러스터 구축하기
1-2. K3s를 이용하여 단일 노드로 구성된 클러스터 구축하기
1-3. 로컬호스트에서 원격 쿠버네티스 관리하기
1-3-1. 로컬호스트에 쿠버네티스 관리 도구 Kubectl 설치하기
1-3-2. 원격 클러스터 정보 로컬 호스트 등록하기
1-4. 정리
2. 쿠버네티스 클러스터 관리 효율화를 위한 Kubectl CLI 환경 최적화
2-1.Kubectl 자동 완성 기능과 사용자 지정 명령어 앨리어스(alias) 사용하기
2-2. Kubectl CLI 플러그인 매니저 쿠버네티스 크루(krew) 설치하기
2-3. kube-ctx(context), kube-ns(namespace), kube-ps(prompt status) 사용하기
2-4. 정리
3. Kubectl 명령어로 익히는 쿠버네티스 주요 오브젝트
3-1. NGINX 파드 실행(run) 및 배쉬 실행(exec)
3-2. 디플로이먼트의 파드 수량 변경(scale) 및 삭제(delete)
3-3. 네임스페이스 생성(create)
3-4. 정리
4. YAML 파일을 이용하여 쿠버네티스 오브젝트 관리하기
4-1. YAML 파일 익스포트 플러그인 kube-neat 설치하기
4-2. YAML 파일을 이용하여 파드 배포하기
4-3. 쿠버네티스 YAML 템플릿 파일 검색 및 네이밍 규칙을 적용하여 파일 저장하기
4-4. 정리
5. 쿠버네티스 트러블슈팅 기본 프로세스 이해하기
5-1. 에러 상황 발생 시 기본 조치 프로세스의 이해
: Apply - Get - Describe -Log - Events 순으로 조치
5-2. 장애 사례 처리 예시
: 호스트 노드의 파일 시스템 용량 초과 사례
5-3. 정리
6. 헬름(Helm) 기반 쿠버네티스 환경 애플리케이션 설치하기
6-1. 헬름의 주요 구성 요소 이해하기
: 헬름 차트, 헬름 리포지토리, 헬름 템플릿
6-2. 헬름 차트를 이용하여 NGINX 애플리케이션 설치하기
6-2-1. 헬름 애플리케이션 라이프사이클 관리
6-2-2. 헬름 템플릿 변수 파일(values.yaml) 사용하기
6-2-3. 리소스 Requests/Limits 이해
6-3. 정리
2부. 쿠버네티스 네트워크 & 스토리지 인프라 환경 구성하기
7. 쿠버네티스 서비스 사용하기
7-1. 클러스터 내부 파드 간 통신하기
7-1-1. 클러스터IP 타입 서비스 생성하기
7-1-2. 서비스 디스커버리 이해하기
7-2. 쿠버네티스 DNS 기능 이해하기
7-2-1. CoreDNS 및 LocalDNS 설정 이해하기
7-2-2. DNS 도메인 search 옵션 설정 이해하기
7-3. 클러스터 외부에서 내부의 파드 연결하기
7-3-1. 노드포트 타입 서비스 생성하기
7-3-2. 부하분산(Load Balance) 설정 이해하기
7-4. 정리
8. MetalLB를 이용하여 로드밸런서 타입 서비스 구축하기
8-1. 헬름을 이용하여 MetalLB 설치하기
8-2. MetalLB 파드 아키텍처 확인하기
8-2-1.복수의 파드 로그를 동시에 확인 할 수 있는 kubetail 설치하기
8-2-2. MetalLB 파드 로그 확인하기
8-3. MetalLB 부하테스트 및 고가용성 시나리오 검증
8-3-1. k6 이용 부하테스트
8-3-2. 노드 장애 시 서비스 다운 시간 측정하기
8-4. 정리
9. 트래픽(Traefik)을 이용하여 쿠버네티스 인그레스 구축하기
9-1. Traefik 인그레스 컨트롤러 설치하기
9-2. 인그레스 테스트 용 서비스 설치하기
9-3. Traefik 인그레스 설정 테스트
9-3-1. Traefik CRD를 이용한 인그레스 설정의 이해
9-3-2. 가상 호스트와 URL 경로에 따른 서비스 분기
9-3-3. 사용자 SSL/TLS 인증서 적용
9-4. 정리
10. 쿠버네티스 스토리지 사용하기
10-1. 쿠버네티스 영구볼륨, PVC, 스토리지 클래스의 이해
10-2. OpneEBS 로컬 호스트패스(Hostpath) 설치
10-3. 스토리지 클래스를 이용하여 PVC 및 영구볼륨 사용하기
10-4. 사용자 스토리지 클래스를 지정하여 헬름 차트 MySQL 설치하기
10-5. 로컬 호스트패스 스토리지 클래스의 장점 및 제약 사항
10-5-1. 뛰어난 IOPS 성능 - Kubestr 이용 성능 측정
10-5-2. 스토리지 고가용성 구성 제약 - 노드 Drain 테스트
10-6. 정리
11. 쿠버네티스 스토리지 볼륨 스냅샷 기능 사용하기
11-1. rook-ceph 이용 쿠버네티스 셰프 스토리지 설치하기
11-2. 워드프레스 블로그 애플리케이션 설치 및 스냅샷 생성하기
11-2-1. 워드프레스 애플리케이션 설치
11-2-2. 스토리지 볼륨 스냅샷 생성하기
11-3. 스냅샷을 이용하여 애플리케이션 데이터 복구하기
11-4. rook-ceph 스토리지 가용성 테스트 및 IOPS 성능 측정하기
11-5. 정리
12. 쿠버네티스 환경 공유 파일 스토리지(NFS) 사용하기
12-1. 루크-셰프(rook-ceph) 이용 공유 파일 스토리지 설치하기
12-2. 여러 파드에서 동시에 단일 파일 스토리지 마운트하기
12-3. 스토리지 고가용성 테스트
12-4. 정리
3부. 쿠버네티스 애플리케이션 배포 인프라 구축하기
13. 하버(Harbor)를 이용하여 로컬 컨테이너 이미지 저장소 구축하기
13-1. 헬름 차트로 하버(Harbor) 설치하기
13-2. 로컬 컨테이너 이미지를 원격 하버 리포지토리로 업로드하기
13-3. 쿠버네티스 YAML 파일의 컨테이너 이미지 저장소 주소를 로컬 하버로 변경하기
13-4. 컨테이너 이미지 업로드 시 자동으로 이미지 보안 스캔 기능 활성화하기
13-5. 정리
14. 깃랩(GitLab)을 이용하여 로컬 깃(Git) 소스 코드 저장소 구축하기
14-1. 헬름 차트 기반으로 깃랩(GitLab) 설치
14-2. 로컬 쿠버네티스 YAML 소스 코드를 원격 깃랩 저장소에 동기화하기
14-3. 정리
15. 아르고시디(ArgoCD)를 이용하여 깃옵스(GitOps) 시스템 구축하기
15-1. 헬름 차트로 ArgoCD 설치하기
15-2. ArgoCD를 이용하여 RabbitMQ 헬름 애플리케이션 배포하기
15-3. GitOps 실습
: 클러스터 설정 내역 변경 및 깃 저장소 자동 반영
15-4. 정리
4부. 쿠버네티스 모니터링 및 로깅 시스템 구축하기
16. 간단하게 사용할 수 있는 쿠버네티스 모니터링 도구
16-1. 메트릭(Metric)서버로 파드 및 노드의 CPU, 메모리 사용량 확인
16-2. 명령어 기반 쿠버네티스 모니터링 도구 k9s
16-3. 정리
17. 쿠버네티스 모니터링 시스템 프로메테우스(Prometheus) 사용하기
17-1. 헬름 차트 기반으로 프로메테우스-스택 설치 하기
17-2. 프로메테우스 아키텍처
17-3. 프로메테우스 웹 UI 사용하기
: 상세 설정 내역 확인 및 모니터링 그래프 확인하기
17-4. 정리
18. 그라파나(Grafana) - 모니터링 대시보드
18-1. 프로메테우스-스택에 사전 포함(pre-built)된 그라파나 대시보드 사용하기
18-1-1. 그라파나 기본 사용법
18-1-2. 기본 대시보드 확인하기
18-2. 그라파나 공식 홈페이지 템플릿 대시보드 추가하기
: 쿠버네티스 클러스터 전체 현황 파악하기
18-3. NGINX 애플리케이션 모니터링 대시보드 추가하기
: 프로메테우스 서비스모니터와 PromQL 기본 사용법 익히기
18-4. 정리
19. Alertmanager - 쿠버네티스 경보 서비스
19-1. 프로메테우스, AlertManager 시스템 경보 기능 이해하기
19-2. 시스템 경고 메시지 전달 용도의 슬랙 웹훅 URL 생성하기
19-3. AlertManager 설정 파일에 슬랙 웹훅 URL 정보 등록
19-4. AlertManager 기능 검증
19-4-1. 임의의 노드 다운 후 슬랙 채널 메시지 확인
19-4-2. 시스템 경고 정책(prometheusrules) 상세 내용 확인하기
19-4-3. AlertManager 임시 중지(silence) 기능 사용하기
19-5. 사용자 정의 prometheusrules 정책 설정하기
: 파일시스템 사용률 80% 초과 시 시스템 경고 발생하기
19-6. 정리
20. 로키(Loki) - 쿠버네티스 로깅 시스템
20-1. Loki 시스템 구조 및 헬름 차트로 Loki 설치하기
20-2. Loki를 이용하여 쿠버네티스 로그 검색하기
20-3. LogQL 상세 사용법 익히기
: 특정 네임스페이스 로그, 정규 표현식 사용 로그 검색
20-4. 정리
5부. 쿠버네티스 보안 시스템 구축하기
21. 쿠버네티스 보안 도구 활용하기
21-1. 쿠버네티스 보안 도구 kubescape 사용하기
: NSA-CISA 프레임워크 기반 보안 점검 도구
21-2. 쿠버네티스 보안 도구 폴라리스(Polaris) 사용하기
21-2-1. Redis 헬름 차트 설치
21-2-2. 폴라리스 설치 및 Redis 보안 취약점 확인하기
21-3. 정리
22. 역할기반 접근제어(RBAC) 설정하기
22-1. Role/RoleBinding과 ClusterRole/ClusterRoleBinding 이해하기
22-2. ServiceAccount와 User, kubeconfig 파일 이해하기
: 특정 네임스페이스 권한만 가지는 사용자 생성하기
22-3. 멀티테넌시 환경 쿠버네티스 구성하기
: 사용자 별 네임스페이스 단위 권한 제한하기
22-4. 정리
6부. 기타
23. 애플리케이션 부하 및 고가용성 테스트 실행하기
23-1. 데모 용도의 방명록 서비스 설치하기
23-2. K6를 이용하여 웹 부하 테스트 실행하기
23-3. 애플리케이션 고가용성 테스트
23-3-1. 특정 노드 내 실행 중인 모든 파드 종료하기(drain)
23-3-2. 파드 삭제 및 노드 종료 시 서비스 이상 여부 검증하기
23-4. 정리
24. 쿠버네티스 노드 변경 및 추가하기
24-1. 컨트롤 플레인 노드 변경 및 워커 노드 추가하기
24-2. 정리