이미 소장하고 있다면 판매해 보세요.
|
1장. 도커 및 컨테이너 기초
__기술 요구 사항 __컨테이너화의 필요성 이해 ____쿠버네티스에서 도커를 지원 중단하는 이유 ____도커 소개 __도커 이해하기 ____컨테이너는 일시적이다 ____도커 이미지 ____이미지 레이어 ____영구 데이터 ____컨테이너에서 실행 중인 서비스에 액세스 __도커 설치 ____도커 설치 준비 ____Ubuntu에 도커 설치 ____도커 권한 부여 __도커 CLI 사용 ____docker help ____docker run ____docker ps ____docker start and stop ____docker attach ____docker exec ____docker logs ____docker rm __요약 __문제 2장. KinD를 이용한 쿠버네티스 배포 __기술 요구 사항 __쿠버네티스 컴포넌트 및 오브젝트 소개 ____클러스터와 상호 작용 __개발 클러스터 사용 ____기본 KinD 쿠버네티스 클러스터로 작업하기 ____노드 이미지 이해 ____KinD 및 도커 네트워킹 ____중첩 인형 추적 __KinD 설치 ____KinD 설치 - 사전 조건 ______kubectl 설치 ____KinD 바이너리 설치 __KinD 클러스터 만들기 ____단순 클러스터 생성 ____클러스터 삭제 ____클러스터 설정 파일 생성 ____다중 노드 클러스터 설정 ____컨트롤 플레인 및 Kubelet 옵션 커스터마이징 ____사용자 지정 KinD 클러스터 만들기 ____Calico 설치 ____인그레스 컨트롤러 설치 __KinD 클러스터 검토 ____KinD 스토리지 오브젝트 ____스토리지 드라이버 ____KinD 스토리지 클래스 ____KinD의 스토리지 프로비저너 사용 __인그레스용 커스텀 로드밸런서 추가 ____설치 사전 요구 사항 ____KinD 클러스터 설정 생성하기 ____사용자 지정 HAProxy 컨테이너 배포 ____HAProxy 트래픽 흐름 이해 ____kubelet 장애 시뮬레이션 __요약 __문제 3장. 쿠버네티스 부트캠프 __기술 요구 사항 __쿠버네티스 컴포넌트 개요 ____컨트롤 플레인 살펴보기 ____쿠버네티스 API 서버 ____Etcd 데이터베이스 ____kube-scheduler ____kube-controller-manager ____cloud-controller-manager __작업자 노드 컴포넌트 이해 ____kubelet ____kube-proxy ____컨테이너 런타임 __API 서버와 상호 작용 ____쿠버네티스 kubectl 유틸리티 사용 ____Verbose 옵션 이해 ____일반 kubectl 명령어 __쿠버네티스 리소스 소개 ____쿠버네티스 매니페스트 ____쿠버네티스의 리소스는 무엇인가? ____쿠버네티스 리소스 검토 ______컨피그맵 ______엔드포인트 ______이벤트 ______네임스페이스 ______노드 ______퍼시스턴트 볼륨 클레임 ______퍼시스턴트 볼륨 ______파드 ______레플리케이션 컨트롤러 ______리소스쿼터 ______시크릿 ______서비스어카운트 ______서비스 ______커스텀리소스데피니션 ______데몬셋 ______디플로이먼트 ______레플리카셋 ______스테이트풀셋 ______HorizontalPodAutoscalers ______크론잡 ______잡 ______인그레스 ______네트워크폴리시 ______파드 시큐리티 폴리시 ______클러스터롤바인딩 ______클러스터롤 ______롤바인딩 ______롤 ______CSI 드라이버 ______CSI 노드 ______스토리지 클래스 __요약 __문제 4장. 서비스, 로드밸런서, ExternalDNS 그리고 글로벌 밸런싱 __기술 요구 사항 __요청에 대한 워크로드 노출 ____서비스 작동 방식 이해 ______서비스 생성 ______DNS를 사용해 서비스 해결 ____다양한 서비스 유형 이해 ______ClusterIP 서비스 ______NodePort 서비스 ______로드밸런서 서비스 ______ExternalName 서비스 __로드밸런서 소개 ____OSI 모델에 대해서 __레이어 7 로드밸런서 ____이름 해석 및 레이어 7 로드밸런서 ____이름 해석에 nip.io 사용 ____인그레스 규칙 생성 __레이어 4 로드밸런서 ____레이어 4 로드밸런서 옵션 ____레이어 4 로드밸런서로 MetalLB 사용 ______MetalLB 설치 ______MetalLB 설정 파일 이해 ______MetalLB 컴포넌트 ________스피커 ________컨트롤러 ______로드밸런서 서비스 생성 ____MetalLB에 여러 IP 풀 추가 ______다중 프로토콜 사용 ____여러 가지 프로토콜 문제 ____MetalLB와 함께 여러 프로토콜 사용 ____공유 IP 사용 __엔터프라이즈를 위한 로드밸런서 강화 __서비스 이름을 외부에서 사용할 수 있도록 설정 ____external-dns 설정 ____external-dns와 CoreDNS 연동 ______CoreDNS에 ETCD 존 추가 ________ExternalDNS 연동으로 로드밸런서 서비스 생성 ________CoreDNS와 엔터프라이즈 DNS의 연동 ____프라이머리 DNS 서버 설정 ____CoreDNS로의 DNS 전달 테스트 __멀티 클러스터 간의 로드밸런싱 ____쿠버네티스 글로벌 밸런서 소개 ____K8GB의 요건 ____클러스터에 K8GB 배포 ______K8GB 로드밸런싱 옵션 이해 ______헬름 차트 값 사용자 정의 ______헬름을 사용한 K8GB 설치 ____K8GB를 사용한 고가용성 애플리케이션 배포 ______커스텀 리소스르 사용해 K8GB에 애플리케이션 추가 ______인그레스 어노테이션을 사용해 K8GB에 애플리케이션 추가 ______K8GB의 글로벌 로드밸런싱 기능 이해 ______K8GB CoreDNS 서버의 동기화 유지 __요약 __문제 5장. 클러스터 인증 연동 __기술 요구 사항 __쿠버네티스가 당신을 어떻게 아는지 이해하기 ____외부 사용자 ____쿠버네티스의 그룹 ____서비스어카운트 __OpenID Connect 이해 ____OpenID Connect 프로토콜 ____OIDC와 API의 상호 작용을 추적 ______id_token ____기타 인증 옵션 ______인증서 ______서비스어카운트 ______TokenRequest API ______커스텀 인증 웹훅 ______키스톤 __OpenID Connect에 대한 KinD 설정 ____요구 사항에 대한 대응 ____쿠버네티스에서의 LDAP 및 액티브 디렉터리 사용 ____액티브 디렉터리 그룹을 RBAC 롤바인딩에 매핑 ____쿠버네티스 대시보드 액세스 ____쿠버네티스 CLI 액세스 ____엔터프라이즈 규정 준수 요구 사항 ____모든 것을 한데 모으기 ____OpenUnison 배포 ____OIDC를 사용하기 위한 쿠버네티스 API 설정 ____OIDC 연동 확인 ____kubectl과 함께 토큰 사용 __클라우드 관리형 클러스터와 인증을 연동하기 위한 가장 도입 ____가장이란? ____보안에 관한 고려 사항 __가장을 위한 클러스터 구성 ____가장 테스트 __OpenUnison을 사용하지 않는 가장 설정 ____가장 RBAC 정책 ____기본 그룹 __클러스터에 대한 파이프라인에서 인증 ____토큰 사용 ____인증서 사용 ____안티 패턴 회피 __요약 __문제 6장. 롤 기반 액세스 제어 정책 및 감사 __기술 요구 사항 __RBAC 소개 __롤이란 ____롤 식별 ____롤 대 클러스터롤 ____네거티브 롤 ____집계된 클러스터롤 ____롤바인딩 및 클러스터 롤바인딩 ______클러스터롤 및 롤바인딩 결합 __리소스에 대한 액세스 권한을 부여하기 위해 엔터프라이즈 ID를 쿠버네티스에 매핑 __네임스페이스 멀티테넌시 구현 __쿠버네티스 감사 ____감사 정책 만들기 ____클러스터에서 감사 활성화 __audit2rbac를 사용한 정책 디버깅 __요약 __문제 7장. 안전한 쿠버네티스 대시보드 배포 __기술 요구 사항 __대시보드에서의 사용자 ____대시보드 아키텍처 ____인증 방법 __대시보드 보안 위험 이해 ____안전하지 않은 대시보드 배포 ____토큰을 사용해 로그인 __리버스 프록시로 대시보드 배포 ____로컬 대시보드 ____기타 클러스터 레벨 애플리케이션 __오픈유니슨과 대시보드 통합 __요약 __문제 8장. 개방형 정책 에이전트를 사용한 보안 확장 __기술 요구 사항 __동적 승인 컨트롤러 소개 __OPA의 정의 및 동작 ____OPA 아키텍처 ____OPA 정책 언어, Rego ____게이트키퍼 ______게이트키퍼 배포 ____자동화된 테스트 프레임워크 __Rego를 사용한 정책 작성 ____OPA 정책 개발 ____OPA 정책 테스트 ____게이트키퍼에 정책 배포 ____동적 정책 구축 ____Rego 디버깅하기 ____기존 정책 사용 __메모리 제약 적용 ____게이트키퍼 캐시 활성화 ____테스트 데이터 모킹 ____정책 구축 및 배포 __오브젝트 및 기본값 변형 __요약 __문제 9장. 게이트키퍼로 노드 보안 구현 __기술 요구 사항 __노드 보안 ____컨테이너와 VM 간의 차이점 이해 ____컨테이너 브레이크아웃 ____적절한 컨테이너 설계 __게이트키퍼로 노드 보안 적용 ____파드 보안 정책 ____PSP와 게이트키퍼의 차이점 ____노드 보안 정책 승인 ____노드 보안 정책 배포 및 디버깅 ______보안 컨텍스트 기본값 생성 ______클러스터 정책 적용 ______제약 조건 위반 디버깅 ______멀티테넌트 클러스터의 스케일링 정책 배포 __요약 __문제 10장. 팔코, 데브옵스 AI, ECK를 통한 감사 __기술 요구 사항 __감사 살펴보기 __팔코 소개 __팔코 설정 파일 살펴보기 ____헬름 밸류 파일 ____헬름 밸류 커스터마이징 ____팔코 규칙 설정 파일 ______규칙 이해 ______조건(필드 및 값) 이해 ______매크로 사용 ______목록 이해하기 ____사용자 지정 규칙 생성 및 추가 ______기존 규칙 수정 ______신규 규칙 만들기 __팔코 배포 ____팔코사이드킥 소개 ____팔코사이드킥 설치 ____쿠브리스의 이해 ____쿠브리스의 설치 ____쿠브리스를 사용한 함수 배포 __데브옵스 AI ____이벤트에 대한 자동 응답 이해 ______NGINX 서버 배포 및 연결 테스트 ______파드에 대한 공격 시뮬레이션 ____팔코 이벤트 관측 ______FalcoSideKick-UI 사용 ____로깅 시스템 배포 ______신규 네임스페이스 생성 ______ECK 오퍼레이터 배포 ______일래스틱서치, 파일비트, 키바나 배포 ____로그를 보기 위한 ECK 구성 요소 사용 ____키바나 인덱스 생성 ____이벤트 탐색 ____시각화 ____대시보드 생성 ____팔코 이벤트 유형에 대한 시각화 생성 __요약 __문제 11장. 워크로드 백업 __기술 요구 사항 __쿠버네티스 백업에 대한 이해 __etcd 백업 수행 ____필요한 인증서 백업 ____etcd 데이터베이스 백업 __VMware 벨레로 소개 및 설정 ____벨레로 요구 사항 ____벨레로 CLI 설치 ____벨레로 설치 ______백업 스토리지 위치 ______MinIO 배포 ______MinIO 및 콘솔 노출 ______S3 대상 설정 생성 __벨레로를 사용한 워크로드 백업 ____일회성 클러스터 백업 실행 ____클러스터 백업 스케줄링 ____사용자 지정 백업 생성 __CLI를 사용한 벨레로 관리 ____일반적인 벨레로 명령 사용 ______벨레로 오브젝트 목록 ______벨레로 오브젝트 세부 정보 검색 ______오브젝트 생성 및 삭제 __백업에서 복원 ____복원 작업 ______백업에서 배포 복원 ____네임스페이스 백업 ______장애 시뮬레이션 ____네임스페이스 복원 ____백업을 사용한 신규 클러스터 워크로드 생성 ______클러스터 백업 ______신규 클러스터 구축 ____신규 클러스터에 백업 복원 ______신규 클러스터에 벨레로 설치 ______신규 클러스터에서 백업 복원 ______신규 클러스터 삭제 __요약 __문제 12장. 이스티오 소개 __기술 요구 사항 __서비스 메시에 신경을 써야 하는 이유는 무엇일까? ____워크로드 관측성 ____트래픽 관리 ______블루/그린 배포 ______카나리 배포 ____문제가 발생하기 전에 문제 찾기 ____보안 __이스티오 개념 소개 __이스티오 구성 요소 이해 ______istiod를 사용해 컨트롤 플레인을 단순하게 만들기 ______istiod 파드 브레이킹 ______Pilot - 사이드카 관리 ______Galley - 구성 검증 ______Citadel - 인증서 관리 ______Mixer - 보안 키퍼 ____이스티오-인그레스 게이트웨이에 대한 이해 ____이스티오-이그레스 게이트웨이에 대한 이해 __이스티오 설치 ____이스티오 다운로드 ____프로필을 사용한 이스티오 설치 __이스티오 리소스 소개 ____권한 부여 정책 ______예 1: 모든 액세스 거부 및 허용 ______예 2: 워크로드에 GET 메서드만 허용 ______예 3: 특정 소스의 요청 허용 ______게이트웨이 ______가상 서비스 ____대상 규칙 ______피어 인증 ______인증 요청 ______서비스 항목 ______사이드카 ______Envoy 필터 __관측성을 제공하는 애드온 구성 요소 배포 ____프로메테우스 설치 __Jaeger 설치 ____Kiali 설치 __서비스 메시에 애플리케이션 배포 ____첫 번째 애플리케이션을 메시에 배포하기 ______Kiali를 사용한 메시 워크로드 관찰 ______Kiali 개요 화면 ______그래프 뷰 사용 ______애플리케이션 뷰 사용 ______워크로드 뷰 사용 ______서비스 뷰 사용 ______이스티오 구성 뷰 __요약 __문제 13장. 이스티오에서 애플리케이션 빌드 및 배포 __기술 요구 사항 __마이크로서비스와 모놀리스의 비교 ____마이크로서비스와 모놀리식 아키텍처에 대한 나의 이야기 ____애플리케이션 아키텍처 비교 ______모놀리식 애플리케이션 설계 ______마이크로서비스 설계 ______모놀리스와 마이크로서비스 중에서 선택 ______이스티오를 사용한 마이크로서비스 관리 지원 __모놀리스 배포하기 ____모놀리스를 클러스터 외부에 노출 ____고정 세션 구성 ____Kiali와 오픈유니슨의 통합 __마이크로서비스 구축 ____Hello World 배포하기 ____우리 서비스에 인증 통합 ____우리 서비스에 액세스 권한 부여 ____서비스를 누가 사용하고 있는지 알고 싶다면 ____사용자 자격 부여 ______서비스 승인 ______이스티오와 함께 OPA 사용 ____다른 서비스 호출하기 ______OAuth2 토큰 교환 사용 ______서비스 인증하기 ______수표 작성 서비스 배포 및 실행 ______가장 사용 ______위임 사용 ______서비스 간 토큰 전달 ______단순 가장 사용 __API 게이트웨이가 필요한가? __요약 __문제 14장. 플랫폼 프로비저닝 __기술 요구 사항 __파이프라인 설계 ____독단적 플랫폼 ____파이프라인 보안 ____플랫폼 요구 사항 구축 ____기술 스택 선택 __클러스터 준비 ____cert-manager 배포 ____도커 컨테이너 레지스트리 배포 ____오픈유니슨 및 게이트키퍼 배포 __깃랩 배포 ____예제 프로젝트 만들기 __Tekton 배포 ____Hello World 만들기 ____자동으로 빌드하기 __ArgoCD 배포 __오픈유니슨을 사용한 프로젝트 온보딩 자동화 ____깃옵스 전략 설계 ____깃랩 통합 ____TektonCD 대시보드 통합 ____ArgoCD 통합 ____오픈유니슨 업데이트 __애플리케이션 배포 ____쿠버네티스에서 애플리케이션 생성 ____개발자에게 접근하기 ____개발 매니페스트 배포 ____Tekton 파이프라인 배포 ____파이프라인 실행 ____프로덕션으로 프로모션 __요약 __문제 |
Marc Boorshtein
Scott Surovich
김상필의 다른 상품
김진웅의 다른 상품
최진영(럭키바닐라 3세)의 다른 상품
|
◈ 이 책에서 다루는 내용 ◈
◆ KinD를 이용한 다중 노드 쿠버네티스 클러스터 생성 ◆ 인그레스, MetalLB, 외부-DNS 및 새로운 샌드박스 프로젝트 쿠버네티스 글로벌 밸런서(K8GB) 구현 ◆ OIDC 및 가장(impersonation)을 이용한 클러스터 구성 ◆ 이스티오 서비스 메시에 모놀리식 애플리케이션 배포 ◆ 엔터프라이즈 인증을 쿠버네티스에 매핑 ◆ OPA 및 게이트키퍼를 사용한 클러스터 보안 ◆ 팔코, 데브옵스 AI, ECK를 통한 감사 기능 강화 ◆ 재해 복구 및 클러스터 마이그레이션을 위한 워크로드 백업 ◆ Tekton, 깃랩 및 ArgoCD를 이용한 깃옵스 플랫폼 배포 ◈ 이 책의 대상 독자 ◈ 여러 엔터프라이즈 환경에서 클러스터를 이용해 수년간 작업한 저자들의 경험을 바탕으로 데브옵스 팀이 쿠버네티스의 기초 이상으로 기술을 확장할 수 있도록 돕기 위해 이 책을 만들었다. 쿠버네티스와 클러스터 설치, 배포 생성, 쿠버네티스 개체 사용의 기본 사항을 소개하는 책이 많다. 우리의 계획은 기본 클러스터를 넘어서는 책을 만드는 것이었고 책의 분량을 적절한 수준으로 유지하기 위해 쿠버네티스의 기본 사항을 다시 살펴보진 않기 때문에 어느 정도 쿠버네티스에 대한 경험이 있는 독자가 읽기에 적합하다. 주요 초점은 엔터프라이즈 기능으로 클러스터를 확장하는 것이지만, 책의 첫 번째 장에서는 도커 핵심 주제와 쿠버네티스 객체를 다시 살펴볼 것이다. 고급 주제들을 다루는 장들을 최대한 활용하려면 쿠버네티스 객체를 확실하게 이해하는 것이 중요하다. ◈ 이 책의 구성 ◈ 1장, ‘도커 및 컨테이너 기초’에서는 개발자가 해결해야 할 도커와 쿠버네티스의 문제를 다룬다. 도커 데몬, 데이터, 설치 및 도커 CLI 사용을 포함해 도커의 기초 개념을 소개한다. 2장, ‘KinD를 이용한 쿠버네티스 배포’에서는 단일 노드 클러스터에서 다중 노드 클러스터까지 쿠버네티스 클러스터를 생성할 수 있는 강력한 도구인 KinD를 다룬다. 기본 KinD 클러스터와 사용 방법을 설명한다. 3장, ‘쿠버네티스 부트캠프’에서는 쿠버네티스 기본을 다시 살펴보며, 쿠버네티스를 처음 접하는 경우 클러스터를 포함한 대부분의 객체를 다룰 것이다. 각 객체의 기능과 클러스터에서의 기능에 대한 설명과 함께 각 객체를 설명한다. 이는 객체에 대한 복습 또는 "포켓 가이드"를 의미한다. 각 객체에 대한 모든 세부 정보가 포함돼 있진 않다. 4장, ‘서비스, 로드 밸런서, ExternalDNS 그리고 글로벌 밸런싱’에서는 서비스를 이용해 쿠버네티스 배포를 노출하는 방법을 소개한다. 각 서비스 유형은 예제와 함께 설명되며 레이어 7 및 레이어 4 로드 밸런서를 모두 사용해 서비스 유형을 노출하는 방법을 배우게 된다. Ingress 컨트롤러의 기본 사항을 넘어 MetalLB를 설치해 서비스에 대한 레이어 4 액세스를 제공하는 방법을 설명한다. 또한 기본 쿠버네티스 글로벌 로드 밸런싱을 제공하는 MetalLB 및 K8GB에 의해 노출되는 서비스에 대한 동적 이름 확인 기능을 제공하기 위해 external-dns라는 인큐베이터 프로젝트를 설치해 엔터프라이즈 클러스터에 도움이 되는 두 가지 추가 기능에 대해 알아본다. 5장, ‘클러스터 인증 연동’에서는 "클러스터가 구축되면 사용자가 어떻게 클러스터에 액세스하는가?"라는 질문에 답할 수 있도록 한다. 특히 OpenID Connect의 작동 방식과 이를 이용해 클러스터에 액세스해야 하는 이유를 자세히 살펴본다. 또한 파이프라인에 인증하는 방법을 배우고 마지막으로 피해야 할 몇 가지 안티 패턴을 다루고 이 이유를 설명한다. 6장, ‘롤 기반 액세스 제어 정책 및 감사’에서는 사용자가 클러스터에 액세스할 수 있게 되면 액세스를 제한하는 방법을 알아야 한다고 설명한다. 사용자에게 전체 클러스터를 제공하는지 네임스페이스만 제공하는지에 상관없이 쿠버네티스가 역할 기반 액세스 제어(RBAC) 시스템을 통해 액세스 권한을 부여하는 방법을 알아야 한다. RBAC 정책을 설계하는 방법, 디버깅하는 방법 및 멀티 테넌시를 위한 다양한 전략을 소개한다. 7장, ‘안전한 쿠버네티스 대시보드 배포’에서는 클러스터가 실행되면 사용자가 가장 먼저 보게 되는 쿠버네티스 대시보드를 다룬다. 보안에 대해서는 많은 신화가 있다. 클러스터는 네트워크 대시보드, 로깅 시스템, 모니터링 대시보드와 같은 다른 웹 애플리케이션들로 구성된다. 대시보드가 어떻게 구성돼 있는지, 대시보드를 적절하게 보호하는 방법, 대시보드를 배포하지 않는 방법의 예를 자세히 살펴보고 그 이유에 대해 자세히 설명한다. 8장, ‘Open Policy Agent(OPA)를 사용한 보안 확장’에서는 RBAC를 이용해 구현할 수 없는 정책을 활성화하기 위해 Open Policy Agent 및 게이트키퍼를 배포하는 데 필요한 지침을 제공한다. 게이트키퍼를 배포하는 방법, Rego에서 정책을 작성하는 방법, OPA에 내장된 테스트 프레임워크를 사용해 정책을 테스트하는 방법을 다룬다. 9장, ‘게이트키퍼로 노드 보안 구현’에서는 파드를 실행하는 노드의 보안을 다룬다. 컨테이너를 안전하게 설계하는 방법과 컨테이너가 필요하지 않은 리소스에 액세스하지 못하도록 제한하는 게이트키퍼를 이용해서 정책을 구축하는 방법에 대해 논의한다. 10장, ‘Falco, DevOps AI, ECK를 통한 감사’에서는 쿠버네티스에 API 액세스를 위한 이벤트 로깅이 포함돼 있지만 컨테이너 런타임 이벤트를 캡처하는 기능은 없다는 점을 설명한다. 이러한 제한 사항을 해결하기 위해 우리는 Sysdig가 CNCF에 기부한 Falco라는 프로젝트를 설치할 것이다. Falco를 이용하면 Kubeless 기능을 사용해 Falco에서 캡처한 이벤트를 기반으로 작업을 트리거하는 방법과 FalcoSideKick을 이용해서 Falco에서 캡처한 데이터를 표시해 FalcoSidekick-UI 및 ECK(Elastic Cloud on Kubernetes) 스택에 이벤트를 전달하는 방법을 알아본다. 11장, ‘워크로드 백업’에서는 Velero를 사용해서 재해 복구 또는 클러스터 마이그레이션을 위해 클러스터 워크로드의 백업을 생성하는 방법을 설명한다. 워크로드 예제의 백업을 생성하고 클러스터 마이그레이션을 시뮬레이션하기 위해 백업을 새로운 클러스터로 복원하기 위해 MinIO를 사용하여 S3 호환 스토리지 위치를 직접 생성한다. 12장, ‘Istio 소개’에서는 많은 기업이 보안, 트래픽 라우팅, 인증, 추적, 관측성과 같은 고급 기능을 클러스터에 제공하기 위해 이용하는 서비스 메시를 설명한다. 널리 사용되는 오픈 소스 서비스 메시인 Istio와 해당 아키텍처 그리고 가장 일반적으로 사용되는 리소스를 소개한다. 애플리케이션 예제를 이용해서 Istio를 KinD 클러스터에 배포하고 Kiali라는 도구를 활용해 애플리케이션의 동작을 모니터링하는 방법을 알아본다. 13장에서는 Istio 애플리케이션 빌드 및 배포를 다룬다. Istio를 배포한 후에 이를 이용하는 애플리케이션을 개발하고 배포하고 싶을 것이다. 모놀리스와 마이크로서비스의 차이점과 배포 방법을 살펴보는 것으로 시작한다. 아울러 Istio에서 실행할 마이크로서비스 구축을 단계별로 진행하고 서비스에 대한 인증, 권한 부여, 서비스 간 인증과 같은 고급 주제를 살펴본다. 또한 OIDC 공급자와 JSON 웹 토큰을 사용해 쿠버네티스의 기존 역할을 활용해 Kiali 액세스를 보호하는 방법도 알아본다. 14장, ‘플랫폼 프로비저닝’에서는 GitLab, Tekton, ArgoCD, 게이트키퍼 및 오픈유니슨을 이용해 다중 테넌트 클러스터를 자동화하기 위한 플랫폼을 구축하는 방법을 설명한다. 파이프라인을 구축하는 방법과 파이프라인 생성을 자동화하는 방법을 살펴본다. 파이프라인을 구동하는 데 사용하는 개체들이 서로 어떻게 관련돼 있는지, 시스템 간 관계를 구축하는 방법, 마지막으로 파이프라인 배포 자동화를 위한 셀프 서비스 워크플로우를 만드는 방법을 알아본다. ◈ 지은이의 말 ◈ 쿠버네티스는 데브옵스 팀이 애플리케이션을 개발, 테스트 및 배포하는 표준이 되면서 전 세계에 영향을 줬다. 대부분의 엔터프라이즈는 이미 쿠버네티스를 실행하고 있거나 이후에 실행할 계획을 갖고 있다. 주요 채용 사이트의 채용 공고를 살펴보면 거의 모든 유명 회사에 쿠버네티스와 관련한 자리가 열려 있음을 알 수 있다. 빠른 도입 속도로 인해 쿠버네티스 관련한 자리가 지난 4년 동안 2,000% 이상 증가했다. 기업이 해결하기 위해 애쓰고 있는 일반적인 문제 중 하나는 기업용 쿠버네티스에 대한 지식이 부족하다는 점이다. 이는 비교적 새로운 기술이고 운영 워크로드의 경우 훨씬 더 새로운 기술이기 때문에 기업에서는 클러스터를 안정적으로 실행할 수 있는 팀을 구성하는 데 문제가 있었다. 기본적인 쿠버네티스 기술을 갖춘 사람을 찾는 것이 점점 쉬워지곤 있지만 엔터프라이즈 클러스터에 필요한 주제에 관한 지식이 있는 사람을 찾는 것은 여전히 어려운 일이다. ◈ 옮긴이의 말 ◈ 쿠버네티스는 매력적인 서비스입니다. 무척 빠르게 발전하고 있으며 특히 클라우드와 함께 사용할 때의 가능성은 엄청나다고 생각합니다. 물론 지금 이 책이 최신의 기술 트렌드를 모두 반영하고 있진 않지만, 이렇게 정리된 정보가 이제 시작하려는 분이나 쿠버네티스를 좀 더 활용하고자 하는 분께 조금이나마 도움을 드릴 수 있길 바랍니다. 마지막으로 같이 번역에 참여해준 훌륭한 동료들과 이 책의 저자, 출판사에게도 감사를 드립니다. - 강세용 기업은 쿠버네티스를 사용해 유연성과 확장성을 누릴 수 있지만 동시에 보안 정책, 모니터링, 감사 등을 직접 구현해야 합니다. 도커와 쿠버네티스의 기본 개념부터 시작해 RBAC, 팔코Falco, OPA, 이스티오Istio와 같은 오픈소스 도구를 사용한 확장에 대해 실습 위주로 안내하기 때문에 엔터프라이즈에서는 어떤 방향으로 쿠버네티스를 다뤄야 하는지 조언을 얻을 수 있을 것이라고 생각합니다. - 김진웅 2014년부터 AWS Korea에서 솔루션즈 아키텍트와 클라우드 아키텍트로 일하고 있습니다. 쿠버네티스는 최근 컨테이너와 관련한 기술 가운데 가장 뜨거운 주제 중 하나입니다. 아울러 글로벌 회사에서 약 17년가량 일하면서 계속 컨테이너와 관련한 일을 하고 있어 이번 책 번역에 참여하게 돼 매우 기쁩니다. 또한 AWS의 다양한 팀원과 함께 번역과 기부 활동에 동참해 ‘Strive to be Earth’s Best Employer’라는 아마존 리더십 원칙을 실천할 수 있게 기회를 주신 에이콘출판사 여러분께도 감사드립니다. - 김상필 온프레미스에서 이기종 장비들에 컨테이너를 활용해 쉽게 배포를 성공했을 때의 감동이 아직도 생생합니다. 쿠버네티스만큼 역동적이고 빠르게 발전하는 오픈소스는 많지 않다고 생각합니다. 최근엔 스타트업에서 엔터프라이즈에 이르기까지 많은 기업이 쿠버네티스를 도입하고 있습니다. 쿠버네티스를 활용하고자 하는 분들께 좀 더 빠른 길을 안내하고자 이렇게 번역에 참여하게 됐습니다. 아울러 이렇게 훌륭한 동료들과 함께 멋진 기술에 대한 번역에 참여하게 돼 영광으로 생각합니다. - 박진우 AWS의 테크니컬 트레이너로서 쿠버네티스 기술에 많은 관심을 갖고 있습니다. 요즘 가장 핫한 기술 중 하나인 쿠버네티스 책의 번역을 같이할 수 있도록 기회를 만들어주신 든든한 동료들과 에이콘출판사에 감사드립니다. 쿠버네티스가 한국에 잘 알려지고 많이 사용하게 조금이라도 도움이 되기를 바랍니다. - 최진영 |