이미 소장하고 있다면 판매해 보세요.
|
1부 쿠버네티스 만들어 보기
1장 도커 컨테이너 만들어 보기 1.1 쿠버네티스는 왜 도커가 필요한가? 1.2 도커 알아보기 ____1.2.1 도커란? ____1.2.2 컨테이너란? ____1.2.3 왜 컨테이너인가? ____1.2.4 그래서 도커란? ____1.2.5 준비: 도커 환경 만들기 ____1.2.6 컨테이너 실행하기 ____1.2.7 컨테이너의 틀이 되는 도커 이미지 ____1.2.8 컨테이너 이미지의 설계서인 Dockerfile ____1.2.9 도커 이미지 빌드하기 ____1.2.10 직접 만든 도커 이미지로 컨테이너 실행하기 ____1.2.11 도커 이미지 공개하기 ____1.2.12 Dockerfile 작성 팁 1.3 [만들기] 나만의 http server 컨테이너 실행하기 2장 쿠버네티스 클러스터 만들어 보기 2.1 쿠버네티스란? ____2.1.1 컨테이너를 쉽게 만들고 파기할 수 있게 된 이후의 상황 ____2.1.2 쿠버네티스의 특징 ____2.1.3 쿠버네티스 아키텍처 개요 ____2.1.4 다양한 쿠버네티스 클러스터 구축 방법 2.2 [만들고 고치기] 쿠버네티스 클러스터 만들고 지우기 3장 전체적인 설명 3.1 학습 흐름 3.2 사용하는 애플리케이션에 대해 4장 쿠버네티스 클러스터 위에 애플리케이션 만들기 4.1 쿠버네티스 클러스터 위에 애플리케이션 실행하기 ____4.1.1 리소스의 사양을 담은 매니페스트 ____4.1.2 컨테이너를 실행하기 위한 최소 구성 리소스: Pod ____4.1.3 리소스가 만들어지는 공간: 네임스페이스 4.2 [만들기] Pod 만들기 ____4.2.1 준비: Pod를 만들기 전에 쿠버네티스 클러스터가 준비되었는지 확인하기 ____4.2.2 매니페스트 사용해 보기 ____4.2.3 매니페스트를 쿠버네티스 클러스터에 적용하기 2부 애플리케이션을 망가뜨리면서 배우는 쿠버네티스 5장 트러블 슈팅 가이드와 kubectl 명령어 사용법 5.1 트러블 슈팅 가이드 ____5.1.1 트러블 슈팅에 도움이 되는 Pod의 STATUS 컬럼 5.2 kubectl로 현황 파악하기 ____5.2.1 리소스 확인하기: kubectl get ____5.2.2 리소스 상세 정보 출력하기: kubectl describe ____5.2.3 컨테이너의 로그 출력하기: kubectl logs 5.3 kubectl 명령어로 상세 정보 출력하기 ____5.3.1 디버그용 사이드카 컨테이너 시작하기: kubectl debug ____5.3.2 컨테이너를 그 자리에서 실행하기 kubectl run ____5.3.3 컨테이너에 로그인하기: kubectl exec ____5.3.4 포트 포워딩으로 애플리케이션에 접속하기 5.4 장애를 해결하기 위한 kubectl 명령어 ____5.4.1 매니페스트를 그 자리에서 편집하기: kubectl edit ____5.4.2 리소스를 삭제하기: kubectl delete 5.5 터미널을 더 편리하게 사용하기 위한 팁 ____5.5.1 자동 완성 설정하기 ____5.5.2 kubectl의 별명 설정하기 ____5.5.3 리소스 이름 축약하기 ____5.5.4 kubectl 작업을 도와주는 도구 ____5.5.5 kubectl 플러그인 사용해 보기 5.6 [고치기] 디버그해 보기 ____5.6.1 준비: Pod가 실행 중인 것을 확인하기 ____5.6.2 애플리케이션 망가뜨리기 ____5.6.3 애플리케이션 조사하기 6장 쿠버네티스 리소스 만들고 망가뜨리기 6.1 Pod의 라이프사이클 알기 6.2 Pod의 다중화를 위한 ReplicaSet과 Deployment ____6.2.1 ReplicaSet ____6.2.2 Deployment ____6.2.3 [만들고 고치기] Deployment를 만들고 망가뜨리기 6.3 Pod로의 접속을 도와주는 Service ____6.3.1 Service의 Type 알기 ____6.3.2 Service를 사용한 DNS ____6.3.3 [망가뜨리기] Service 망가뜨리기 6.4 Pod의 외부에서 정보를 읽어들이는 ConfigMap ____6.4.1 환경 변수로 읽어들이기 ____6.4.2 볼륨을 통해 설정 파일 읽어들이기 ____6.4.3 [망가뜨리기] ConfigMap 설정으로 인한 장애! 6.5 기밀 데이터를 다루기 위한 Secret ____6.5.1 환경 변수로 읽어들이기 ____6.5.2 볼륨을 사용해서 컨테이너의 설정 파일 읽어들이기 6.6 한 번만 실행하는 태스크를 위한 Job 6.7 Job을 정기적으로 실행하는 CronJob 7장 무상태 애플리케이션을 안전하게 만들기 7.1 애플리케이션의 헬스 체크 ____7.1.1 Readiness probe ____7.1.2 Liveness probe ____7.1.3 Startup probe ____7.1.4 [망가뜨리기] State는 Running이지만… 7.2 애플리케이션에 적절한 리소스 지정하기 ____7.2.1 Resource requests로 컨테이너의 리소스 사용량 요구하기 ____7.2.2 Resource limits로 컨테이너의 리소스 사용량 제어하기 ____7.2.3 리소스의 단위 ____7.2.4 Pod의 Quality of Service(QoS) 클래스 ____7.2.5 [망가뜨리기] 또 Pod가 고장났다 7.3 Pod 스케줄링의 편리한 기능 이해하기 ____7.3.1 Node selector로 노드 지정하기 ____7.3.2 Affinity와 Anti-affinity로 Pod 스케줄링을 유연하게 지정하기 ____7.3.3 Pod 분산을 위한 Pod Topology Spread Constraints 설정하기 ____7.3.4 Taint와 Toleration ____7.3.5 Tips: Pod Priority와 Preemption ____7.3.6 [망가뜨리기] Pod 스케줄링 실패 7.4 애플리케이션 스케일링하기 ____7.4.1 수평 스케일링 ____7.4.2 수직 스케일링 7.5 노드 정지에 대비하기 ____7.5.1 애플리케이션의 가용성을 보증하는 PodDisruptionBudget(PDB) 8장 전체 복습: 애플리케이션 고치기 8.1 준비 환경 만들기 8.2 애플리케이션 환경 구축하기 8.3 애플리케이션 업데이트하기 8.4 정상 상태 확인하기 8.5 원인 조사하기 3부 고장나도 움직이는 쿠버네티스 9장 쿠버네티스의 구조와 아키텍처 이해하기 9.1 쿠버네티스의 아키텍처에 대하여 9.2 아키텍처 개요 9.3 쿠버네티스 클러스터의 핵심인 컨트롤 플레인 9.4 애플리케이션 실행을 담당하는 워커 노드 9.5 쿠버네티스 클러스터에 접근하기 위한 CLI: kubectl 9.6 kubectl apply 이후 컨테이너가 실행될 때까지의 흐름 9.7 [만들고, 망가뜨리기] 쿠버네티스는 부서지지 않는다? ____9.7.1 준비: 클러스터 구축하기 ____9.7.2 hello-server 실행하기 ____9.7.3 컨트롤 플레인 정지하기 9.8 쿠버네티스를 확장하는 방법 10장 쿠버네티스 개발 워크플로 이해하기 10.1 쿠버네티스에 배포하기 ____10.1.1 Push형 배포 방법: CIOps ____10.1.2 Pull형 배포 방법: GitOps 10.2 쿠버네티스 매니페스트 관리 ____10.2.1 Helm ____10.2.2 Jsonnet ____10.2.3 자체 템플릿 ____10.2.4 Kustomize ____10.2.5 [만들기] Kustomize로 매니페스트를 이해하기 쉽게 만들기 11장 옵저버빌리티와 모니터링 다루기 11.1 관측 가능성에 대해 알아보자 ____11.1.1 정보 수집하기: 로그 ____11.1.2 측정값 처리하기: 메트릭스 ____11.1.3 통신 추적하기: 트레이스 11.2 모니터링에 대해 알아보기 ____11.2.1 정보를 시각화하기: 대시보드 ____11.2.2 이상 경보: 알림 11.3 [만들기] 모니터링 시스템 구축하기 ____11.3.1 Prometheus/Grafana 설치하기 ____11.3.2 메트릭스 수집 애플리케이션 실행하기 ____11.3.3 메트릭스 수집을 위한 설정 ____11.3.4 Prometheus에 접속하기 ____11.3.5 Grafana에 접속하기 12장 이 책 이후의 학습에 대하여 12.1 자격증 취득하기 12.2 쿠버네티스에서의 애플리케이션 운영 지식 넓히기 12.3 쿠버네티스의 장애 대응에 강해지기 12.4 쿠버네티스 커미터 되기 12.5 실력을 향상시키는 방법 ____12.5.1 공식 문서 읽기 ____12.5.2 내부 구현 코드 읽기 ____12.5.3 책으로 쿠버네티스에 대한 지식 넓히기 ____12.5.4 직접 쿠버네티스 클러스터 구축하기 ____12.5.5 커스텀 컨트롤러 만들기 |
이동규의 다른 상품
|
쿠버네티스, 이제 두렵지 않다!
쉬운 그림과 장애 실습으로 체득하는 쿠버네티스 실무 역량! "인프라 관련 작업을 하다 보면 동작하지 않을 때가 많다. 쿠버네티스를 사용하고는 있지만 사실 잘 몰라서 문제가 생기면 당황스럽다“ "그럼 쿠버네티스에 애플리케이션을 배포하고 망가뜨려보자! 정상 상태만 알고 있으면 망가졌을 때 곤란하다. 망가뜨리고 고칠 수 있다면 실제로 망가지더라도 안심할 수 있다. 원인을 조사하고 해결하는 방법을 알면 응용할 수 있다. 현장에서 활용할 수 있는 지식을 배워보자!" - 쿠버네티스의 핵심 개념과 동작 원리를 풍부한 일러스트로 쉽고 재미있게! - 현업에서 마주할 수 있는 다양한 문제 상황을 그대로 실습하며 배운다 - 쿠버네티스를 구축, 운영하는 실무 감각과 트러블슈팅 능력을 단단히 다진다 - 망가뜨리고 고치며 체득하는 쿠버네티스 문제 해결 가이드! [지은이 서문] 이 책은 『CodeZine』에서 연재한 ‘그림으로 시작하는 쿠버네티스’를 바탕으로 만들었습니다. 책을 만들면서 초심자에게 친절한 책이란 어떤 책일지 다시 한번 깊이 고민했습니다. 무언가를 처음 다룰 때 매뉴얼을 봐도 잘 안 되고 매뉴얼대로 해도 꼭 문제가 생겨 고민하던 과거의 제 모습을 기억하며 이 책을 구상했습니다. 또한 사람마다 학습 스타일이 다르다는 점도 염두에 두었습니다. 저의 학습 스타일은 다음과 같습니다. - 시각적인 정보를 바탕으로 학습한다. - 특히 만화로 되어 있으면 더 쉽게 입문한다. - 우선 직접 손을 움직여 돌려보면서 학습한다. 쿠버네티스 자체도 어려운데, 함께 등장하는 많은 용어를 이해하는 것이 어렵다고 한탄하던 과거의 제 모습을 떠올리며 쿠버네티스의 생태계도 최대한 설명했습니다. 기술이 빠르게 발전하여 동시에 다양한 지식을 습득해야 하는 상황에서 쿠버네티스의 문을 두드린 여러분에게 다시 한번 감사합니다! 이 책이 여러분의 여정의 첫걸음이 되기를 바랍니다. [옮긴이 서문] 쿠버네티스는 그 강력함만큼이나 개념과 구조가 복잡해, 처음 접하는 사람들에게는 진입 장벽이 다소 높습니다. 이 책은 그 장벽을 낮춰 주는 든든한 길잡이입니다. kind를 활용하여 누구나 로컬 환경에서 손쉽게 쿠버네티스를 실습할 수 있도록 구성되어 있으며, 단순한 명령어 나열에 그치지 않고 의도적으로 장애를 발생시키고, 그 원인을 찾아 복구하는 과정을 단계별로 안내합니다. 이를 통해 독자는 실제 현업에서 마주할 수 있는 당황스러운 상황을 미리 경험하고, 해결하는 감각을 체득할 수 있습니다. 또한 책 곳곳에는 만화를 곁들여 복잡한 개념을 한층 친근하게 설명합니다. 덕분에 쿠버네티스를 처음 배우는 독자라도 부담 없이 시작할 수 있고, 실습과 이론을 균형 있게 익히며 자연스럽게 실무 감각을 쌓을 수 있습니다. |
|
단편적인 지식만 전달하지 않고, 다양한 상황에서의 대처 방안을 익힐 수 있다. 특히 9장의 쿠버네티스 확장과 장애 대응 파트가 인상적이며, 실무에서 바로 적용해 볼 만하다. - 전봉규 (LG CNS, 소프트웨어 엔지니어)
|
|
쿠버네티스 에코시스템 내의 다양한 오픈 소스 도구를 폭넓게 다루며, 실제 운영 환경에서 바로 활용할 수 있는 실용적인 팁과 노하우를 제공한다. - 강상진 (아카마이 테크놀러지스, 솔루션스 아키텍트 )
|
|
쿠버네티스 리소스에 대해 설명하는 책은 많지만, 실제 서비스를 안정적으로 운영하기 위한 리소스들에 대해 잘 설명하는 책은 많지 않다. Probe, Pod affinity, Pod topology spread constraints, Pod distribution budge과 같은 내용이 대표적인데, 이 책에서 굉장히 이해하기 쉽게 잘 설명하고 있어서 인상적이었다. - 홍수영 (LINE+, 9년차 백엔드 개발자)
|
|
개념들을 그림으로 명확하게 풀어내 주어 훨씬 쉽게 이해할 수 있었다. 이전에는 단순히 복사해 붙여 넣는 수준에 그쳤던 명령들이 실제로 어떤 메커니즘을 통해 쿠버네티스의 상태를 변화시키는지 이해할 수 있었다. - 김종하 (서울 용산구 소재 스타트업, 1년차 백엔드 인프라 개발자)
|
|
kind와 같은 미니 클러스터를 이용해 쿠버네티스를 직접 설치하고, 의도적으로 장애를 발생시켜보며 에러 상황을 실습을 통해 체득할 수 있다는 점이 매우 인상적이다. - 이장훈 (메가존클라우드, DevOps엔지니어)
|
|
개념을 잡고 컨테이너를 활용하는 데 있어 가장 접근성이 뛰어난 책이라고 생각한다. 특히 다양한 쿠버네티스 구축 방법을 이해하는 데 큰 도움이 되었다. - 에드우드(필명) (제조업 재직, 데이터 분석가)
|
|
단순히 나열된 따라 하기식 구성에 그치지 않고, ‘일부러 망가뜨리고 다시 고치는’ 방식으로 전개된 내용이 매우 알차고 실용적이었다. - 정종훈 (우진플라임, IT관리자)
|
|
다소 딱딱하게 느껴질 수 있는 쿠버네티스를 즐겁고 친근한 방식으로 학습할 수 있다. 무엇보다 현업에서 실제로 마주할 수 있는 장애 상황을 의도적으로 재현하고, 이를 분석하고 해결해 가는 트러블슈팅 실습 과정이 훌륭하다. - 최성욱 (삼성전자 VD사업부 Security Lab, 보안 엔지니어)
|