이미 소장하고 있다면 판매해 보세요.
|
1장. 쿠버네티스 운영 준비
__쿠버네티스 정의 ____중요 컴포넌트 ____컨테이너 오케스트레이션 이상의 확장 기능 ____쿠버네티스 인터페이스 ____쿠버네티스 요약 __애플리케이션 플랫폼 도입 방식 ____플랫폼 구축 접근 범위 ____조직의 요구사항 조정 ____애플리케이션 플랫폼 요약 ____쿠버네티스 기반 애플리케이션 플랫폼 구축 ____기반부터 시작하기 ____추상화 범위 ____플랫폼 서비스 결정 ____구축 블록 __요약 2장. 쿠버네티스 배포 모델 __관리형 서비스와 셀프 서비스 비교 ____관리형 서비스 ____자체 서비스 ____배포 모델 결정 __자동화 ____쿠버네티스 설치 소프트웨어 ____사용자 정의 자동화 __아키텍처 및 토폴로지 ____etcd 배포 모델 ____클러스터 티어 ____노드풀 ____클러스터 페더레이션 ____인프라스트럭처 ____베어메탈과 가상화 비교 ____클러스터 사이즈 조정 ____컴퓨팅 인프라 ____네트워크 인프라 ____자동화 전략 __서버 설치 ____구성 관리 도구 ____VM 이미지 ____VM 설치 시 필요한 항목 __컨테이너형 컴포넌트 __애드온 __업그레이드 ____플랫폼 버전 관리 ____실패 대응 계획 ____통합 테스트 ____업그레이드 전략 __트리거 메커니즘 __요약 3장. 컨테이너 런타임 __컨테이너의 출현 __오픈 컨테이너 이니셔티브 ____OCI 런타임 명세 __컨테이너 런타임 인터페이스 ____파드 시작 __런타임 선택 ____도커 ____컨테이너 ____CRI-O ____카타 컨테이너 ____Virtual Kubelet __요약 4장. 컨테이너 스토리지 __스토리지 고려사항 ____액세스 모드 ____볼륨 확장 ____볼륨 프로비저닝 ____백업 및 복구 ____블록 디바이스 및 파일, 오브젝트 스토리지 ____임시 데이터 ____스토리지 프로바이더 선택 __쿠버네티스 스토리지 기본 요소 ____퍼시스턴트 볼륨 및 클레임 ____스토리지 클래스 __컨테이너 스토리지 인터페이스 ____CSI 컨트롤러 ____CSINode __Storage as a Service 구현 ____설치 ____스토리지 옵션 기준 ____스토리지 사용 ____리사이징 ____스냅숏 __요약 5장. 파드 네트워크 __네트워크 고려사항 ____IP주소 관리 ____라우팅 프로토콜 ____캡슐화 및 터널링 ____워크로드 라우팅 가능성 ____IPv4 및 IPv6 ____암호화된 워크로드 트래픽 ____네트워크 폴리시 ____요약: 네트워크 고려사항 __컨테이너 네트워크 인터페이스 ____CNI 설치 __CNI 플러그인 ____캘리코 ____실리움 ____AWS VPC CNI ____멀터스 ____추가 플러그인 __요약 6장. 서비스 라우팅 __쿠버네티스 서비스 ____서비스 추상화 ____엔드포인트 ____서비스 구현 세부정보 ____서비스 디스커버리 ____DNS 서비스 성능 __인그레스 ____인그레스 적용 사례 ____인그레스 API ____인그레스 컨트롤러 및 작동 방식 ____인그레스 트래픽 패턴 ____인그레스 컨트롤러 선택 ____인그레스 컨트롤러 배포 고려사항 ____DNS 및 인그레스 역할 ____TLS 인증서 처리 __서비스 메시 ____서비스 메시 사용 사례 ____서비스 메시 인터페이스 ____데이터 플레인 프록시 ____쿠버네티스 서비스 메시 ____데이터 플레인 아키텍처 ____서비스 메시 채택 __요약 7장. 시크릿 관리 __심층 방어 ____디스크 암호화 ____전송 보안 ____애플리케이션 암호화 __쿠버네티스 시크릿 API ____시크릿 소비 모델 ____etcd 시크릿 데이터 ____정적 키 암호화 ____봉투 암호화 __외부 프로바이더 ____볼트 ____사이버아크 ____시크릿 주입 통합 ____CSI 통합 __선언적 관리 방식 ____시크릿 봉인 ____sealed-secret-controller ____키 갱신 ____멀티클러스터 모델 __시크릿 모범 사례 ____시크릿 상호작용 감사 ____시크릿 누출 금지 ____볼륨 선호 방식 ____애플리케이션에 시크릿 저장소 프로바이더를 알 수 없도록 설정 __요약 8장. 어드미션 컨트롤 __쿠버네티스 어드미션 체인 __어드미션 컨트롤러 관련 범위 __웹훅 ____웹훅 어드미션 컨트롤러 설정 ____웹훅 디자인 고려사항 __변형 웹훅 작성 ____일반 HTTPS 핸들러 ____컨트롤러 런타임 __중앙 집중식 정책 시스템 __요약 9장. 관찰 가능성 __로깅 동작 방식 ____컨테이너 로그 처리 ____쿠버네티스 감사 로그 ____쿠버네티스 이벤트 ____로그 경보 ____보안 영향 __메트릭 ____프로메테우스 ____장기 보관 ____푸시 메트릭 ____사용자 정의 메트릭 ____조직 및 페더레이션 ____경보 ____쇼백과 차지백 ____메트릭 컴포넌트 __분산 트레이싱 ____오픈트레이싱 및 오픈텔레메트리 ____트레이싱 컴포넌트 ____애플리케이션 계측 ____서비스 메시 __요약 10장. 식별 __사용자 식별 ____인증 방법 ____사용자 최소 권한 구현 __애플리케이션/워크로드 식별 ____공유 시크릿 ____네트워크 식별 ____서비스 어카운트 토큰 ____예상 서비스 어카운트 토큰 ____플랫폼 중재 노드 식별 __요약 11장. 플랫폼 서비스 구축 __확장점 ____플러그인 확장 ____웹훅 확장 ____오퍼레이터 확장 __오퍼레이터 패턴 ____쿠버네티스 컨트롤러 ____사용자 정의 리소스 __오퍼레이터 사용 사례 ____플랫폼 유틸리티 ____범용 워크로드 오퍼레이터 ____앱별 오퍼레이터 __오퍼레이터 개발 ____오퍼레이터 개발 도구 사용 ____데이터 모델 설계 ____로직 구현 __스케줄러 확장 ____판단식 및 우선순위 ____스케줄링 정책 ____스케줄링 프로필 ____다중 스케줄러 ____사용자 정의 스케줄러 __요약 12장. 멀티테넌시 __격리 정도 ____싱글테넌트 클러스터 ____멀티테넌트 클러스터 __네임스페이스 경계 __쿠버네티스 멀티테넌시 ____RBAC ____리소스 할당량 ____어드미션 웹훅 ____리소스 요청 및 제한 ____네트워크 정책 ____파드 시큐리티 폴리시 ____멀티테넌트 플랫폼 서비스 __요약 13장. 오토스케일링 __스케일링 유형 __애플리케이션 아키텍처 __워크로드 오토스케일링 ____수평 파드 오토스케일러 ____수직 파드 오토스케일링 ____사용자 정의 측정 항목을 사용한 오토스케일링 ____클러스터 비례 오토스케일러 ____사용자 정의 오토스케일링 __클러스터 오토스케일링 ____클러스터 오버 프로비저닝 __요약 14장. 애플리케이션 고려사항 __쿠버네티스에 애플리케이션 배포 ____배포 매니페스트 템플릿 ____쿠버네티스용 애플리케이션 패키징 __설정 및 시크릿 수집 ____쿠버네티스 컨피그맵 및 시크릿 ____외부 시스템에서 설정 가져오기 __스케줄링 조정 이벤트 처리 ____Pre-stop 컨테이너 생명 주기 훅 ____정상적인 컨테이너 종료 ____가용성 요구사항 충족 __상태 프로브 ____라이브니스 프로브 ____레디니스 프로브 ____시작 프로브 ____프로브 구현 __파드 리소스 요청 및 제한 ____리소스 요청 ____리소스 제한 __애플리케이션 로그 ____로그 내용 ____구조화되지 않은 로그와 구조화된 로그 ____로그의 컨텍스트 정보 __메트릭 노출 ____애플리케이션 계측 ____USE 방법 ____RED 방법 ____네 가지 골든 시그널 ____애플리케이션 특정 메트릭 __분산 트레이싱을 위한 계측 서비스 ____트레이싱 도구 초기화 ____스팬 생성 ____컨텍스트 전파 __요약 15장. CI/CD 파이프라인 __컨테이너 이미지 빌드 ____골든 베이스 이미지 안티패턴 ____베이스 이미지 선택 ____런타임 사용자 ____패키지 버전 고정 ____빌드와 런타임 이미지 비교 ____클라우드 네이티브 빌드팩 __이미지 레지스트리 ____취약점 스캐닝 ____검역 워크플로 ____이미지 서명 __지속적 전달 ____파이프라인에 빌드 통합 ____푸시 기반 배포 ____롤아웃 패턴 ____깃옵스 __요약 16장. 플랫폼 추상화 __플랫폼 노출 __자체 서비스 온보딩 __추상화 범위 ____커맨드라인 툴 ____템플릿을 통한 추상화 ____쿠버네티스 초기 추상화 ____쿠버네티스를 보이지 않게 만들기 __요약 |
Josh Rosso
Rich Lander
Alexander Brand
John Harris
나정호의 다른 상품
|
이 책에서 다루는 내용
-견고한 쿠버네티스 기반 플랫폼 구축에 필요한 능력 이해하기 -실제 경험을 활용해 쿠버네티스 기반 플랫폼을 구축할 때 자주 발생하는 함정 피하기 -쿠버네티스의 아키텍처 디자인을 확장 가능한 플랫폼으로 개발하기 -내부 및 외부 사용자의 고민을 분석해 목적에 맞는 플랫폼 개발하기 -도구 및 추상화에 대한 선택과 결정으로 쿠버네티스 플랫폼의 복잡성 제어하기 -쿠버네티스로 운영환경 방식을 확인하고 일반적인 도구 적용 옵션 및 절충점 알아보기 지은이의 말 쿠버네티스는 매우 강력한 기술이며, 몇 년 전부터 인기가 급상승했다. 이를 통해 소프트웨어 배포를 관리하는 방식에서 발전을 위한 기반을 형성할 수 있었다. API 기반의 소프트웨어와 분산 시스템은 쿠버네티스가 등장하기 전에 이미 잘 정립돼 있었지만, 널리 채택되지는 않았다. 쿠버네티스는 정립된 원칙을 훌륭하게 실현해 성공의 기반을 마련했을 뿐 아니라 중요한 무언가를 제공했다. 쿠버네티스 프로젝트 덕분에 대기업에서나 가능하던 고가용성(highly available), 셀프 힐링(Self-healing), 오토스케일링(autoscaling) 방식의 소프트웨어 배포가 모든 조직에 도달 가능한 수준이 됐다. 소프트웨어 시스템이 넓은 범위의 고수준 지시를 받아들이고 그대로 실행해 원하는 결과를 제공하도록 하는 조건을 발견하고, 변화하는 장애물을 극복하며 개발자의 개입 없이 문제를 해결하는 미래가 눈앞에 있다. 더 빠르고 신뢰성 있게 수행하는 시스템이 구현될 것이다. 쿠버네티스는 모두를 그 미래에 훨씬 가까이 이끌었다. 그러나 강력함과 높은 성능은 사람들이 이러한 복잡성을 탐색하는 데 도움이 되는 경험을 공유하고자 이 책을 쓰기로 결정했다. 쿠버네티스를 사용해 운영 환경에 애플리케이션 플랫폼을 구축하려면 이 책을 읽어야 한다. 그러나 쿠버네티스를 처음 사용하거나 작동 방식을 알고자 하는 사람에게 이 책은 부적절하다. 책에서 설명하는 솔루션을 각자의 연구와 테스트에 함께 적용해보기를 권한다. 이 책은 단계별 튜토리얼 스타일의 예제로 깊게 들어가지 않는다. 이론을 필요한 만큼만 다루고, 대부분의 구현을 독자의 연습 과제로 남겨두려고 했다. 이 책 전반에서 옵션, 도구, 패턴 및 실천의 형태의 지침을 찾을 수 있을 것이다. 지침을 읽고 애플리케이션 플랫폼 구축의 실천에 대한 관점을 이해해야 한다. 우리는 엔지니어이며 아키텍트이자 포춘지(Fortune) 500대 기업에서 플랫폼 목표를 달성하는 데 기여했으며, 이러한 실무 경험이 설명에 녹아 있다. 쿠버네티스가 1.0버전으로 제공하기 시작한 2015년부터 쿠버네티스를 사용하고 있다. 새로운 도구가 빨리 나타나기 때문에 도구보다는 패턴과 철학에 중점을 두려고 노력했으나, 가장 적절한 도구를 사용해 패턴을 표시한 부분도 있다. 클라우드 네이티브 여정을 통해 팀을 안내해 소프트웨어를 어떻게 구축하고 전달하는지 완전히 변화시키는 데 큰 성공을 거뒀다. 물론 성공 전에는 실패가 있었다. 실패의 이유는 조직이 쿠버네티스가 어떤 문제를 해결해줄 것이라는 오해가 있었기 때문이다. 그래서 초기에 개념에 깊이 파고드는 것으로 방향을 정했다. 그동안 고객과 소통하며 알게 된 흥미로운 점을 많이 알게 됐는데, 이런 대화들이 너무 흔해져서 책을 쓸 때가 온 것이 아닐까 생각했다. 조직과 프로덕션에 방식의 전환은 몇 번이나 반복했지만, 조직이 추구하는 핵심가치는 하나뿐이다. 클라우드 네이티브로의 전환이 원하는 그림대로 그려지지 않는다는 것이다. 이를 염두에 두고, 이 책이 운영 단계에 도달하기 위한 ‘5단계 프로그램’이나 ‘모든 쿠버네티스 사용자가 알아야 할 열 가지’를 찾고 있는 독자를 만족시키기는 어렵다는 점을 한계로 설정했다. 여기에서는 지금까지 본 많은 결정 포인트와 함정을 언급하며 필요에 따라 구체적인 사례와 일화를 제공하려고 한다. 모범 사례는 존재하지만, 항상 실용성의 시각으로 볼 필요가 있다. 한 번에 모든 상황에 맞는 해결책은 없으며, 여정 중 불가피하게 마주하게 될 많은 질문에 ‘상황에 따라 답이 다르다’라고 말할 수밖에 없다. 그럼에도 독자 여러분이 이 책에 도전해보기를 적극적으로 권장한다. 고객과 협력할 때, 저자의 지침에 도전하고 보강하기를 권장한다. 지식은 유동적이며, 항상 새로운 기능 정보 제약에 따라 접근 방식을 지속적으로 업데이트하는 추세를 계속 유지해야 한다. 클라우드 네이티브 공간이 진화하는 것에 따라, 권장한 것과는 다른 대안적인 길을 선택하게 될 것이다. 우리의 경험을 소개하면서 독자가 책에 실린 다양한 경험과 독자만의 관점을 비교하고 판단할 수 있도록 도울 준비가 끝났다. 옮긴이의 말 현대 디지털 비즈니스의 핵심은 ‘애플리케이션과 시스템 운영’이다. 기업은 고객의 요구사항을 충족시키고, 경쟁력을 확보하며, 혁신을 추구하기 위해 안정적이고 확장 가능한 소프트웨어를 개발하고 운영해야 한다. 이를 수행하기 위한 도구와 기술 중 하나로 쿠버네티스(Kubernetes)가 많은 부분에서 각광받고 있다. 쿠버네티스는 컨테이너 오케스트레이션 플랫폼으로, 애플리케이션의 배포, 확장, 관리, 스케일링, 복구 및 모니터링을 자동화하고 단순화하는 역할을 한다. 이를 통해 기업은 애플리케이션을 더 빠르게 개발하고 안정적인 운영 환경에서 애플리케이션을 제공할 수 있으며, 다양한 클라우드 환경에서의 이식성을 확보할 수 있다. 이 책은 쿠버네티스를 운영 환경에서 안정적이고 확장성 있게 운영하기 위한 핵심 원칙과 실무 노하우를 전달한다. 다년 간의 경험과 업무에서의 실제 사례를 토대로 쿠버네티스로 운영 환경을 개선하고 효율성을 높이는 방법을 제시하고 있다. 쿠버네티스는 학습 곡선이 가파르고 다양한 측면이 존재하는 복잡한 기술이다. 여러분은 쿠버네티스의 운영 및 관리에 필요한 기본 원칙과 심화 내용을 이해하고, 실제 운영 환경에서 문제를 해결하는 방법을 얻을 수 있을 것이다. 쿠버네티스의 세계로 안내하고, 안정성과 확장성을 갖춘 운영 환경을 구축하는 여정을 함께 떠나는 동반자로서, 쿠버네티스를 마스터하고 현대의 디지털 비즈니스에서 성공을 거두는 데 도움이 될 것을 확신한다. |
|
쿠버네티스가 공개된 지 6년이 지났고, 공개됐을 때부터 저자는 쿠버네티스 개발 조직에 소속돼 실제로 쿠버네티스 프로젝트에 첫 번째 커밋을 수행했다(공개 릴리즈를 위한 클린 리포지터리를 만드는 과정에서의 유지보수를 담당했다). 쿠버네티스는 기대 이상의 성공을 거뒀다고 자신있게 말할 수 있다. 성공의 기반에는 규모가 큰 오픈소스 커뮤니티와 현실 세계와의 격차를 해소하려는 기여자들의 적극적인 참여가 있었다. 쿠버네티스를 일반 기업에 제공한다는 사명으로 공동 설립한 스타트업 헵티오(Heptio)에서 저자와 협력할 수 있었다. 헵티오에서 성공의 대부분은 실질적인 문제를 해결함에 있었고, 쿠버네티스의 실제 사용자와 직접 연결하는 동료의 노력이 있었기에 감사의 뜻을 전하고 싶다. 쿠버네티스를 운영 환경에서 실제로 작동하는 데 필요한 도구를 팀에 제공하기 위한 현장의 경험을 전하려는 목적을 두고 이 책을 썼다.
저자의 전체 경력은 애플리케이션 팀과 개발자를 대상으로 한 시스템 구축을 기반으로 한다. 마이크로소프트 인터넷 익스플로러(Microsoft Internet Explorer)부터 윈도우 프레젠테이션 파운데이션(Windows Presentation Foundation)에서 계속되고, 구글 컴퓨트 엔진(Google Compute Engine)과 쿠버네티스 및 클라우드로 전환됐다. 현장에서 ‘플랫폼 빌더의 저주’라는 현상으로부터 플랫폼을 구축하는 사람들이 고통받는 것을 여러 차례 목격했다. 플랫폼을 구축하고 있는 사람들은 수십 년 동안 안정적인 기반을 구축하는 문제에 초점을 맞추고 있다. 그러나 그 안정적인 기반에 초점을 맞추면서 현재 사용자가 겪고 있는 문제에 사각지대가 생기게 된다. 종종 사용자가 구축하고 있는 것을 실제로 사용하도록 연결하는 시간에 문제가 없도록 빠른 시일 내 구축하는 시간이 부족하다. ‘플랫폼 빌더의 저주’를 극복하려면 플랫폼 빌더의 거품 바깥 쪽에서 적극적으로 해결가능한 정보를 찾는 방법이 유일한 해결책이다. 정보를 찾는 일은 헵티오의 필드 엔지니어링 팀(이후에는 VMware 쿠버네티스 아키텍처 팀-KAT)이 수행했다. 이 팀은 업계의 다양한 고객이 쿠버네티스에서 성공할 수 있도록 도움을 주는 것 이상으로, 플랫폼의 ‘이론’이 어떻게 적용되는지 현실에 반영할 수 있는 중요한 창구 역할을 했다. 플랫폼 빌더 문제는 쿠버네티스와 CNCF(Cloud Native Computing Foundation)를 중심으로 구축되고 번창하는 생태계로 인해 더욱 악화된다. 여기에는 CNCF의 일부 프로젝트와 더 넓은 영역에 속한 프로젝트 모두가 포함된다. 이 생태계를 ‘아름다운 혼돈’이라고 표현하는데, 이는 서로 다른 정도의 중복과 성숙함을 가진 열대 우림과 같은 모습을 한 프로젝트이기 때문이다. 그러나 열대 우림을 탐험하는 것처럼 쿠버네티스 생태계를 탐험하려면 헌신의 시간이 필요하고 위험이 따른다. 쿠버네티스 세계에 첫 발을 딛은 사용자는 더 큰 생태계의 전문가가 되기 위한 시간이나 능력이 부족하다. 이 책은 쿠버네티스 생태계의 구성요소를 소개한다. 또한 개별 도구와 프로젝트가 언제 적합한지를 보여주며, 독자가 고민하는 문제를 적절한 도구로 평가하는 방법을 소개한다. 특정 도구를 사용하라고 독자에게 권하는 것을 넘어, 문제의 종류를 해결하는 일련의 도구를 이해하는 더 큰 프레임워크라는 특징을 설명한다. 문제의 존재 여부를 파악하고, 다양한 접근 방식의 강점과 약점을 알고, 실제로 시작하는 데 실용적인 조언을 제공한다. 쿠버네티스를 프로덕션 환경으로 전환하려는 사람에게 매우 가치 있는 정보가 가득하다. - 조 베다 (VMware 탄주(Tanzu)의 수석 엔지니어, 쿠버네티스 공동 창시자) |