Istio in Action

서비스 메시 표준, 이스티오 완벽 해부
$48.30
SKU
9791161758336
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Thu 11/7 - Wed 11/13 (주문일로부 10-14 영업일)

Express Shipping estimated by Mon 11/4 - Wed 11/6 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/09/10
Pages/Weight/Size 188*235*31mm
ISBN 9791161758336
Categories IT 모바일 > 컴퓨터 공학
Description
분산형 서비스를 관리하는 강력한 도구인 이스티오 서비스 메시를 소개한다. 이 책은 단순한 기능적 소개를 넘어 서비스 메시의 필요성, 아키텍처를 소개하고 실용적이고 복잡한 사용사례까지도 다루고 있다. 형식 면에서는 실용적인 예제와 다이어그램을 통해 이해하기 쉽게 저술됐다. 이스티오 설치 및 구성, 트래픽 관리, 보안 구축, 가시성 확보 등의 주제를 포괄적으로 다루며, 개발자와 운영 엔지니어 모두에게 도움이 될 책이다.
Contents
1부 이스티오 이해하기

1장. 서비스 메시 소개하기

1.1 속도를 높이며 마주하는 문제들
1.1.1 클라우드 인프라는 신뢰할 수 없다
1.1.2 서비스 상호작용을 복원력 있게 만들기
1.1.3 일어나고 있는 일 실시간으로 이해하기
1.2 이 과제를 애플리케이션 라이브러리로 해결해보기
1.2.1 애플리케이션별 라이브러리의 단점
1.3 이런 관심사를 인프라에 전가하기
1.31 애플리케이션 인식 서비스 프록시
1.3.2 엔보이 프록시 만나기
1.4 서비스 메시란 무엇인가?
1.5 이스티오 서비스 메시 소개
1.5.1 서비스 메시와 엔터프라이즈 서비스 버스의 관계
1.5.2 서비스 메시와 API 게이트웨이의 관계
1.5.3 마이크로서비스가 아닌 아키텍처에도 이스티오를 사용할 수 있는가?
1.5.4 이스티오가 분산 아키텍처에 적합한 경우
1.5.5 서비스 메시를 사용할 때의 단점은 무엇인가?
요약

2장. 이스티오 첫걸음

2.1 쿠버네티스에 이스티오 배포하기
2.1.1 예제에서 도커 데스크톱 사용하기
2.1.2 이스티오 배포판 받기
2.1.3 쿠버네티스에 이스티오 구성 요소 설치하기
2.2 이스티오 컨트롤 플레인 알아보기
2.2.1 istiod
2.2.2 ingress 및 egress 게이트웨이
2.3 서비스 메시에 첫 애플리케이션 배포해보기
2.4 복원력, 관찰 가능성, 트래픽 제어 기능을 갖춘 이스티오의 능력 살펴보기
2.4.1 이스티오 관찰 가능성
2.4.2 복원력을 위한 이스티오
2.4.3 트래픽 라우팅을 위한 이스티오
요약

3장. 이스티오의 데이터 플레인: 엔보이 프록시

3.1 엔보이 프록시란 무엇인가?
3.1.1 엔보이의 핵심 기능
3.1.2 엔보이와 다른 프록시 비교
3.2 엔보이 설정하기
3.2.1 정적 설정
3.2.2 동적 구성
3.3 엔보이 인 액션
3.3.1 엔보이의 Admin API
3.3.2 엔보이 요청 재시도
3.4 엔보이는 어떻게 이스티오에 맞는가?
요약

2부. 서비스 네트워크 트래픽 보안, 관찰, 제어하기

4장. 이스티오 게이트웨이: 클러스터로 트래픽 들이기

4.1 트래픽 인그레스 개념
4.1.1 가상 IP: 서비스 접근 단순화
4.1.2 가상 호스팅: 단일 접근 지점의 여러 서비스
4.2 이스티오 인그레스 게이트웨이
4.2.1 Gateway 리소스 지정하기
4.2.2 VirtualService로 Gateway 라우팅하기
4.2.3 전체적인 트래픽 흐름 개요
4.2.4 이스티오 인그레스 게이트웨이 vs
4.2.5 이스티오 인그레스 게이트웨이 vs
4.3 게이트웨이 트래픽 보안
4.3.1 TLS를 사용한 HTTP 트래픽
4.3.2 HTTPS로 HTTP 리다이렉트
4.3.3 상호 TLS를 사용한 HTTP 트래픽
4.3.4 여러 가상 호스트를 TLS로 서빙하기
4.4 TCP 트래픽
4.4.1 이스티오 게이트웨이에서 TCP 포트 노출하기
4.4.2 SNI 통과를 사용한 트래픽 라우팅
4.5 운영 팁
4.5.1 게이트웨이 책임 나누기
4.5.2 게이트웨이 주입
4.5.3 인그레스 게이트웨이 액세스 로그
4.5.4 게이트웨이 설정 줄이기
요약

5장. 트래픽 제어: 세밀한 트래픽 라우팅

5.1 새로운 코드 배포의 위험 줄이기
5.1.1 배포 vs
5.2 이스티오로 요청 라우팅하기
5.2.1 작업 공간 청소
5.2.2 catalog 서비스 v1 배포하기
5.2.3 catalog 서비스 v2 배포하기
5.2.4 모든 트래픽을 catalog 서비스 v1으로 라우팅하기
5.2.5 특정 요청을 v2로 라우팅하기
5.2.6 호출 그래프 내 깊은 위치에서 라우팅
5.3 트래픽 전환
5.3.1 Flagger로 카나리 릴리스하기
5.4 위험을 더욱 줄이기: 트래픽 미러링
5.5 이스티오의 서비스 디스커버리 기능을 사용해 클러스터 외부의 서비스로 라우팅하기
요약

6장. 복원력: 애플리케이션 네트워킹 문제 해결하기

6.1 애플리케이션에 복원력 구축하기
6.1.1 애플리케이션 라이브러리에 복원력 구축하기
6.1.2 이스티오로 이런 문제 해결하기
6.1.3 분산형 복원력 구현
6.2 클라이언트 측 로드 밸런싱
6.2.1 클라이언트 측 로드 밸런싱 시작하기
6.2.2 시나리오 설정하기
6.2.3 다양한 클라이언트 측 로드 밸런싱 전략 테스트하기
6.2.4 다양한 로드 밸런싱 알고리듬 이해하기
6.3 지역 인식 로드 밸런싱
6.3.1 지역 인식 로드 밸런싱 실습
6.3.2 가중치 분포로 지역 인식 로드 밸런싱 제어 강화
6.4 투명한 타임아웃과 재시도
6.4.1 타임아웃
6.4.2 재시도
6.4.3 고급 재시도
6.5 이스티오를 이용한 서킷 브레이킹
6.5.1 커넥션 풀 제어로 느린 서비스에 대응하기
6.5.2 이상값 감지로 비정상 서비스에 대응하기
요약

7장. 관찰 가능성: 서비스의 동작 이해하기

7.1 관찰 가능성이란 무엇인가?
7.1.1 관찰 가능성 vs
7.1.2 이스티오는 어떻게 관찰 가능성을 돕는가?
7.2 이스티오 메트릭 살펴보기
7.2.1 데이터 플레인의 메트릭
7.2.2 컨트롤 플레인의 메트릭
7.3 프로메테우스로 이스티오 메트릭 긁어오기
7.3.1 프로메테우스와 그라파나 설정하기
7.3.2 이스티오 컨트롤 플레인과 워크로드를 긁어가도록
프로메테우스 오퍼레이터 설정하기
7.4 이스티오 표준 메트릭 커스터마이징하기
7.4.1 기존 메트릭 설정하기
7.4.2 새로운 메트릭 만들기
7.4.3 새 속성으로 호출 그룹화하기
요약

8장. 관찰 가능성: 그라파나, 예거, 키알리로 네트워크 동작 시각화하기

8.1 그라파나를 사용해 이스티오 서비스와 컨트롤 플레인 메트릭 시각화하기
8.1.1 이스티오의 그라파나 대시보드 설정하기
8.1.2 컨트롤 플레인 메트릭 보기
8.1.3 데이터 플레인 메트릭 보기
8.2 분산 트레이싱
8.2.1 분산 트레이싱은 어떻게 작동하는가?
8.2.2 분산 트레이싱 시스템 설치하기
8.2.3 분산 트레이싱을 수행하도록 이스티오 설정하기
8.2.4 분산 트레이싱 데이터 보기
8.2.5 트레이스 샘플링, 강제 트레이스, 커스텀 태그
8.3 키알리를 이용한 시각화
8.3.1 키알리 설치하기
8.3.2 결론
요약

9장. 마이크로서비스 통신 보호하기

9.1 애플리케이션 네트워크 보안의 필요성
9.1.1 서비스 간 인증
9.1.2 최종 사용자 인증
9.1.3 인가
9.1.4 모놀리스와 마이크로서비스의 보안 비교
9.1.5 이스티오가 SPIFFE를 구현하는 방법
9.1.6 이스티오 보안 요약
9.2 자동 상호 TLS
9.2.1 환경 설정하기
9.2.2 이스티오의 PeerAuthentication 리소스 이해하기
9.3 서비스 간 트래픽 인가하기
9.3.1 이스티오에서 인가 이해하기
9.3.2 작업 공간 설정하기
9.3.3 워크로드에 정책 적용 시 동작 변경
9.3.4 전체 정책으로 기본적으로 모든 요청 거부하기
9.3.5 특정 네임스페이스에서 온 요청 허용하기
9.3.6 미인증 레거시 워크로드에서 온 요청 허용하기
9.3.7 특정 서비스 어카운트에서 온 요청 허용하기
9.3.8 정책의 조건부 적용
9.3.9 값 비교 표현식 이해하기
9.3.10 인가 정책이 평가되는 순서 이해하기
9.4 최종 사용자 인증 및 인가
9.4.1 JSON 웹 토큰이란 무엇인가?
9.4.2 인그레스 게이트웨이에서의 최종 사용자 인증 및 인가
9.4.3 RequestAuthentication으로 JWT 검증하기
9.5 커스텀 외부 인가 서비스와 통합하기
9.5.1 외부 인가 실습
9.5.2 이스티오에 외부 인가 설정하기
9.5.3 커스텀 AuthorizationPolicy 리소스 사용하기
요약

3부. 이스티오 운영

10장. 데이터 플레인 트러블 슈팅하기


10.1 가장 흔한 실수: 잘못 설정한 데이터 플레인
10.2 데이터 플레인 문제 식별하기
10.2.1 데이터 플레인이 최신 상태인지 확인하는 방법
10.2.2 키알리로 잘못된 설정 발견하기
10.2.3 istioctl로 잘못된 설정 발견하기
10.3 엔보이 설정에서 수동으로 잘못된 설정 발견하기
10.3.1 엔보이 관리 인터페이스
10.3.2 istioctl로 프록시 설정 쿼리하기
10.3.3 애플리케이션 문제 트러블 슈팅하기
10.3.4 ksniff로 네트워크 트래픽 검사
10.4 엔보이 텔레메트리로 자신의 애플리케이션 이해하기
10.4.1 그라파나에서 실패한 요청 비율 찾기
10.4.2 프로메테우스를 사용해 영향받는 파드 쿼리하기
요약

11장. 컨트롤 플레인 성능 튜닝하기

11.1 컨트롤 플레인의 주요 목표
11.1.1 데이터 플레인 동기화 단계 이해하기
11.1.2 성능을 결정짓는 요소
11.2 컨트롤 플레인 모니터링하기
11.2.1 컨트롤 플레인의 네 가지 황금 신호
11.3 성능 튜닝하기
11.3.1 워크스페이스 준비하기
11.3.2 최적화 전 성능 측정하기
11.3.3 이벤트 무시하기: 디스커버리 셀렉터로 디스커버리 범위 줄이기
11.3.4 이벤트 배치 처리 및 푸시 스로틀링 속성
11.4 성능 튜닝 가이드라인
요약

4부. 조직에서의 이스티오

12장. 조직 내에서 이스티오 스케일링하기


12.1 다중 클러스터 서비스 메시의 이점
12.2 다중 클러스터 서비스 메시 개요
12.2.1 이스티오 다중 클러스터 배포 모델
12.2.2 다중 클러스터 배포에서 워크로드는 어떻게 찾는가?
12.2.3 클러스터 간 워크로드 연결
12.2.4 클러스터 간 공통 신뢰
12.3 다중 클러스터, 다중 네트워크, 다중 컨트롤 플레인 서비스 메시 개요
12.3.1 다중 클러스터 배포 모델 선택하기
12.3.2 클라우드 인프라 준비하기
12.3.3 플러그인 CA 인증서 설정하기
12.3.4 각 클러스터에 컨트롤 플레인 설치하기
12.3.5 클러스터 간 워크로드 디스커버리 활성화하기
12.3.6 클러스터 간 연결 설정하기
12.3.7 클러스터 간 로드 밸런싱
요약

13장. 가상머신 워크로드를 메시에 통합하기

13.1 이스티오의 가상머신 지원
13.1.1 가상머신에서의 사이드카 프록시 설치 및 설정 단순화하기
13.1.2 가상머신 고가용성
13.1.3 메시 내 서비스의 DNS 해석
13.2 인프라 준비하기
13.2.1 서비스 메시 준비하기
13.2.2 가상머신 프로비저닝
13.3 가상머신까지 메시 확장
13.3.1 istiod와 클러스터 서비스들을 가상머신에 노출하기
13.3.2 WorkloadGroup으로 워크로드 그룹 나타내기
13.3.3 가상머신에 istio-agent 설치 및 설정하기
13.3.4 클러스터 서비스로 트래픽 라우팅하기
13.3.5 트래픽을 WorkloadEntry로 라우팅하기
13.3.6 컨트롤 플레인이 가상머신 설정: 상호 인증 강제
13.4 DNS 프록시 이해하기
13.4.1 DNS 프록시가 클러스터 호스트네임을 해석하는 방법
13.4.2 DNS 프록시가 인식하는 호스트네임은 무엇인가?
13.5 에이전트 동작 커스터마이징하기
13.6 메시에서 WorkloadEntry 제거하기
요약

14장. 이스티오의 요청 처리 기능 확장하기

14.1 엔보이의 확장 기능
14.1.1 엔보이의 필터 체인 이해하기
14.1.2 확장용 필터
14.1.3 이스티오의 데이터 플레인 커스터마이징하기
14.2 EnvoyFilter 리소스로 엔보이 필터 설정하기
14.3 외부 호출로 요청 속도 제한하기
14.3.1 엔보이 속도 제한 이해하기
14.4 루아로 이스티오의 데이터 플레인 확장하기
14.5 웹어셈블리로 이스티오의 데이터 플레인 확장하기
14.5.1 웹어셈블리 소개
14.5.2 왜 엔보이에 웹어셈블리를 사용하는가?
14.5.3 웹어셈블리로 새로운 엔보이 필터 만들기
14.5.4 meshctl로 새 엔보이 필터 빌드하기
14.5.5 새로운 웹어셈블리 엔보이 필터 배포하기
요약

부록 A. 이스티오 설치 커스터마이징
부록 B. 이스티오의 사이드카와 그 주입 옵션
부록 C. 이스티오 보안: SPIFFE
부록 D. 이스티오 구성 요소 트러블 슈팅하기
부록 E. 가상머신이 메시에 참여하도록 구성하는 방법
Author
크리스티안 포스타,라이너 말로쿠,연주영
Solo.io의 글로벌 필드 CTO(Global Field CTO)이자 부사장이다. 클라우드 네이티브 커뮤니티에서는 저자, 블로거(https://blog.christianposta.com), 강연자이자 서비스 메시와 클라우드 네이티브 생태계에 속한 다양한 오픈소스 프로젝트의 기여자로 잘 알려져 있다. 엔터프라이즈와 초대형 IT 기업에서 경험을 쌓았으며, 현재는 조직들이 대규모(large-scale)의 탄력적인 클라우드 네이티브 분산 아키텍처를 구축하고 배포하는 데 도움을 주고 있다. 분산 시스템 개념, 마이크로서비스, 데브옵스, 클라우드 네이티브 애플리케이션 설계로 팀을 멘토링하고 훈련시키면서 성공으로 이끄는 것을 즐긴다.
Solo.io의 글로벌 필드 CTO(Global Field CTO)이자 부사장이다. 클라우드 네이티브 커뮤니티에서는 저자, 블로거(https://blog.christianposta.com), 강연자이자 서비스 메시와 클라우드 네이티브 생태계에 속한 다양한 오픈소스 프로젝트의 기여자로 잘 알려져 있다. 엔터프라이즈와 초대형 IT 기업에서 경험을 쌓았으며, 현재는 조직들이 대규모(large-scale)의 탄력적인 클라우드 네이티브 분산 아키텍처를 구축하고 배포하는 데 도움을 주고 있다. 분산 시스템 개념, 마이크로서비스, 데브옵스, 클라우드 네이티브 애플리케이션 설계로 팀을 멘토링하고 훈련시키면서 성공으로 이끄는 것을 즐긴다.