알라딘

헤더배너
상품평점 help

분류

이름:마르코 룩샤 (Marko Lukša)

최근작
2020년 3월 <쿠버네티스 인 액션>

쿠버네티스 인 액션

★ 이 책에서 다루는 내용 ★ ■ 쿠버네티스 내부 구조 ■ 클러스터상에서 컨테이너 배포 ■ 클러스터 보안 ■ 중단 없이 애플리케이션 갱신 ★ 이 책의 대상 독자 ★ 도커나 컨테이너 오케스트레이션 시스템에 익숙하지 않은 초, 중급 소프트웨어 개발자를 대상으로 한다. 주로 애플리케이션 개발자를 대상으로 설명하지만, 운영 관점에서 애플리케이션 관리 개요도 제공한다. 이는 다수 서버 환경에서 컨테이너화된 애플리케이션을 실행하고 관리하는 데 관심이 있는 모든 사용자에게 적합하다. 컨테이너 기술을 배우고 여러 개의 관련된 컨테이너를 규모에 맞게 조정하고자 하는 입문자나 고급 소프트웨어 엔지니어들은 쿠버네티스 환경에서 애플리케이션을 개발하고 컨테이너화하며 실행하는 데 필요한 전문 지식을 얻게 될 것이다. 이전의 컨테이너 기술이나 쿠버네티스 관련 경험을 필요로 하진 않는다. 주제를 점진적으로 상세히 설명하고 있으며, 비전문가 개발자가 이해하기에 어려운 애플리케이션 소스 코드는 사용하지 않았다. 그러나 최소한 프로그래밍, 컴퓨터 네트워킹, 리눅스의 기본 명령 실행과 같은 기본적인 지식과 HTTP처럼 잘 알려진 프로토콜에 관해 이해하고 있어야 한다. ★ 이 책의 구성 ★ 이 책은 18장을 세 부분으로 나눠 설명한다. 1부는 도커와 쿠버네티스를 간략하게 소개하고, 쿠버네티스 클러스터를 설치하는 방법과 간단한 애플리케이션을 실행하는 방법 등을 소개한다. 1부에는 두 개의 장이 있다. 1장에서는 쿠버네티스가 무엇이고 어떻게 생겨났으며 규모에 맞게 애플리케이션을 관리해야 하는 오늘날의 문제를 해결하는 데 어떻게 도움이 되는지 설명한다. 2장에서는 컨테이너 이미지를 빌드해 쿠버네티스 클러스터에서 실행하는 방법의 실습 튜토리얼을 제공한다. 또한 로컬에서 단일 노드 쿠버네티스 클러스터를 실행하는 방법과 클라우드에서 다중 노드 클러스터를 실행하는 방법을 설명한다. 2부에서는 쿠버네티스에서 애플리케이션을 실행하기 위해 반드시 이해해야 하는 핵심 개념을 소개한다. 2부의 각 장은 다음과 같다. 3장에서는 쿠버네티스의 기본 구성 블록인 파드(Pod)를 소개하고, 레이블(label)을 통해 파드와 기타 쿠버네티스의 오브젝트를 정리하는 방법을 설명한다. 4장에서는 컨테이너를 자동으로 다시 시작해 쿠버네티스가 애플리케이션을 정상적으로 유지하는 방법을 알려준다. 또한 관리되는 파드(managed pod)를 적절히 실행하고, 수평 확장하며, 클러스터 노드 장애에 내성을 갖게 하고 사전 정의된 시간 또는 주기적으로 실행하는 방법을 알아본다. 5장에서는 파드가 제공하는 서비스를 클러스터 내외부 클라이언트에게 노출시키는 방법을 보여준다. 또한 클러스터에서 실행 중인 파드가 클러스터 내부나 외부에 상주하는지에 관계없이 서비스를 검색하고 액세스하는 방법을 보여준다. 6장에서는 같은 파드에서 실행되는 여러 개의 컨테이너가 파일을 공유하는 방법과 퍼시스턴트 스토리지(persistent storage)를 관리하고 파드가 접근할 수 있게 하는 방법을 설명한다. 7장에서는 설정 데이터와 자격증명과 같은 중요 정보를 파드 내부에서 실행되는 애플리케이션에 전달하는 방법을 보여준다. 8장에서는 애플리케이션이 실행 중인 쿠버네티스 환경 관련 정보를 얻는 방법과 클러스터 상태를 변경하기 위해 쿠버네티스와 통신하는 방법을 설명한다. 9장에서는 디플로이먼트(Deployment) 개념을 소개하고 쿠버네티스 환경에서 애플리케이션을 실행하고 업데이트하는 적절한 방법을 안내한다. 10장에서는 안정적인 아이덴티티와 상태를 필요로 하는 스테이트풀(stateful) 애플리케이션을 실행하는 방법을 소개한다. 3부는 쿠버네티스 클러스터의 내부를 깊이 들여다보며 몇 가지 추가적인 개념을 소개하고 1, 2부에서 배운 것을 좀 더 높은 수준에서 살펴본다. 마지막 부의 구성은 다음과 같다. 11장은 쿠버네티스 클러스터를 구성하는 모든 구성 요소와 각 요소의 역할을 설명한다. 또한 파드가 네트워크를 이용해 통신하는 법과 서비스가 여러 파드를 로드 밸런싱하는 방법을 설명한다. 12장에서는 인증(authentication)과 인가(authorization)를 사용해 쿠버네티스 API 서버를 안전하게 보호하는 방법을 설명한다. 13장에서는 파드가 노드의 리소스에 접근하는 방법과 클러스터 관리자가 파드의 리소스 접근을 막는 방법을 설명한다. 14장에서는 애플리케이션이 사용할 수 있는 컴퓨팅 리소스를 제약하고, 애플리케이션의 서비스 품질(QoS, Quality of Service) 보증을 구성하고, 개별 애플리케이션의 리소스 사용량을 모니터링하는 방법을 다룬다. 또한 사용자가 너무 많은 리소스를 사용하는 것을 방지하는 방법을 알려준다. 15장에서는 애플리케이션에서 실행 중인 레플리카(replicas) 수를 자동으로 확장하도록 쿠버네티스를 설정하는 방법과 현재 클러스터 노드 수 이상으로 애플리케이션을 수용하기 위해 클러스터 크기를 늘리는 방법을 설명한다. 16장에서는 특정 노드에만 파드가 스케줄링되게 하거나 파드가 다른 노드로 예약되지 않게 하는 방법을 알려준다. 또한 파드가 함께 스케줄링되거나 함께 스케줄링되지 않게 하는 방법을 살펴본다. 17장에서는 애플리케이션을 쿠버네티스 클러스터에 알맞게 개발하는 방법을 알려준다. 또한 개발 중 마찰을 줄이기 위해 개발 및 테스트 workflow를 설정하는 방법 관련 지침을 몇 가지 제공한다. 18장에서는 사용자 정의 오브젝트(custom objects)로 쿠버네티스를 확장할 수 있는 방법과 다른 사람들이 어떤 방식으로 엔터프라이즈급 애플리케이션 플랫폼을 만들었는지를 보여준다. 위 내용을 통해 쿠버네티스의 각 구성 요소를 알게 되고 점차적으로 kubectl 명령줄 도구를 사용하는 법을 배우게 될 것이다.

Kubernetes in Action

레드햇(Red Hat)에서 몇 년 근무하다가 2014년 말, 신설된 클라우드 인에이블먼트(Cloud Enablement) 팀에 배정됐다. 새 팀의 임무는 쿠버네티스상에서 개발된 회사의 미들웨어 제품을 오픈시프트 컨테이너 플랫폼(OpneShift Container Platform)으로 가져오는 것이었다. 그 당시 쿠버네티스는 정식으로 발표되지 않은 초기 버전(v1.0)이었다. 소프트웨어의 적절한 방향을 설정하고 쿠버네티스가 제공하는 기능을 이용하려면 쿠버네티스의 모든 기능을 신속하게 파악해야 했다. 문제가 발생했을 때, 우리가 일을 잘못한 건지 아니면 쿠버네티스 초기 버전의 버그인지를 구분해내기가 어려웠다. 그 후로 쿠버네티스도 눈부시게 발전했고 나도 쿠버네티스를 많이 이해하게 됐다. 나는 쿠버네티스라는 말조차 생경할 때 쿠버네티스를 사용하기 시작했다. 지금은 클라우드와 온프레미스 데이터 센터(on-premises datacenters)에서 애플리케이션을 실행하는 데 가장 빠르게 성장하고 가장 많이 사용되는 방법으로, 소프트웨어 엔지니어라면 모르는 사람이 없을 정도다. 쿠버네티스를 접한 지 한 달쯤 뒤에 오픈시프트/쿠버네티스(OpenShift/Kubernetes)에서 JBoss 와일드플라이(JBoss WildFly) 애플리케이션 서버 클러스터를 실행하는 방법을 두 개의 글로 작성해 블로그에 게시했다. 그 당시 간단한 블로그 포스트를 보고 매닝 출판사의 담당자가 쿠버네티스에 대한 책을 써달라고 연락할 것이라고는 상상도 못했다. 내가 아니더라도 책을 쓸만한 누군가에게 연락했을 그 제안을 거절하지 않았다. 그렇게 나는 이 책을 쓰게 됐다. 1년 반 넘게 글쓰기와 연구에 매진한 끝에 마침표를 찍었다. 이 여정은 굉장히 값진 경험이었다. 그저 사용자로서 배울 때보다 책을 쓰면서 기술에 관해 훨씬 더 자세히 알 수 있었다. 이 과정에서 쿠버네티스에 대한 지식이 확장됐고, 쿠버네티스 자체도 진화했으므로 이전에 썼던 내용을 고치고 다듬어야 했다. 나는 완벽주의자다. 이 책에 만족하지는 않는다. 그럼에도 MEAP 프로그램(Manning Early Access Program)의 수많은 독자가 이 책을 쿠버네티스를 향한 훌륭한 안내서로 평가해주셔서 기쁘다. 내 목표는 독자가 기술 자체를 이해하고 도구를 사용해 쿠버네티스 클러스터에 애플리케이션을 효율적으로 개발하고 배포할 수 있도록 가르치는 데 있다. 이 책은 실제로 적정한 수준의 가용성을 갖는 쿠버네티스 클러스터를 실제로 설정하거나 유지하는 것에 중점을 두지 않았다. 대신에 마지막 파트를 통해 독자가 그러한 클러스터의 구성이 어떻게 되는지 확실히 이해할 수 있게 작성했다. 그리고 이런 주제를 이해하기 쉬운 추가적인 리소스를 포함하고 있다. 쿠버네티스라는 굉장한 시스템을 통해 최대한의 결과를 얻는 방법을 알아가며 이 책을 즐겁게 읽어 나가길 바란다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자