Azure를 사용한 쿠버네티스의 개념 파악과 실전 응용이 책은 쿠버네티스를 처음 사용하는 업무 애플리케이션 개발자 및 도커에 대한 기초 지식이 있는 분을 대상으로 컨테이너 오케스트레이션 툴인 [쿠버네티스의 구조]와 [기본적인 기능과 내부 동작]을 설명한 책입니다.한정된 시간 안에서 효율적으로 이해할 수 있도록 가능한 한 추상적이고 난해한 말을 지양하고, 그림이나 일러스트를 넣어서 자세하고 알기 쉽게 설명하고 있습니다. 또한 실제로 시스템에 도입할 때 검토해야 하는 시스템의 가용성이나 확장성, 유지보수성과 같이 기초가 되는 개념도 설명하고 있습니다.
제1부 도입편CHAPTER 01 컨테이너와 쿠버네티스1.1 컨테이너 기술의 개요컨테이너란?컨테이너 애플리케이션 개발의 흐름1.2 쿠버네티스의 개요분산 환경에서 컨테이너 운용 관리쿠버네티스의 특징쿠버네티스의 도입쿠버네티스의 유스케이스1.3 정리CHAPTER 02 쿠버네티스의 환경 구축2.1 컨테이너 애플리케이션 개발의 흐름쿠버네티스를 사용한 개발 및 운용의 흐름Azure의 쿠버네티스 관련 서비스2.2 개발 환경의 준비Visual Studio Code 설치Azure CLI 명령의 설치Kubectl 명령의 설치Azure Cloud Shell 이용2.3 컨테이너 이미지의 빌드와 공개Azure Container RegistryACR을 사용한 컨테이너 이미지 빌드와 공유2.4 Azure를 사용한 쿠버네티스 클러스터 작성AKS를 사용한 클러스터 구축kubectl 명령을 사용한 클러스터의 기본 조작2.5 정리CHAPTER 03 쿠버네티스를 움직여보자3.1 애플리케이션의 디플로이디플로이의 기본 흐름3.2 매니페스트 파일의 작성컨테이너 애플리케이션 설정하기서비스 설정하기3.3 클러스터에서 리소스 작성애플리케이션 디플로이하기서비스 공개하기3.4 애플리케이션의 동작 확인3.5 정리제2부 기본편CHAPTER 04 쿠버네티스의 요점4.1 쿠버네티스의 개념Immutable Infrastructure선언적 설정자기 복구 기능4.2 쿠버네티스의 구조스케줄링과 디스커버리쿠버네티스의 서버 구성쿠버네티스의 컴포넌트클러스터에 액세스하기 위한 인증 정보4.3 쿠버네티스의 리소스애플리케이션 실행(Pod/ReplicaSet/Deployment)네트워크 관리(Service/Ingress)애플리케이션 설정 정보 관리(ConfigMap/Secrets)배치 잡 관리(Job/CronJob)4.4 매니페스트 파일매니페스트 파일의 기본YAML의 문법4.5 라벨을 사용한 리소스 관리라벨(Label)LabelSelector를 사용한 리소스 검색4.6 쿠버네티스의 리소스 분리4.7 정리CHAPTER 05 컨테이너 애플리케이션의 실행5.1 포드를 사용한 컨테이너 애플리케이션의 관리포드매니페스트 파일포드의 작성, 변경, 삭제포드의 디자인 패턴5.2 포드의 스케줄링 구조포드가 어떻게 배치되는가?포드를 배치하는 노드는 어떻게 정하는가?포드를 움직이는 노드를 명시적으로 설정하기5.3 포드를 효율적으로 움직이자노드의 CPU와 메모리 리소스 확인하기포드에 필요한 메모리와 CPU를 할당하기포드의 메모리와 CPU의 상한값 설정하기포드에 오류가 발생하면 어떻게 움직이는가?포드의 우선순위(QoS)5.4 포드를 감시하자컨테이너 애플리케이션의 감시HTTP 리퀘스트의 반환값을 체크하기TCP Socket으로 연결할 수 있는지 체크하기명령의 실행 결과를 체크하기5.5 리플리카셋으로 여러 포드를 관리하자리플리카셋(ReplicaSet)매니페스트 파일리플리카셋의 작성, 변경, 삭제클러스터 안의 상태를 어떻게 제어하는가?포드 장애가 발생하면 어떻게 될까?노드 장애가 발생하면 포드는 어떻게 될까?5.6 부하에 따라 포드의 수를 바꿔 보자스케일러빌리티포드를 수동으로 수평 스케일하기포드를 자동으로 수평 스케일하기HPA의 구조5.7 정리CHAPTER 06 애플리케이션 디플로이6.1 디플로이먼트를 사용한 애플리케이션 디플로이애플리케이션의 버전업 개념디플로이먼트매니페스트 파일디플로이먼트 작성, 변경, 삭제6.2 디플로이먼트의 구조업데이트 처리 방식롤아웃롤백롤아웃 조건롤링 업데이트 제어블루/그린 디플로이먼트6.3 애플리케이션의 설정 정보를 관리하자애플리케이션의 설정 정보 관리ConfigMap 값 참조비밀번호와 키 관리Secrets 값 참조6.4 정리제3부 실전편CHAPTER 07 아키텍처와 설계 원칙7.1 쿠버네티스의 아키텍처인프라스트럭처와의 관계7.2 쿠버네티스의 설계 원칙Reconciliation Loops와 레벨 트리거 로직API의 watch 옵션이벤트 체인7.3 서비스와 제품의 구축쿠버네티스 Conformance Partner쿠버네티스 클러스터에 필요한 인프라스트럭처쿠버네티스 클러스터 구축에 필요한 작업AKS의 아키텍처와 Cloud Controller Manager7.4 정리CHAPTER 08 가용성(Availability)8.1 쿠버네티스의 가용성마스터의 가용성(모두 액티브한 etcd와 API Server)마스터의 가용성(액티브/스탠바이 컴포넌트)노드의 가용성분산 수를 어떻게 할까? (마스터)분산 수를 어떻게 할까? (노드)8.2 인프라스트럭처의 시점Blast Radius(폭발 반경)소프트웨어적인 Blast Radius배치 예물리 서버를 의식한 배치랙을 의식한 배치데이터 센터를 의식한 배치광역 재해를 의식한 배치AKS의 구축 예8.3 정리CHAPTER 09 확장성(Scalability)9.1 쿠버네티스 노드의 수평 자동 스케일Cluster Autoscaler9.2 AKS에 있어서 Cluster AutoscalerPending 상태를 만들어 낸다Cluster Autoscaler의 도입노드 스케일 아웃노드 수의 상한, 하한 설정노드 스케일 인인프라스트럭처 조작 권한 및 시크릿 관리9.3 기타 자동 스케일HPA와 Cluster Autoscaler의 연동쿠버네티스 외부의 메트릭을 사용한 자동 스케일9.4 정리CHAPTER 10 유지보수성(Manageability)10.1 쿠버네티스 운용에서 필요한 업데이트 및 업그레이드 작업10.2 서버 업데이트노드 재시작의 영향을 최소한으로 하는 장치Cordon/UncordonDrainPodDisruptionBudget노드 재시작을 자동으로 수행하려면10.3 쿠버네티스 컴포넌트 업데이트kubeadm을 사용한 예(v1.10 -> v1.11)업그레이드 전략(인플레이스)업그레이드 전략(블루/그린 디플로이먼트)10.4 정리CHAPTER 11 리소스 분리(Security)11.1 쿠버네티스 리소스의 분리 단위사람과 조직, 책임 범위클러스터 분리의 장단점11.2 네임스페이스를 사용한 분리네임스페이스 정리11.3 쿠버네티스의 계정사용자 계정(User Account)서비스 계정(Service Account)11.4 쿠버네티스의 인증과 인가인증인가Admission Control11.5 RBAC(Role Based Access Control)리소스 표현과 조작Role과 RoleBinding사용자와 Role의 연결서비스 계정과 Role의 연결11.6 리소스 이용량의 제한LimitRangeResourceQuota세 가지 상한 설정 기능의 구분11.7 정리CHAPTER 12 관측가능성(Observability)12.1 관측가능성이란용어의 탄생 배경쿠버네티스 환경의 관측가능성12.2 관측 대상과 방법메트릭로그분산 트레이싱12.3 대표적인 소프트웨어와 서비스12.4 AKS의 메트릭 수집과 가시화, 로그 분석Azure MonitorAzure Monitor for ContainersAzure Log Analytics12.5 정리APPENDIX 명령 레퍼런스A.1 kubectl 명령A.2 Azure CLI 명령
쿠버네트스를 사용한 인프라 구축 입문이 책은 쿠버네티스의 기본적인 구조를 설명하고 있는 입문서입니다. 쿠버네티스에는 추상화된 개념이 많아 초보자가 배우기에는 조금 허들이 높을 수 있지만 이 책에서는 그 내부에서 어떻게 움직이고 있는지, 왜 그런 동작을 하는지를 중심으로 알기 쉬운 말과 그림으로 정리하여 설명하고 있습니다. 또 실제로 시스템에 도입할 때 검토해야 하는 시스템의 가용성이나 확장성, 유지보수성 등과 같은 실전적인 개념도 자세하게 설명하고 있습니다. 쿠버네티스는 분산 시스템에서 컨테이너를 운용하기 위한 노하우로 가득 채워진 세련된 오 픈소스 소프트웨어입니다. 전 세계의 우수한 기술자가 개발에 참여하여 지금도 개발이 활발히 진행되고 있기 때문에 이 책에서 모든 기능을 망라하여 소개할 수는 없습니다. 하지만 이 책을 통해 기초가 되는 개념을 공유하고 앞으로 독자 여러분과 함께 진화해 가는 쿠버네티스를 계속 배울 수 있는 계기가 마련된다면 좋겠습니다.[책에서 다루는 주요 키워드]- 컨테이너 기술과 쿠버네티스의 개요- Azure를 사용한 쿠버네티스 클러스터 작성- 애플리케이션의 디플로이- 포드를 사용한 컨테이너 애플리케이션의 관리- 리플리카셋으로 여러 포드를 관리- 디플로이먼트를 사용한 애플리케이션 디플로이- 쿠버네티스의 가용성- 쿠버네티스 운용에서 필요한 업데이트와 업그레이드 작업- 쿠버네티스의 인증과 인가- AKS의 메트릭 수집과 가시화, 로그 분석