★ 이 책에서 다루는 내용 ★
- 쿠버네티스가 다루는 분산 시스템 문제에 대한 탐구
- 도커 같은 컨테이너를 사용해 컨테이너화된 애플리케이션 개발
- 도커 이미지 포맷과 컨테이너 런타임을 사용해 쿠버네티스에서 컨테이너 생성 및 실행
- 운영 환경에서 애플리케이션을 실행하는 데 필수적인 핵심 쿠버네티스 개념 API 객체 탐구
- 다운타임과 오류 없이 새로운 소프트웨어 버전을 안전하게 배포
- 쿠버네티스에서 실제 애플리케이션을 개발하고 배포하는 방법에 대한 예제 참조
★ 이 책의 대상 독자 ★
분산 시스템에 입문하려는 사람이든 이미 클라우드 기반 시스템을 개발해본 경험이 있는 사람이든 관계없이, 컨테이너와 쿠버네티스는 모두에게 새로운 수준의 속도, 민첩성, 신뢰성, 효율성을 가져다 줄 것이다. 이 책은 쿠버네티스 클러스터 오케스트레이터(Orchestrator) 및 그 도구와 API를 사용해 분산 애플리케이션의 개발, 배포, 유지 관리를 향상하는 방법에 관한 지침을 전달한다. 쿠버네티스에 대한 경험이 없는 상태에서 이 책을 최대한 활용하려면 서버 기반 애플리케이션의 개발과 배포에 대한 지식을 갖추고 있어야 한다. 로드밸런서(Load Balancer)나 네트워크 스토리지(Network Storage) 같은 용어는 필수는 아니지만 익숙하다면 도움이 된다. 마찬가지로 리눅스, 리눅스 컨테이너, 도커(Docker)에 대한 이해 역시 필수는 아니지만 알고 있다면 이 책을 좀 더 효율적으로 이용할 수 있다
★ 이 책의 구성 ★
1장은 쿠버네티스의 장점을 개념적인 상위 수준에서 설명한다. 쿠버네티스를 처음 접하는 경우 이 책의 나머지 부분을 모두 읽어야 하는 이유에 대해서도 알 수 있다.
2장은 컨테이너와 컨테이너 애플리케이션에 대해 소개한다. 도커 관련 경험이 없는 경우라면 도커에 대한 유용한 소개를 얻게 될 것이며, 이미 도커를 경험해봤다면 복습하는 기회가 될 것이다.
3장은 쿠버네티스 배포에 대해 다룬다. 이 책의 대부분에서 쿠버네티스 사용에 대해 설명하지만 사용 전에 클러스터를 동작시켜야 한다. 운영 환경에서 클러스터를 동작시키는 것은 이 책의 범위를 벗어나지만, 쿠버네티스 사용에 대한 이해를 높이고자 이 장에서는 클러스터를 생성하는 쉬운 방법 몇 가지를 보여줄 것이다.
5장을 시작으로 쿠버네티스를 사용해 애플리케이션을 배포하는 방법을 자세히 다룬다. 5장에서는 포드(Pod), 6장에서는 라벨(Label)과 애노테이션(Annotation), 7장에서는 서비스(Service), 8장에서는 레플리카세트(ReplicaSet)에 대해 각각 다룬다. 방금 소개한 개념들은 쿠버네티스에서 서비스 배포의 핵심적인 기본 사항이다.
이후 좀 더 쿠버네티스에 특화된 주제를 다룬다. 9장에서는 데몬세트(DeamonSet), 10장에서는 잡(Job), 11장에서는 ConfigMap과 시크릿(Secret)을 다룬다. 이 개념들은 많은 운영 환경 애플리케이션에서 핵심 사항이다. 그렇지만 이제 막 쿠버네티스를 배우는 중이라면 우선 이 부분은 건너뛰고 좀 더 많은 경험과 전문 지식을 쌓은 후 다시 학습할 것을 권장한다.
12장에서는 애플리케이션의 생명주기와 밀접한 관련이 있는 디플로이먼트(Deployment)에 대해 다루며, 13장에서는 쿠버네티스로 스토리지(Storage) 연계에 대해 알아본다. 마지막으로 쿠버네티스를 사용해 실제 애플리케이션을 개발하고 배포하는 예제로 이 책을 마무리하고자 한다.