이미 소장하고 있다면 판매해 보세요.
|
1장. 오퍼레이터가 쿠버네티스에 제공하는 새로운 트릭
__쿠버네티스 작동 방식 __예: 상태 비저장 웹 서버 __상태 저장은 어렵다 __오퍼레이터는 소프트웨어 SRE다 __오퍼레이터 작동 방식 ____쿠버네티스 CR __오퍼레이터는 어떻게 만들어지는가? __예: etcd 오퍼레이터 ____사라진 멤버의 경우 __오퍼레이터는 누구를 위한 것인가? ____오퍼레이터 채택 __출발하자! 2장. 오퍼레이터 실행 __오퍼레이터 실험 환경 구성 ____클러스터 버전 요구사항 ____인가 요구사항 ____표준 도구 및 기술 ____권장 클러스터 구성 ____클러스터 버전 확인 __단순 오퍼레이터 실행 ____일반적인 시작점 ____etcd 오퍼레이터 매니페스트 가져오기 ____CR: 사용자 정의 API 엔드포인트 ____나는 누구인가: 오퍼레이터 서비스 계정 정의 ____etcd 오퍼레이터 배포 ____etcd 클러스터 선언 ____etcd 실습 ____etcd 클러스터 확장 ____장애 및 자동화된 복구 ____etcd 클러스터 업그레이드 ____정리 __요약 3장. 쿠버네티스 인터페이스의 오퍼레이터 __표준 확장: ReplicaSet 리소스 __사용자 정의 리소스 ____CR 또는 ConfigMap? __사용자 정의 컨트롤러 __오퍼레이터 범위 ____네임스페이스 범위 ____클러스터 범위 오퍼레이터 __권한 부여 ____서비스 계정 ____역할 ____RoleBinding ____ClusterRole 및 ClusterRoleBinding __요약 4장. 오퍼레이터 프레임워크 __오퍼레이터 프레임워크의 기원 __오퍼레이터 성숙도 모델 __오퍼레이터 SDK ____오퍼레이터 SDK 도구 설치 __오퍼레이터 라이프사이클 매니저 __오퍼레이터 미터링 __요약 5장. 샘플 애플리케이션: 방문자 사이트 __애플리케이션 개요 __매니페스트를 사용한 설치 ____MySQL 배포 ____백엔드 ____프론트엔드 __매니페스트 배포 __방문자 사이트에 접근 __정리 __요약 6장. 어댑터 오퍼레이터 __Helm 오퍼레이터 ____오퍼레이터 구축 ____CRD에 대한 설명 ____오퍼레이터 권한 검토 ____Helm 오퍼레이터 실행 __Ansible 오퍼레이터 ____오퍼레이터 구축 ____CRD에 대한 설명 ____오퍼레이터 권한 검토 ____Ansible 오퍼레이터 실행 __오퍼레이터 테스트 __요약 __관련 리소스 7장. 오퍼레이터 SDK를 사용해 Go로 만드는 오퍼레이터 __오퍼레이터 초기화 __오퍼레이터의 리소스 관리 범위 __사용자 정의 리소스 정의 ____Go 타입 정의 ____CRD 매니페스트 __오퍼레이터 권한 __컨트롤러 ____Reconcile 함수 __오퍼레이터 작성 팁 ____리소스 검색 ____자식 리소스 생성 ____자식 리소스 삭제 ____자식 리소스 명명법 ____멱등성 ____오퍼레이터 영향도 __로컬에서 오퍼레이터 실행하기 __방문자 사이트 예제 __요약 __관련 리소스 8장. 오퍼레이터 라이프사이클 매니저 __OLM 사용자 정의 리소스 ____ClusterServiceVersion ____CatalogSource ____구독 ____InstallPlan ____OperatorGroup __OLM 설치하기 __OLM 사용하기 ____오퍼레이터 둘러보기 ____오퍼레이터 삭제하기 __OLM 번들 메타데이터 파일 ____CRD ____클러스터 서비스 버전 파일 ____패키지 매니페스트 파일 __클러스터 서비스 버전 파일 작성하기 ____파일 스켈레톤 생성하기 ____메타데이터 ____소유 CRD ____필수 CRD ____설치 모드 ____버전 관리 및 업데이트 __패키지 매니페스트 파일 작성하기 __로컬 환경에서 실행하기 ____전제 조건 ____OLM 번들 만들기 ____OLM을 통한 오퍼레이터 설치 ____실행 중인 오퍼레이터 테스트하기 __방문자 사이트 오퍼레이터 예제 __요약 __관련 리소스 9장. 오퍼레이터 철학 __모든 애플리케이션에 대한 SRE __수고하지 말아라 ____자동화 가능한 것: 당신의 컴퓨터가 할 작업 ____제자리 달리기: 지속적인 가치가 없는 일 ____고통의 증가: 시스템과 함께 확장되는 작업 __오퍼레이터: 쿠버네티스 애플리케이션 신뢰성 엔지니어링 ____애플리케이션 상태 관리 ____소프트웨어로 전송되는 골든 시그널 __매우 성공적인 오퍼레이터의 7가지 습관 __요약 10장. 참여하 __기능 요청과 버그 리포트 __기여하기 __오퍼레이터 공유하기 __요약 부록 A. 클러스터 내부에 디플로이먼트로 오퍼레이터 실행하기 부록 B. CR 검증 부록 C. 역할 기반 접근 제어(RBAC) |
Jason Dobies
Joshua Wood
이상근의 다른 상품
|
★추천의 글★
“쿠버네티스는 세계에서 가장 강력한 컨테이너 오케스트레이션 플랫폼으로 부상했다. 그러나 미래의 플랫폼을 구축하고 운영하는 방법을 재정의할 수 있는 확장 가능한 API 및 자동화 프레임워크의 진정한 힘은 숨겨져 있다. 이 책은 잃어버린 매뉴얼이다.” - 켈시 하이타워(Kelsey Hightower)/ 구글 클라우드(Google Cloud)의 테크놀로지스트 “제이슨과 조쉬의 『쿠버네티스 오퍼레이터』는 쿠버네티스의 중요성을 인지한다면 (디지털) 책장에서 놓치지 않아야 할 내용이다. 실습을 통해 오퍼레이터 패턴을 성공적으로 적용할 수 있다. 이 책은 『Programming Kubernetes』의 완벽한 후속작이라고 생각한다.” - 마이클 하우젠블라스(Michael Hausenblas)/ 아마존 웹 서비스(Amazon Web Services) “이 책은 중요한 워크로드에 오퍼레이터 패러다임을 채택하려는 모든 사람에게 필수다. 설계 원칙, 구현 경로 및 트랩, 기존 생태계의 활용에 대한 포괄적인 개요를 제공한다.” - 아니쉬 아스타나(Anish Asthana)/ 레드햇(Red Hat)의 소프트웨어 엔지니어 “지난 몇 년, 제이슨과 함께 일하는 동안 늘 그의 머릿속에 있는 지식을 덤프하고 싶었는데 드디어 가지게 됐다. 조쉬와 제이슨은 오퍼레이터를 만드는 모든 사람을 위한 필수 가이드를 만들었으며, 고객을 위한 진정한 ‘쿠버네티스 애플리케이션 신뢰성 엔지니어링(Kubernetes Application Reliability Engineering)’ 기능을 목표로 오퍼레이터를 오토 파일럿 단계로 발전시키는 데 큰 도움이 될 것이다.” - 데이브 모이러(Dave Meurer)/ 시놉시스 주식회사(Synopsys, Inc.)의 기술 제휴 파트너 “쿠버네티스 오퍼레이터를 위한 시장 최고의 데이터를 제공하는, 조쉬와 제이슨의 또 다른 훌륭한 책이다.” - 조 고메스(Joe Gomes)/ 시놉시스 주식회사의 제휴 파트너 ★이 책에서 다루는 내용★ ■ 쿠버네티스 클러스터에 오퍼레이터를 배포하는 방법 ■ 사용법부터 구현에 이르기까지 오퍼레이터 검토 ■ 오퍼레이터 프레임워크 탐색: 오퍼레이터 SDK, 오퍼레이터 라이프사이클 매니저, 오퍼레이터 미터링 ■ SDK의 Go 프로그래밍 언어 지원을 통해 오퍼레이터 구축, 패키지 및 실행 ■ 기존 Helm 및 Ansible 자산을 오퍼레이터로 패키징 및 배포 ■ 쿠버네티스 클러스터에 설치하기 위해 오퍼레이터를 배포하는 방법 ■ 오퍼레이터가 사이트 신뢰성 엔지니어링 사례를 구현하는 데 어떻게 도움이 되는지 확인 ★이 책의 대상 독자★ 쿠버네티스 클러스터에 애플리케이션을 배포해봤다면 오퍼레이터 패턴이 등장하게 된 몇 가지 도전 의식과 열망에 공감할 것이다. 데이터베이스와 파일 시스템 같은 기본 서비스를 오케스트레이션된 클러스터 외부의 자체 빈민가에서 유지 관리하고 있으며 이를 오케스트레이션된 클러스터 인근으로 가져오고 싶다면 쿠버네티스 오퍼레이터에 대한 이 안내서가 도움될 것이다. ★이 책의 구성★ 오퍼레이터가 무엇인지와 오퍼레이터가 쿠버네티스 API를 확장하는 방법을 설명한다. 기존 오퍼레이터를 배포하고 사용하는 방법과 레드햇 오퍼레이터 프레임워크(Red Hat Operator Framework, https://github.com/operator-framework)를 사용해 애플리케이션에 오퍼레이터를 작성, 분배하는 방법을 보여준다. 이는 오퍼레이터를 설계, 구축, 배포하기 위한 모범 사례와 연관돼 있으며, SRE(Site Reliability Engineering) 원칙을 사용해 오퍼레이터에 생명을 불어넣는다는 컨셉을 설명한다. 1장에서 오퍼레이터와 개념을 설명한 후, 책의 나머지 부분에서 실습할 수 있는 쿠버네티스 클러스터에 접근하는 방법을 제안한다. 클러스터가 실행되면 오퍼레이터를 배포하고 애플리케이션이 실패하거나 확장되거나 새 버전으로 업그레이드될 때의 동작을 관찰할 수 있다. 뒷부분에서는 오퍼레이터 SDK를 살펴보고 이를 사용해 오퍼레이터를 구축하고 예제 애플리케이션을 쿠버네티스 일등 시민으로 귀화시키는 방법을 보여준다. 이러한 실질적인 토대를 마련해 오퍼레이터가 도출한 SRE 아이디어와 이들이 공유하는 목표, 즉 운영 노력과 비용 절감, 서비스 안정성 향상 및 반복적인 유지 보수 작업에서 팀을 해방시켜 혁신을 유발하는 방법을 논의할 것이다. ★지은이의 말★ 쿠버네티스는 널리 사용되는 컨테이너 오케스트레이터다. 또한 많은 컴퓨터를 하나의 큰 컴퓨팅 리소스로 통합해서 활용하고 쿠버네티스 API를 통해 해당 리소스를 처리하는 수단을 제공한다. 쿠버네티스는 구글에서 시작한 오픈소스 소프트웨어로, 지난 5년 동안 CNCF(Cloud Native Computing Foundation, https://www.cncf.io/)의 후원하에 대규모 공동 작업자 그룹이 개발한 오픈소스 소프트웨어다. 오퍼레이터는 쿠버네티스를 확장해 특정 애플리케이션의 전체 라이프사이클 관리를 자동화한다. 오퍼레이터는 쿠버네티스에서 애플리케이션을 배포하기 위한 패키징 메커니즘의 역할을 하며 배포한 소프트웨어를 모니터링, 유지 관리, 복구 및 업그레이드한다. ★옮긴이의 말★ 클라우드 환경을 구성하는 컨테이너는 사용자가 개발한 HTTP 서비스일 수도 있고 데이터 베이스 서버일 수도 있으며 NoSQL 서버나 캐시 서버일 수도 있다. 쿠버네티스는 기본적으로 이런 것들을 모두 동일하게 파드와 배포, 서비스 수준에서 표현하며 개발과 배포, 운영 역시 이러한 수준에서 이뤄진다. 쿠버네티스는 컨테이너를 기반으로 클라우드 환경에 최적화된 애플리케이션을 개발할 수 있는 훌륭한 토대를 제공하지만, 필요한 모든 것을 제공해주지는 못한다. 이에 CR을 통한 확장 가능한 구조를 제공하는데, 쿠버네티스 오퍼레이터는 이러한 확장을 자동화하는 데 사용할 수 있다. 애플리케이션별 배포 및 운영에 필요한 내용은 오퍼레이터가 자동으로 처리하므로 사용자는 하부 내용의 변화에 관계없이 쿠버네티스의 표준 리소스 관리 방식을 그대로 사용할 수 있다. 만약 쿠버네티스를 확장해 데이터베이스 서버, 캐시 서버 등 좀 더 상위 수준의 리소스를 쿠버네티스의 기본 단위로 다룰 수 있다면 어떻게 될까? 설정 및 운영이 단순해지고, 좀 더 직관적이며 고수준으로 클라우드 애플리케이션을 다룰 수 있을 것이다. 성공적인 사례로 이스티오 등의 서비스 메시 구현과 API 게이트웨이 등의 쿠버네티스 통합이 존재한다. 또한 카프카, 레디스, 각종 관계형 데이터베이스 및 NoSQL 등이 쿠버네티스 오퍼레이터를 구현하고 발전시키면서 이러한 목표를 향해 나아가고 있다. 이 책은 분량이 적고 필요한 모든 것을 다루고 있지는 못하지만, 쿠버네티스 오퍼레이터를 통해 쿠버네티스를 실제로 확장할 수 있는 좋은 시작점이 될 수 있을 것이다. 또한 오퍼레이터를 직접 구현하지 않더라도 쿠버네티스 내부를 좀 더 잘 이해하는 데도 도움이 될 것이다 |