◈ 이 책에서 다루는 내용 ◈
◆ 간단한 클러스터를 생성해 쿠버네티스 동작 방식 살펴보기
◆ 쿠버네티스를 통한 애플리케이션 배포 방법 자세히 알아보기
◆ 데몬셋, 잡, 컨피그맵 및 시크릿과 같은 쿠버네티스의 특수 객체 처리하기
◆ 완전한 애플리케이션의 라이프 사이클을 관리하는 디플로이먼트 고찰하기
◆ 애플리케이션 배포의 보안 강화하기
◆ 멀티클러스터 애플리케이션을 배포하고 프로그래밍 언어를 통해 쿠버네티스에 액세스하기
◈ 이 책의 대상 독자 ◈
분산 시스템을 처음 접하든, 아니면 수년간 클라우드 네이티브 시스템을 배포한 경험이 있는 사용자든 관계없이 컨테이너와 쿠버네티스는 새로운 수준의 속도, 민첩성, 신뢰성, 효율성을 달성하는 데 도움이 될 수 있다. 이 책은 쿠버네티스 클러스터 오케스트레이터, 도구와 API를 사용해 분산 애플리케이션의 개발, 배포, 보안, 유지 관리를 개선하는 방법을 설명한다. 쿠버네티스에 대한 사전 경험이 없는 상태에서 이 책을 최대한 활용하려면 서버 기반 애플리케이션에 대한 빌드와 배포 지식을 갖추고 있어야 한다. 또한 로드밸런서와 네트워크 스토리지 같은 개념에 익숙하다면 내용을 이해하는 데 도움이 된다. 마찬가지로 리눅스, 리눅스 컨테이너, 도커에 대한 경험 역시 필수는 아니지만 경험이 있다면 이 책을 최대한 활용하는 데 있어 큰 도움이 될 것이다.
◈ 이 책의 구성 ◈
1장, ‘쿠버네티스 소개’에서는 쿠버네티스의 장점을 상위 수준 개념으로 소개하며, 쿠버네티스를 처음 접하는 경우 이 책의 나머지 부분을 모두 읽어야 하는 이유를 설명한다.
2장, ‘컨테이너 생성과 실행’에서는 컨테이너 및 컨테이너화된 애플리케이션 개발 방법을 자세히 소개한다. 이전에 도커(Docker)를 사용해본 경험이 있다면 2장이 매우 유용할 것이다. 이미 도커 전문가라면 다시 한번 리뷰할 수 있는 기회가 될 것이다.
3장, ‘쿠버네티스 클러스터 배포’에서는 쿠버네티스를 배포하는 방법을 설명한다. 이 책의 내용 대부분은 쿠버네티스 사용 방법에 중점을 두고 있지만 클러스터를 본격적으로 사용하기에 앞서 클러스터를 구동하고 이를 실행해야 한다. 운영 환경 구성을 위해 클러스터를 실행하는 방법은 이 책에서 다루지 않지만 3장에서 클러스터를 생성하는 쉬운 방법을 통해 쿠버네티스 사용 방법을 이해할 수 있다.
4장, ‘공통 kubectl 명령’에서는 쿠버네티스 클러스터와 상호작용하는 데 사용되는 공통 명령을 소개한다.
5장부터는 쿠버네티스를 사용한 애플리케이션 배포 방법을 자세히 살펴보는데, 파드(5장), 라벨과 애노테이션(6장), 서비스(7장), 인그레스(8장), 레플리카셋(9장)을 다룬다. 이들은 쿠버네티스에서 서비스를 배포하는 데 필요한 핵심 사항들이다. 그런 다음 완전한 애플리케이션의 생명주기와 밀접하게 관련이 있는 디플로이먼트(10장)를 살펴본다.
이후에는 쿠버네티스에서 데몬셋(11장), 잡(12장), 컨피그맵과 시크릿(13장) 같은 좀 더 쿠버네티스에 특화된 객체를 다룬다. 이 개념들은 대부분의 운영 환경 애플리케이션에 필수적이지만 쿠버네티스를 학습하는 단계에서는 일단 건너뛰고 더 많은 경험과 전문 지식을 쌓고 난 후에 살펴보는 것이 더 도움이 될 수 있다.
다음으로 역할 기반 접근 제어(14장)를 소개하고 서비스 메시(15장) 및 쿠버네티스와 스토리지 연계(16장)를 살펴본다. 쿠버네티스 확장(17장)과 프로그래밍 언어에서 쿠버네티스 접근(18장)을 살펴본다. 그런 다음 쿠버네티스에서 애플리케이션 보안(19장), 쿠버네티스 정책과 거버넌스(20장)에 초점을 맞춰 설명한다. 마지막으로 멀티클러스터에서 애플리케이션을 개발하고 배포하는 방법(21장)에 대한 몇 가지 예제와 소스 컨트롤 시스템에서 애플리케이션을 구성하는 방법(22장)을 살펴보는 것으로 마무리한다.
◈ 옮긴이의 말 ◈
클라우드 컴퓨팅 분야의 발전과 함께 최근 많은 기업이 온프레미스 자원을 클라우드로 전환해 IT 인프라 환경을 베어메탈에서 가상머신으로 전환했다. 그 결과 인프라 자원을 공유함으로써 좀 더 효율적으로 사용하고 비용을 절감할 수 있었다. 이러한 장점에도 높은 오버헤드, 보안 취약점, 낮은 성능 등 여러 단점이 부각됐다. 이처럼 가상머신의 한계를 느끼게 된 사용자들은 좀 더 안전하고 경량화된 도커/컨테이너 기술에 관심을 갖게 됐으며, 최근 많은 기업이 애플리케이션의 개발과 배포 환경을 가상머신에서 격리 기반의 도커/컨테이너로 변경하고 있다. 이처럼 기업 내에서 도커/컨테이너 전환이 점점 더 가속화되고 관리해야 하는 컨테이너의 수가 많아지면서 컨테이너 오케스트레이션(Container Orchestration) 기술의 필요성이 대두됐다. 컨테이너 오케스트레이션이란 컨테이너의 배포, 관리, 확장, 네트워킹 등을 자동화하는 기술을 의미한다. 초기에는 컨테이너 오케스트레이션을 위한 여러 관리 도구가 등장했지만 오늘날에는 쿠버네티스가 사실상의 업계 표준으로 자리매김했다. 쿠버네티스는 구글에서 개발해 오픈소스로 공개한 관리 시스템이며, 수백 또는 수천 개의 컨테이너를 관리하는 구글의 기술과 경험이 집약돼 있다. 따라서 대규모 환경에서 도커/컨테이너를 효율적으로 관리할 수 있는 쿠버네티스에 대한 체계적인 이해와 학습이 필요한 시점이다. 이 책은 세 번째 개정을 통해 최근에 개념이 추가된 쿠버네티스 보안, 서비스 메시 등을 포함해 쿠버네티스 학습에 필요한 필수 요소를 예제와 함께 다루고 있으며, 실제 운영 환경에 정책을 정의하고 컨테이너화된 애플리케이션을 배포하는 것은 물론 보안을 강화하며 관리할 수 있는 방법까지도 설명하고 있다. 이 책이 클라우드 환경에 쿠버네티스 도입을 꿈꾸는 모든 담당자에게 큰 도움이 되길 바란다.