[책만 브랜드전] 라마와 앵무새 에코백 증정 (포인트 차감)
이미 소장하고 있다면 판매해 보세요.
1장 개요
__클라우드 네이티브로 가는 길 __분산 기본 요소 ____컨테이너 ____파드 ____서비스 ____레이블 ____애노테이션 ____네임스페이스 __정리 __참고 자료 [1부] 기본 패턴 2장 예측 범위 내의 요구사항 __문제 __해결책 ____런타임 의존성 ____자원 프로파일 ____파드 우선순위 ____프로젝트 자원 ____용량 계획 __정리 __참고 자료 3장 선언적 배포 __문제 __해결책 ____롤링 배포 ____고정 배포 ____블루-그린 릴리스 ____카나리아 릴리스 __정리 __참고 자료 4장 정상상태 점검 __문제 __해결책 ____프로세스 정상상태 확인 ____라이브니스 점검 ____레디니스 점검 __정리 __참고 자료 5장 수명주기 관리 __문제 __해결책 ____시그텀 신호 ____시그킬 신호 ____시작 후 훅 ____종료 전 훅 ____그 밖의 수명주기 제어 __정리 __참고 자료 6장 자동 배치 __문제 __해결책 ____가용한 노드 자원 ____컨테이너 자원 요구 ____배치(Placement) 정책 ____스케줄링 프로세스 ____노드 어피니티 ____파드 어피니티와 파드 안티어피니티 ____테인트와 톨러레이션 __정리 __참고 자료 [2부] 행동 패턴 7장 배치 잡 __문제 __해결책 __정리 __참고 자료 8장 주기적 잡 __문제 __해결책 __정리 __참고 자료 9장 데몬 서비스 __문제 __해결책 __정리 __참고 자료 10장 싱글톤 서비스 __문제 __해결책 ____애플리케이션 외부 잠금 ____애플리케이션 내부 잠금 ____파드 디스럽션 버짓(Pod Disruption Budget) __정리 __참고 자료 11장 스테이트풀 서비스 __문제 ____스토리지 ____네트워킹 ____식별자 ____순서성 ____기타 요구사항 __해결책 ____스토리지 ____네트워킹 ____식별자 ____순서성 ____기타 기능 __정리 __참고 자료 12장 서비스 디스커버리 __문제 __해결책 ____내부 서비스 디스커버리 ____수동 서비스 디스커버리 ____클러스터 외부의 서비스 디스커버리 ____애플리케이션 계층 서비스 디스커버리 __정리 __참고자료 13장 자기 인식 __문제 __해결책 __정리 __참고자료 [3부] 구조 패턴 14장 초기화 컨테이너 __문제 __해결책 __정리 __참고 자료 15장 사이드카 __문제 __해결책 __정리 __참고자료 16장 어댑터 __문제 __해결책 __정리 __참고자료 17장 앰배서더 __문제 __해결책 __정리 __참고자료 [4부] 설정 패턴 18장 EnvVar 설정 __문제 __해결책 __정리 __참고자료 19장 설정 자원 __문제 __해결책 __정리 __참고자료 20장 불변 설정 __문제 __해결책 ____도커 볼륨 ____쿠버네티스 초기화 컨테이너 ____오픈시프트 템플릿 __정리 __참고자료 21장 설정 템플릿 __문제 __해결책 __정리 __참고자료 [5부] 고급 패턴 22장 컨트롤러 __문제 __해결책 __정리 __참고자료 23장 오퍼레이터 __문제 __해결책 ____사용자정의 자원 정의 ____컨트롤러와 오퍼레이터 분류 ____오퍼레이터 개발과 배포 __예제 __정리 __참고자료 24장 탄력적 스케일 __문제 __해결책 ____수동 수평 스케일링 ____수평 파드 오토스케일링 ____수직 파드 오토스케일링 ____클러스터 오토스케일링 ____스케일링 레벨 __정리 __참고자료 25장 이미지 빌더 __문제 __해결책 ____오픈시프트 빌드 ____케이네이티브 빌드 __정리 __참고자료 |
저빌긴 이브리암
관심작가 알림신청Bilgin Ibryam
저롤란트 후스
관심작가 알림신청Roland Huß
역안승규
관심작가 알림신청역서한배
관심작가 알림신청
[이 책의 구성]
- 1부, ‘기본 패턴’에서는 쿠버네티스의 핵심 개념을 다룬다. 1부에서 다루는 패턴들은 컨테이너 기반의 클라우드 네이티브 애플리케이션을 구축하기 위한 기본적인 원칙과 사례다. - 2부, ‘행동 패턴’에서는 기본 패턴 상위에 있는 패턴으로서, 다양한 유형의 컨테이너와 플랫폼 상호작용을 관리하기 위해 좀 더 세밀한 개념을 추가한 패턴들에 대해 설명한다. - 3부, ‘구조 패턴’에서는 쿠버네티스 플랫폼의 핵심인 파드 내의 컨테이너 구성과 관련된 패턴들을 다룬다. - 4부, ‘설정 패턴’에서는 쿠버네티스에서 애플리케이션 설정을 처리하는 다양한 방법에 대한 통찰력을 제공한다. 이 패턴들은 매우 세분화된 패턴으로, 애플리케이션을 각 설정으로 연결하기 위한 구체적인 방법을 포함한다. - 5부, ‘고급 패턴’에서는 플랫폼 자체를 확장할 수 있는 방법이나 클러스터 내에서 컨테이너 이미지를 직접 빌드하는 방법 등의 고급 개념을 모아서 설명한다. 이 책에 담긴 모든 예제의 소스 코드는 깃허브(https://github.com/k8spatterns)에 있다. 깃허브 리포지토리와 웹사이트에는 예제 실행을 위해 쿠버네티스 클러스터를 내려받는 방법에 대한 지침과 설명도 있다. 예제를 진행할 때는, 제공된 자원(resource) 파일도 함께 살펴보길 바란다. 자원 파일에는 예제 코드를 이해하는 데 도움이 되는 유용한 주석이 많이 포함되어 있다. [이 책의 독자 대상] 이 책은 쿠버네티스 플랫폼을 위한 클라우드 네이티브 애플리케이션을 설계하고 개발하려는 개발자들을 대상으로 한다. 컨테이너와 쿠버네티스 개념에 대한 기본 지식이 있고, 다음 단계로 나아가려는 독자에게 가장 적합하다. 그러나 사용 예와 패턴을 이해하기 위해 쿠버네티스를 로우레벨까지 상세히 이해할 필요는 없다. 아키텍트, 기술 컨설턴트, 개발자라면 모두 이 책에서 설명하는 반복 가능한 패턴이 유용할 것이다. [지은이의 글] 마이크로서비스와 컨테이너 기술의 진화는 개발자가 소프트웨어를 설계, 구축, 실행하는 방식을 크게 변화시켰다. 최신 아키텍처는 새로운 분산된 기본 요소를 제공하며, 이로 인해 많은 개발자나 기술 책임자, 아키텍트에게 익숙지 않은 다양한 실행이 필요해졌다. 이 책에서는 쿠버네티스에서 클라우드 네이티브 애플리케이션을 설계하고 구현하기 위한 일반적이고 재사용 가능한 패턴과 원칙을 알려준다. 이 책의 24가지 쿠버네티스 디자인 패턴에는 각 문제에 대한 설명과 쿠버네티스에 특화된 해결책이 담겨 있다. 모든 패턴에 대해 구체적인 코드 예제를 제공하므로 각 패턴 예제를 실행해볼 수도 있다. 입증된 디자인 패턴으로 클라우드 네이티브 문제를 해결하는 방법을 알고 싶은 개발자와 아키텍트를 위한 책이다. | 이 책에서 다루는 내용 | - 기본 패턴은 컨테이너 기반 클라우드 네이티브 애플리케이션 구축을 위한 핵심 원칙과 사례를 다룬다. - 행동 패턴은 컨테이너 및 플랫폼 상호작용을 관리하기 위한 좀 더 세분화된 개념을 살펴본다. - 구조 패턴은 특정 사용 예를 다루기 위해 파드 내에서 컨테이너를 구성하는 데 도움이 된다. - 설정 패턴은 쿠버네티스에서 애플리케이션 설정을 처리하는 방법에 대한 통찰을 제공한다. - 고급 패턴은 오퍼레이터와 오토스케일링 같은 더욱 복잡한 주제를 다룬다. [옮긴이의 글] [안승규] 때는 2015년 초 무렵, IaaS, PaaS와 관련된 업무를 하다 보니 플랫폼으로 서비스를 제공하는 구현 방법에 대한 관심이 많았다. 하지만, 당시만 해도 컨테이너로 서비스를 제공하는 개념은 흔치 않아 서비스 개발을 위해 오픈소스를 비롯한 몇몇 제품들의 장단점을 비교하다가 쿠버네티스를 처음 접하게 되었다. 실제로 쿠버네티스를 제대로 설치하고 검토한 것은 그해 10월쯤이다. 오픈스택 서밋에서 우연히 코어오에스(CoreOS)의 텍토닉(Tectonic)이란 제품을 알게 되었고, 일주일 고생 끝에 겨우 설치를 완료해 쿠버네티스 샘플 소스를 돌리고, iptables 규칙을 확인하면서 서비스가 어떻게 돌아가는지를 하나씩 따라해가며 이해했다. 그때 문득 나 혼자 고민할 것이 아니라 모두 같이 공유할 수 있는 커뮤니티가 있으면 좋겠다는 생각에 이듬해인 2016년 1월 9일 쿠버네티스 코리아 그룹을 개설했다. 쿠버네티스는 처음 접하는 이들이 이해하기에는 진입장벽이 높아 그리 쉽지 않다. 특히, 쿠버네티스를 설치하는 것부터가 난제다(물론 지금은 카인드(Kind)나 미니큐브(Minikube) 등이 있어 간단히 설치할 수 있다). 여기에다가 컨테이너에 대한 이해가 필요하며, 쿠버네티스의 기본 요소 및 자원들(예를 들어 파드, 디플로이먼트, 레플리카세트, 서비스, 엔드포인트 등)도 제대로 활용할 수 있어야 한다. 더 큰 문제는 쿠버네티스를 어느 정도 이해한다 하더라도, 대부분은 아주 기본적인 개념만 알고 있을 확률이 높다는 점이다. 쿠버네티스를 활용해 서비스를 구축한 사람은 서비스 구축 과정에서 활용한 쿠버네티스 기능만 알고 그 이상의 중요한 개념을 모르는 경우가 부지기수다. 그렇기 때문에 이 책 『쿠버네티스 패턴』은 더욱 가치있게 다가올 것이다. 이 책은 세부 구현에 대해 자세히 설명하지는 않는다. 하지만 24가지 디자인 패턴을 통해 쿠버네티스의 핵심 개념을 설명함으로써 독자들에게 길잡이 역할을 해준다. 간혹 이 책에서 한 문장 혹은 한 문단으로 설명하는 쿠버네티스 개념들을 대수롭게 여겨 그냥 넘겨서는 안 된다. 각 장의 ‘참고 자료’ 절에서 열거한 링크들을 일일이 방문해 읽어보고 핵심 개념들을 모두 이해한다면 이 책의 가치를 확연히 깨닫게 될 것이다. 쿠버네티스 초보자가 이 책에서 다루는 내용을 다 이해했다면, 이제는 쿠버네티스 전문가의 경지에 올랐다고 할 수 있을 것이다. 그러면 이제는 한 단계 더 나아가 쿠버네티스 기반의 프로그래밍을 학습해야 하며, 클라우드 네이티브 컴퓨팅 재단(CNCF, Cloud Native Computing Foundation)의 여러 프로젝트들을 살펴봄으로써 쿠버네티스를 더 깊이 이해하려 노력해야 한다. 그렇기 때문에 더더욱 이 책 『쿠버네티스 패턴』은 여러분이 쿠버네티스 전문가로 도약하기 위한 첫걸음이 되어주리라 확신한다. [서한배] 클라우드 네이티브 기술은 클라우드를 기반으로 하는 대부분의 개발 및 운영환경에 적용되고 있을 뿐만 아니라 레거시 시스템도 빠르게 대체하면서 패러다임 전환을 가져오고 있다. 클라우드 네이티브 컴퓨팅에서 가장 대표적인 오케스트레이션 도구인 쿠버네티스는 오늘날 클라우드를 기반으로 하는 개발자나 운영자라면 필수로 이해해야 하는 플랫폼이 되었다. 하지만 필드의 다양한 요구사항과 수많은 사용 사례를 효율적으로 적용하기 위해 끊임없이 개선되고 있으며 이러한 최신 트렌드를 추구하는 것은 덕업이 일치하지 않는 이상 쉬운 일이 아니다. 그리고 쿠버네티스 기능 자체에 관해 설명하는 책은 많지만, 쿠버네티스의 기본 요소로 클라우드 네이티브의 장점을 최대한 활용할 수 있도록 구조를 설계하는 방법을 설명하는 책은 그리 많지 않다. 이 책에서 소개하는 24가지 패턴은 현재 시점의 최신 기술들을 다룬다. 또한 모든 패턴을 예제로 설명하기 때문에, 직접 실습하면서 이해할 수 있고 개발자나 운영자가 실 환경에서 응용해 볼 수도 있다. 그뿐만 아니라, 쿠버네티스의 기본 설계 철학을 바탕으로 만들어졌기 때문에 향후 관련 기술이 변하더라도 유사하게 적용이 가능할 것으로 본다. 24가지 패턴은 모두 중요하지만, 그중에서도 컨트롤러와 컨트롤러에서 확장된 기본 요소라고 할 수 있는 ‘오퍼레이터 패턴’(23장)은 특히 더 중점을 두고 살펴보기 바란다. 컨트롤러는 쿠버네티스가 구동하는 기반이 되는 기본 요소이므로 쿠버네티스 자체를 이해하는 데 필수 요소며, 쿠버네티스에 설치되는 대부분의 애플리케이션은 CRD(CustomResourceDefinition)를 이용한 오퍼레이터 패턴을 사용한다. 다양한 애플리케이션 도메인의 요구사항에 맞게 쿠버네티스를 기능을 얼마든지 확장해 나갈 수 있기 때문이다. 이 책은 쿠버네티스의 기본 개념을 기초부터 상세히 설명하지는 않기 때문에 초보자에게는 다소 어려울 수도 있다. 그렇다고 지레 겁먹을 필요는 없다. 쿠버네티스 공식 홈페이지의 문서나 기본 내용을 설명하는 서적으로 각 기본 요소의 역할과 kubectl 사용법을 익히고 나서는, 직접 클러스터를 설치해보지는 않더라도 YAML 포맷으로 배포 관련 기본 요소를 통해 애플리케이션을 배포하고 서비스로 고정된 종단점을 만들어보고 대략적인 구조를 이해했다면, 이 책에서 다루는 패턴을 이해하는 데 충분하다. 처음하는 번역 작업이라 예상보다 쉽지 않았고 시간도 오래 걸렸지만, 책 내용이 좋아서 많은 것을 배울 수 있었다. 그간 나는 책보다는 구글링, 깃허브 문서나 코드를 보는 것을 선호하는 쪽이었는데, 어느 한 분야를 전체적으로 빠르게 이해하려면 잘 구성된 책을 보는 것이 가장 좋은 방법임을 느꼈다. 많은 분이 이 책을 통해, 그동안 고민해오던 것에 대한 실마리나 바람직한 설계 방향을 찾기를 바란다. |
쿠버네티스 커뮤니티가 각양각색의 환경에서 신뢰성을 갖춘 다양한 분산 시스템을 구축하고 제공해온 수많은 경험의 부산물이 바로 쿠버네티스다. 소프트웨어 개발자가 특정 요구사항을 해결할 목적으로 설계하고 제작한 기본 도구들이 쿠버네티스의 각 객체와 기능으로 추가됐다.
이 책에서는 쿠버네티스에 내재된 개념이 어떻게 실세계의 문제를 해결하는지, 그리고 오늘날 여러분이 작업 중인 시스템을 구축하기 위해 쿠버네티스의 개념을 어떻게 적용하고 사용하는지를 설명한다. 이 책에 담긴 쿠버네티스 패턴을 통해 여러분은 지금까지 우리가 쿠버네티스를 구성하는 API와 도구로 시스템을 구축하며 쌓아온 모든 경험을 간접적으로 배울 수 있다. 이 책을 다 읽고 나면, 쿠버네티스에서 이용 가능한 컴포넌트뿐만 아니라, 이들 컴포넌트를 사용해 시스템을 구축하는 ‘이유’와 ‘방법’도 깨닫게 될 것이다. - 브렌단 번스(Brendan Burns) (쿠버네티스의 공동 창시자) |
개발자가 이해하고 빠르게 활용할 수 있는 형식으로 주요 쿠버네티스 개념을 소개하는 특별한 접근 방식이다. - 앤드류 블록 (Andrew Block, 레드햇, 수석 대표 컨설턴트)
|
쿠버네티스를 실무 작업과 과제에 연관지어 설명하는 훌륭한 책이다. - 마이클 후터만(Michael Huttermann) (Huettermann.net, 데브옵스 대표 컨설턴트)
|
쿠버네티스는 기업의 기존 컴퓨팅 환경뿐만 아니라 IoT, 머신러닝과 통신 인프라 분야까지 다양한 영역에서 도입, 활용되고 있다. 이 책은 쿠버네티스를 도입하고 활용하면서 맞닥뜨릴 수 있는 다양한 문제 상황들을 IT 종사자들에게 익숙한 패턴이라는 언어로 풀어낸 책이다. 패턴이라는 틀을 이용해 다양한 영역에서의 문제 상황을 기술하고 그 상황을 극복할 수 있는 검증된 해결방안을 제시하며 그 바탕이 되는 배경지식들을 설명함으로써 검증된 해결책을 쉽게 적용할 수 있게 정리되어 있다. 그리고 각 장의 마지막 부분에는 참고 자료를 넣어 해당 부분의 예제와 좀 더 깊은 읽을거리를 제공한다. 잘 정리된 레시피나 무림 고수의 비책처럼 필요할 때마다 수시로 꺼내 확인하고 적용하다 보면 쿠버네티스에 대한 이해를 한층 더 폭넓게 만들어줄 것이라 기대한다. - 강인호 (한국 오라클 클라우드 엑설런트팀 부장, 『쿠버네티스 인 액션』 역자)
|
회사에서 실제로 쿠버네티스 환경을 구축/운영하면서, 처음 쿠버네티스를 설치해서 샘플 앱으로 테스트할 때와는 다른 많은 문제를 겪었습니다. 이처럼 직접 부딪히지 않고서는 예측이 어려운 'Day 2 Operation'에서는, 쿠버네티스의 리소스를 깊이 이해하지 못하면 해결하기 어려운 일들이 많았습니다. 또한 기존 애플리케이션을 컨테이너로 마이그레이션할 경우에도, 쿠버네티스 패턴에 대한 고려가 있어야 효율적인 전환을 할 수 있었습니다.
이 책은 이처럼 다양한 트러블슈팅 및 애플리케이션 마이그레이션 시에 참고해야 할 패턴들에 대해 자세한 설명과 쉬운 가이드를 제공합니다. 회사나 팀에서 쿠버네티스 환경을 구축하고 운영하거나, 모놀리딕 애플리케이션을 클라우드 네이티브한 서비스로 개발, 운영하려는 계획을 갖고 있다면, 이 책이 큰 도움이 될 것입니다. - 이재상 (쿠버네티스 한국 그룹 부대표) |
쿠버네티스에 대한 기존 서적들이 개념, 설치, 사용법 등을 다룬 반면, 이 책은 쿠버네티스를 실무 환경에서 사용할 때 마주칠 수 있는 다양한 이슈와 트러블슈팅에 대해 고수들만이 알고 있는 비법을 패턴화하여 정리한 책입니다. 쿠버네티스에 애플리케이션을 운영하기 위한 배포 및 릴리스 전략, 수명주기 관리, 사이드카 패턴 등 다양한 패턴을 조합하는 것에 대해, 이 책에서는 문제, 해결책, 예제, 정리, 참고자료 형식으로 구성하고 필요한 패턴만 뽑아서 볼 수 있도록 정리했습니다.
쿠버네티스로 운영을 하거나 또는 클라우드 네이티브 개발을 준비하는 분들이 꼭 읽어보기를 권합니다. - 이재우 (삼성SDS 클라우드 아키텍트) |
오늘날 쿠버네티스는 단순한 쿠버네티스 엔진 자체를 넘어서 클라우드 네이티브라는 패러다임으로 오픈소스와 마이크로서비스 아키텍처 지향의 서비스 메시(이스티오, 링커드), 서버리스(케이네이티브, 뉴클리오)와 4차 산업의 주요기술 영역에도 머신러닝(쿠버플로우), 엣지 컴퓨팅(쿠버엣지) 등 다방면으로 확장되고 있습니다.
예전에 『GoF의 디자인패턴』이라는 객체지향언어의 패턴을 보면서, 코딩뿐만 아니라 품질과 생산성 향상 측면에서 재사용 가능하고 효율적인 코드 패턴을 재미있게 이해하고 실무에 큰 도움을 받은 기억이 어렴풋이 납니다. 『GoF의 디자인 패턴』 책처럼 이 책에서 소개된 여러 재미있는 개념과 패턴들을 활용하면, 쿠버네티스 엔진 자체를 커스터마이징하거나 응용하는 데 품질과 생산성 향상에 기여할 것이라 생각합니다. 쿠버네티스 중심으로 수년 동안 개발 및 사업에 적용하는 과정에서 고민하고 해결해왔던 문제들이 패턴으로 잘 정리되어 있어, 경험이 부족한 엔지니어들에게는 Lessons Learned가 될 수 있고, 쿠버네티스 관련 경험자나 실무자들에게도 이 책의 잘 정돈된 개념과 패턴이 많은 도움을 줄 것입니다. - 정영일 (삼성SDS 클라우드 아키텍트) |
처음 쿠버네티스를 공부하기 시작했을 때 저자들이 온라인에 올린 초고 버전으로 접했던 책이 드디어 국내에도 번역되어 출간됐습니다. 이 책은 단순히 쿠버네티스의 사용법만을 소개하는 것이 아니라 어떻게 하면 잘 사용할 수 있는지를 소개합니다. 실무에 쿠버네티스를 도입할 때 신경써야 하는 부분들이 저자의 실전 경험을 바탕으로 책 곳곳에 잘 녹아 있습니다. 쿠버네티스의 기본 개념과 사용 방법을 익힌 후 이 책을 읽는다면 쿠버네티스를 사용할 때 어떤 패턴이 좋은 패턴인지 학습할 수 있을 것입니다. - 정원천 (카카오 개발자, 『쿠버네티스 입문』 저자)
|
이 책에서도 설명하듯이 개발 언어와 클라우드 네이티브 애플리케이션은 놀랍게도 상당히 비슷한 구조로 되어 있습니다. 우리가 흔히 언어의 첫걸음을 뗀 이후 처음 찾는 책이 개발 방식의 패턴에 관한 책이듯이, 클라우드 네이티브 기술에 대해 초보 티를 벗어난 다음에는 이 책에서 설명하는 클라우드 네이티브 애플리케이션 개발 패턴을 익혀야 합니다. 이러한 측면에서 이 책은 독자들에게 쿠버네티스 기반 위의 개발 방식에 관해 두고두고 참고할 수 있는 교과서적인 패턴을 설명해줍니다. 이 책의 2장에서 25장까지 빈틈없이 채워진 구조별 패턴 가이드에는 저자진의 풍부한 실전 경험이 녹아들어 있으며, 현업에서 많은 경험과 전문지식을 쌓은 역자진의 번역 덕분에 번역서임에도 책을 쉽게 이해할 수 있습니다. 쿠버네티스의 이해를 넘어 실제 클라우드 네이티브 플랫폼 위에 나만의 서비스를 안정적으로 설계하고 배포하고자 계획하신다면 이 책은 중요한 참고 도서가 될 것입니다. - 한승진 (Korea Ceph User Group 대표)
|