도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문
32,000원
중급
도서 소개
실무 현장의 경험을 고스란히 담은 쿠버네티스 실습서!
직접 해야만 알 수 있는 것들이 있습니다. 쿠버네티스도 마찬가지입니다. 쿠버네티스의 기반이 되는 컨테이너 기술은 기존의 가상 머신과 기본 전제부터 다릅니다. 실습으로 한땀한땀 채워나가면 처음에는 어렵고 낯설지만 금방 쿠버네티스에 익숙해질 수 있습니다.
실무에서는 쿠버네티스뿐만 아니라 네트워크, 스토리지, 모니터링, 리포지토리 등 다양한 쿠버네티스 도구가 함께 사용됩니다. 이 책은 총 24개의 장으로 구성돼 있고, 각 장마다 다양한 실습을 진행합니다. 완전한 서비스를 제공하기 위해 필요한 모든 요소를 제공하며, 특히 퍼블릭 클라우드 환경뿐만 아니라 온프레미스 환경에서도 사용할 수 있는 다양한 예제를 다룹니다. 벤더가 제공하는 퍼블릭 클라우드에 비해 온프레미스 환경은 관련 자료를 찾기 어려운데, 저자가 경험한 내용을 빠짐없이 담았습니다.
★ 이 책에서 다루는 내용 ★
- Kubectl CLI 환경 최적화
- 실전 쿠버네티스 트러블슈팅 프로세스
- 헬름 기반 쿠버네티스 애플리케이션 라이프사이클 관리
- 쿠버네티스 네트워크 서비스 이해 및 MetalLB 로드밸런서, 인그레스(Traefik)
- OpenEBS, 셰프, 공유 파일 시스템, 스냅샷 등의 쿠버네티스 스토리지 관련 기능
- 하버를 이용한 컨테이너 이미지 저장소 구축
- 깃랩을 이용한 로컬 깃 소스코드 저장소 구축
- 아르고시디로 구축하는 깃옵스 시스템
- 프로메테우스와 그라파나, 로키로 구축하는 모니터링 및 중앙 로깅 시스템
도서 상세 이미지

저자 소개
이정훈
삼성 네트웍스(현 SDS), DELL, SPK 등에서 시스템 운영과 기획 업무를 담당했습니다. 현재는 음성인식 및 대화분석 스타트업인 아틀라스랩스에서 DevOps 엔지니어로 일하고 있습니다. 은퇴할 때까지 콘솔 잡는 엔지니어를 목표로 천천히 생각하고 일합니다. 책을 읽고 글 쓰는 것을 즐기며 야구 경기를 보고 직접 야구하는 것을 좋아합니다.
IT 엔지니어는 늘 빚지고 있다고 생각합니다. IT 지식을 기꺼이 공유하는 다른 이들의 소중한 경험이 없었다면 어쩌면 저는 오늘 한 줄의 명령어도 입력하기 어려웠을 겁니다. 조금이라도 빚을 갚는다는 생각으로 블로그(https://jerryljh.tistory.com/)를 운영하고 있습니다.
목차
- [1부] 쿠버네티스의 개념과 설치, 기본 관리 방법
- ▣ 01장: 쿠버네티스 개요와 클러스터 설치
- 01. 쿠버네티스란?
- 02. Kubespray를 이용해 3개의 노드로 구성된 클러스터 구축
- 03. K3s를 이용해 단일 노드로 구성된 클러스터 구축
- 04. 로컬호스트에서 원격 쿠버네티스 관리하기
- __1.4.1 로컬호스트에 쿠버네티스 명령어 실행 도구인 kubectl 설치
- __1.4.2 원격 클러스터 정보를 kubeconfig 파일에 등록
- ▣ 02장: 효율적인 쿠버네티스 클러스터 관리를 위한 kubectl CLI 환경 최적화
- 01. kubectl 자동 완성과 명령어 앨리어스 활용
- 02. 쿠버네티스 krew를 이용한 플러그인 관리
- 03. kube-ctx(컨텍스트), kube-ns(네임스페이스), kube-ps1(프롬프트) 활용
- ▣ 03장: kubectl 명령어로 익히는 쿠버네티스의 주요 오브젝트
- 01. NGINX 파드 실행과 배시 실행
- 02. 디플로이먼트의 파드 개수 변경과 삭제
- 03. 네임스페이스 생성
- ▣ 04장: YAML 파일을 이용한 쿠버네티스 오브젝트 관리
- 01. YAML 파일 익스포트 플러그인 kube-neat 설치
- 02. YAML 파일을 이용한 파드 배포
- 03. 쿠버네티스 YAML 템플릿 파일 검색 및 네이밍 규칙을 적용해 파일 저장하기
- ▣ 05장: 쿠버네티스 트러블슈팅의 기본 프로세스
- 01. 기본 에러 조치 프로세스의 이해: Apply - Get - Describe -Logs - Get Event 순으로 조치
- 02. 장애 처리 사례: 호스트 노드의 파일 시스템 용량 초과
- ▣ 06장: 헬름 기반으로 애플리케이션 설치하기
- 01. 헬름의 주요 구성 요소: 헬름 차트, 헬름 리포지토리, 헬름 템플릿
- 02. 헬름 차트를 이용한 NGINX 웹서버 설치
- __6.2.1 헬름을 이용한 애플리케이션 라이프사이클 관리
- __6.2.2 헬름 템플릿 변수 파일 사용하기
- __6.2.3 리소스 Requests/Limits 이해
- [2부] 쿠버네티스 네트워크 및 스토리지 인프라 환경 구성
- ▣ 07장: 쿠버네티스 서비스 사용하기
- 01. 클러스터 내부 파드 간 통신
- __7.1.1 클러스터IP 타입의 서비스 생성
- __7.1.2 서비스 디스커버리의 이해
- 02. 쿠버네티스 DNS 기능 이해
- __7.2.1 CoreDNS 및 LocalDNS 설정 이해
- __7.2.2 쿠버네티스 DNS의 Search 옵션 설정 이해
- 03. 클러스터 외부에서 내부의 파드 연결
- __7.3.1 노드포트 타입의 서비스 생성
- __7.3.2 부하분산 설정의 이해
- ▣ 08장: MetalLB를 이용한 로드밸런서 타입 서비스 구축
- 01. 헬름을 이용한 MetalLB 설치
- 02. MetalLB 파드 아키텍처 확인
- __8.2.1 kubetail 설치
- __8.2.2 MetalLB 파드 로그 확인
- 03. MetalLB 부하 테스트 및 고가용성 시나리오 검증
- __8.3.1 k6를 이용한 부하 테스트
- __8.3.2 노드 장애 시의 서비스 다운시간 측정
- ▣ 09장: Traefik을 이용한 쿠버네티스 인그레스 구축
- 01. Traefik 인그레스 컨트롤러 설치
- 02. 인그레스 테스트용 애플리케이션 설치
- 03. Traefik 인그레스 설정 테스트
- __9.3.1 Traefik CRD를 이용한 인그레스 설정의 이해
- __9.3.2 가상 호스트와 URL 경로에 따른 서비스 분기
- __9.3.3 사용자 SSL/TLS 인증서 적용
- ▣ 10장: 쿠버네티스 스토리지
- 01. 쿠버네티스 영구볼륨, PVC, 스토리지 클래스의 이해
- 02. OpenEBS 로컬 호스트패스 설치
- 03. 스토리지 클래스를 이용한 PVC 및 영구볼륨 사용
- 04. 사용자 스토리지 클래스를 지정해 헬름 차트 MySQL 설치하기
- 05. 로컬 호스트패스 스토리지 클래스의 장점 및 제약 사항
- __10.5.1 뛰어난 IOPS 성능 - Kubestr을 이용한 성능 측정
- __10.5.2 스토리지 고가용성 구성 제약 - 노드 제거 테스트
- ▣ 11장: 스토리지 볼륨 스냅샷 사용하기
- 01. rook-ceph를 이용한 쿠버네티스 셰프 스토리지 설치
- 02. 워드프레스 블로그 애플리케이션의 설치 및 스냅샷 생성
- __11.2.1 워드프레스 애플리케이션 설치
- __11.2.2 스토리지 볼륨 스냅샷 생성
- 03. 스냅샷을 이용한 애플리케이션 데이터 복구
- 04. rook-ceph 스토리지의 가용성 테스트 및 IOPS 성능 측정
- ▣ 12장: 쿠버네티스 환경에서 공유 파일 스토리지 사용하기
- 01. 루크-셰프 이용한 공유 파일 스토리지 설치
- 02. 여러 파드에서 동시에 단일 파일 스토리지에 마운트하기
- 03. 스토리지 고가용성 테스트
- [03부] 쿠버네티스 애플리케이션 배포 인프라 구축
- ▣ 13장: 하버를 이용한 로컬 컨테이너 이미지 저장소 구축
- 01. 헬름 차트를 이용한 하버 설치
- 02. 로컬 컨테이너 이미지를 원격 하버 이미지 저장소로 업로드
- 03. 쿠버네티스 YAML 파일의 컨테이너 이미지 저장소 주소를 로컬 하버로 변경
- 04. 컨테이너 이미지 업로드 시 자동으로 이미지에 대한 보안 스캔 기능 활성화
- ▣ 14장: 깃랩을 이용한 로컬 Git 소스 저장소 구축
- 01. 헬름 차트 기반으로 깃랩 설치
- 02. 로컬 쿠버네티스 YAML 소스코드를 원격 깃랩 저장소에 동기화
- ▣ 15장: 아르고시디를 활용한 깃옵스 시스템 구축
- 01. 헬름 차트를 이용한 아르고시디 설치
- 02. 아르고시디를 이용한 래빗엠큐 헬름 애플리케이션 배포
- 03. GitOps 실습: 클러스터 설정 내역 변경과 깃 저장소 자동 반영
- [04부] 쿠버네티스 모니터링 및 로깅 시스템 구축
- ▣ 16장: 간단하게 사용할 수 있는 쿠버네티스 모니터링 도구
- 01. 메트릭 서버를 이용한 파드 및 노드의 리소스 사용량 확인
- 02. 명령어 기반 쿠버네티스 모니터링 도구 k9s
- ▣ 17장: 프로메테우스 - 쿠버네티스 모니터링 시스템
- 01. 헬름 차트 기반의 프로메테우스-스택 설치
- 02. 프로메테우스 아키텍처
- 03. 프로메테우스 웹 UI 활용: 상세 설정 내역 확인 및 모니터링 그래프 확인하기
- ▣ 18장: 그라파나 - 쿠버네티스 모니터링 대시보드
- 01. 프로메테우스-스택에 사전 포함된 그라파나 대시보드 사용하기
- __18.1.1 그라파나의 기본 사용법
- __18.1.2 기본 대시보드 확인
- 02. 그라파나 공식 홈페이지의 템플릿 대시보드 추가하기
- 03. NGINX 애플리케이션 모니터링 대시보드 추가: 프로메테우스 서비스모니터와 PromQL의 기본 사용법
- ▣ 19장: 얼럿매니저 - 쿠버네티스 경보 서비스
- 01. 프로메테우스와 얼럿매니저의 시스템 경보 기능
- 02. 시스템 경고 메시지 전달을 위한 슬랙 채널 및 웹훅 URL 생성
- 03. 얼럿매니저 설정 파일에 슬랙 웹훅 URL 등록
- 04. 얼럿매니저 기능 검증
- __19.4.1 임의의 노드를 다운시킨 후 슬랙 채널 메시지를 확인
- __19.4.2 시스템 경고 정책(prometheusrules)의 상세 내용 확인
- __19.4.3 얼럿매니저의 일시 중지 기능 사용하기
- 05. 사용자 정의 prometheusrules 정책 설정: 파일시스템 사용률 80% 초과 시 시스템 경고 발생시키기
- ▣ 20장: 로키 - 쿠버네티스 로깅 시스템
- 01. 로키 시스템의 구조와 설치
- 02. 로키를 이용한 쿠버네티스 로그 검색
- 03. LogQL 사용법 익히기: 특정 네임스페이스의 로그 및 정규 표현식을 이용한 로그 검색
- [05부] 쿠버네티스 보안 시스템 구축
- ▣ 21장: 쿠버네티스 보안 도구 활용
- 01. kubescape - NSA/CISA 프레임워크 기반 보안 점검 도구
- 02. 폴라리스 활용
- __21.2.1 레디스 헬름 차트 설치
- __21.2.2 폴라리스 설치 및 레디스의 보안 취약점 확인
- ▣ 22장: 역할 기반 접근 제어(RBAC) 설정
- 01. Role/RoleBinding과 ClusterRole/ClusterRoleBinding 이해
- 02. ServiceAccount와 User, kubeconfig 파일 이해: 특정 네임스페이스 권한만 가지는 사용자 생성
- 03. 멀티테넌시 환경의 쿠버네티스 구성: 사용자별 네임스페이스 단위의 권한 제한
- [06부] 실제 서비스 운영에 필요한 기술
- ▣ 23장: 애플리케이션 부하 테스트와 고가용성 테스트
- 01. 데모 용도의 방명록 서비스 설치
- 02. k6를 이용한 웹 부하 테스트
- 03. 애플리케이션 고가용성 테스트
- __23.3.1 특정 노드 내에서 실행 중인 모든 파드 종료하기
- __23.3.2 파드 삭제 및 노드 종료 시 서비스 이상 여부 검증
- ▣ 24장: 쿠버네티스 노드 변경과 추가
- 01. 컨트롤 플레인 노드 변경과 워커 노드 추가
예제 코드
- GitHub 저장소: https://github.com/wikibook/kubepractice
- ZIP 형식으로 다운로드: https://github.com/wikibook/kubepractice/archive/refs/heads/main.zip
정오표
-
26쪽, 표 2.1의 마지막 행 2열
kcb
==>
krb