深入淺出Istio:Service Mesh快速入門與實踐
  • 推薦0
  • 收藏6
  • 瀏覽951

深入淺出Istio:Service Mesh快速入門與實踐

崔秀龍 (作者)  張國霞 (責任編輯)

  • 叢  書:博文視點云原生精品叢書
  • 書  號:978-7-121-35964-4
  • 出版日期:2019-03-01
  • 頁  數:216
  • 開  本:
  • 出版狀態:圖書立項
  • 維護人:張國霞
Google聯合IBM、Lyft推出的Istio,一經問世就受到了人們的普遍關注,其熱度迅速攀升,成為Service Mesh(服務網格)方案的代表項目。本書整理了Istio中的部分概念和案例,以快速入門的形式,對Istio的基礎用法一一進行講解,并在書末給出一些試用方面的建議。
在本書中,前3章從微服務和服務網格的簡短歷史開始,講述了服務網格的誕生過程、基本特性及Istio的核心功能,若對這些內容已經有所了解,則可以直接從第4章開始閱讀;第4、5章分別講解了Istio的配置和部署過程;第6章至第9章,通過多個場景來講解Istio的常用功能;第10章結合了筆者的實踐經驗,為讀者提供了Istio的一系列試用建議。本書沒有采用官方復雜的Book Info應用案例,而是采用客戶端+簡單HTTP服務端的案例,讀者隨時都能在短時間內啟動一個小的測試。
本書面向對服務網格技術感興趣,并希望進一步了解和學習Istio的中高級技術人員,假設讀者已經了解Kubernetes的相關概念并能夠在Kubernetes上熟練部署和管理微服務。若希望全面、深入地學習Kubernetes,可參考《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸》和《Kubernetes權威指南:企業級容器云實戰》。
Istio首著!Service Mesh很神秘?來!快速入門與實踐!從Kubernetes(K8s)到Istio,云原生走起。
崔秀龍
HPE軟件分析師;
Istio、Kubernetes項目成員;
Istio.io主要貢獻者之一;
《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸》作者;
《Kubernetes權威指南:企業級容器云實戰》作者;
自動化、馬拉松愛好者。
為什么寫作本書
Google聯合IBM、Lyft推出的Istio,一經問世就受到了人們的普遍關注,其熱度迅速攀升,將Service Mesh(服務網格)的命名者Linkerd遠遠拋在身后,成為Service Mesh方案的代表項目。筆者從Istio問世開始,便和ServiceMesher社區及眾多同樣看好Istio的朋友一起,持續關注和參與Istio項目,并在該過程中對Service Mesh的技術生態及Istio自身的來龍去脈有了一定的認識。
在和社區互動的過程中,筆者看到有很多用戶對這一新生事物一頭霧水,因此斗膽寫作本書,將Istio中的部分概念和案例重新整理,以快速入門的形式,對Istio的基礎用法一一進行講解,并在書末給出一些試用方面的建議。
本書讀者對象
本書面向對服務網格技術感興趣,并希望進一步了解和學習Istio的中高級技術人員,假設讀者已經了解Kubernetes的相關概念并能夠在Kubernetes上熟練部署和管理微服務。若希望全面、深入地學習Kubernetes,可參考《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸》和《Kubernetes權威指南:企業級容器云實戰》。
本書概要
本書圍繞Istio對服務網格的概念、歷史和能力,以各種實例為基礎,進行了易于上手和理解的講解。
前3章從微服務和服務網格的簡短歷史開始,講述了服務網格的誕生過程、基本特性及Istio的核心功能,若對這些內容已經有所了解,則可以直接從第4章開始閱讀。
第4、5章分別講解了Istio的配置和部署過程。
第6章至第9章,通過多個場景來講解Istio的常用功能。本書沒有采用官方復雜的復雜Book Info應用案例,而是采用客戶端+簡單HTTP服務端的案例,讀者隨時都能在短時間內啟動一個小的測試。
第10章結合了筆者的實踐經驗,為讀者提供了Istio的一系列試用建議。
希望讀者能通過本書快速地對Istio的功能特性有一個基本認識,理解其中的優點和不足,并進一步試用和評估。
相關資源
為方便大家學習和實踐,本書提供了兩個應用項目,其中,sleep客戶端應用項目的地址為https://github.com/fleeto/sleep,flaskapp服務端應用項目的地址為https://github.com/fleeto/flaskapp。另外,筆者深度參與的Istio官方文檔漢化項目也已上線,地址為https://istio.io/zh。
致謝
感謝永遠不知道筆者在做什么的崔夫人的大力支持;
感謝電子工業出版社工作嚴謹、高效的張國霞編輯,她在成書過程中對筆者的指導、協助和鞭策,是本書得以完成的重要助力;
另外,筆者在學習、交流Istio的過程中,從敖小劍、宋凈超兩位大咖,以及他們創辦的Service Mesher社區(http://www.servicemesher.com/)所聚集的大量服務網格技術愛好者身上獲得很多啟發,在此一并致以誠摯的謝意。

目錄

第1章 服務網格的歷史 1
1.1 Spring Cloud 3
1.2 Linkerd 4
1.3 Istio 6
1.4 國內服務網格的興起 6
第2章 服務網格的基本特性 8
2.1 連接 9
2.2 安全 12
2.3 策略 13
2.4 觀察 13
第3章 Istio基本介紹 15
3.1 Istio的核心組件及其功能 16
3.1.1 Pilot 16
3.1.2 Mixer 18
3.1.3 Citadel 20
3.1.4 Sidecar(Envoy) 20
3.2 核心配置對象 21
3.2.1 networking.istio.io 22
3.2.2 config.istio.io 24
3.2.3 authentication.istio.io 27
3.2.4 rbac.istio.io 28
3.3 小結 28
第4章 Istio快速入門 29
4.1 環境介紹 30
4.2 快速部署Istio 31
4.3 部署兩個版本的服務 33
4.4 部署客戶端服務 37
4.5 驗證服務 39
4.6 創建目標規則和默認路由 39
4.7 小結 42
第5章 用Helm部署Istio 43
5.1 Istio Chart概述 44
5.1.1 Chart.yaml 44
5.1.2 values-*.yaml 45
5.1.3 requirements.yaml 46
5.1.4 templates/_affinity.tpl 47
5.1.5 templates/sidecar-injector-configmap.yaml 47
5.1.6 templates/configmap.yaml 48
5.1.7 templates/crds.yaml 48
5.1.8 charts 48
5.2 全局變量介紹 49
5.2.1 hub和tag 49
5.2.2 ingress.enabled 50
5.2.3 Proxy相關的參數 51
5.2.4 proxy_init.image 53
5.2.5 imagePullPolicy 53
5.2.6 controlPlaneSecurityEnabled 53
5.2.7 disablePolicyChecks 53
5.2.8 enableTracing 53
5.2.9 mtls.enabled 53
5.2.10 imagePullSecrets 54
5.2.11 arch 54
5.2.12 oneNamespace 54
5.2.13 configValidation 54
5.2.14 meshExpansion 55
5.2.15 meshExpansionILB 55
5.2.16 defaultResources 55
5.2.17 hyperkube 55
5.2.18 priorityClassName 55
5.2.19 crds 56
5.2.20 小結 56
5.3 Istio安裝清單的生成和部署 56
5.3.1 編輯values.yaml 56
5.3.2 生成部署清單 58
5.3.3 部署Istio 58
5.4 小結 59
第6章 Istio的常用功能 60
6.1 在網格中部署應用 61
6.1.1 對工作負載的要求 63
6.1.2 使用自動注入 64
6.1.3 準備測試應用 69
6.2 修改Istio配置 69
6.3 使用Istio Dashboard 70
6.3.1 啟用Grafana 70
6.3.2 訪問Grafana 71
6.3.3 開放Grafana服務 73
6.3.4 學習和定制 74
6.4 使用Prometheus 76
6.4.1 訪問Prometheus 76
6.4.2 開放Prometheus服務 77
6.4.3 學習和定制 77
6.5 使用Jaeger 77
6.5.1 啟用Jaeger 78
6.5.2 訪問Jaeger 78
6.5.3 跟蹤參數的傳遞 81
6.5.4 開放Jaeger服務 86
6.6 使用Kiali 87
6.6.1 啟用Kiali 87
6.6.2 訪問Kiali 88
6.6.3 開放Kiali服務 92
6.7 小結 92
第7章 HTTP流量管理 93
7.1 定義目標規則 94
7.2 定義默認路由 98
7.3 流量的拆分和遷移 101
7.4 金絲雀部署 105
7.5 根據來源服務進行路由 108
7.6 對URI進行重定向 110
7.7 通信超時控制 115
7.8 故障重試控制 116
7.9 入口流量管理 120
7.9.1 使用Gateway開放服務 121
7.9.2 為Gateway添加證書支持 123
7.9.3 為Gateway添加多個證書支持 124
7.9.4 配置入口流量的路由 126
7.10 出口流量管理 127
7.10.1 設置Sidecar的流量劫持范圍 128
7.10.2 設置ServiceEntry 129
7.11 新建Gateway控制器 131
7.12 設置服務熔斷 134
7.13 故障注入測試 136
7.13.1 注入延遲 137
7.13.2 注入中斷 138
7.14 流量復制 139
第8章 Mixer適配器的應用 142
8.1 Mixer適配器簡介 143
8.2 基于Denier適配器的訪問控制 144
8.3 基于Listchecker適配器的訪問控制 146
8.4 使用MemQuota適配器進行服務限流 150
8.4.1 Mixer對象的定義 150
8.4.2 客戶端對象定義 152
8.4.3 測試限流功能 153
8.4.4 注意事項 154
8.5 使用RedisQuota適配器進行服務限流 155
8.5.1 啟動Redis服務 155
8.5.2 定義限流相關對象 156
8.5.3 測試限流功能 158
8.6 為Prometheus定義監控指標 158
8.6.1 默認監控指標 159
8.6.2 自定義監控指標 162
8.7 使用stdio輸出自定義日志 165
8.7.1 默認的訪問日志 167
8.7.2 定義日志對象 169
8.7.3 測試輸出 170
8.8 使用Fluentd輸出日志 171
8.8.1 部署Fluentd 171
8.8.2 定義日志對象 173
8.8.3 測試輸出 174
8.9 小結 175
第9章 Istio的安全加固 176
9.1 Istio安全加固概述 177
9.2 啟用mTLS 179
9.3 設置RBAC 183
9.4 RBAC的除錯過程 189
第10章 Istio的試用建議 192
10.1 Istio自身的突出問題 193
10.2 確定功能范圍 194
10.3 選擇試用業務 196
10.4 試用過程 197
10.4.1 制定目標 197
10.4.2 方案部署 198
10.4.3 測試驗證 200
10.4.4 切換演練 201
10.4.5 試點上線 201

讀者評論

  • 請問資源下載鏈接是?那么多yaml文件,輸入太慢。

    涂傳濱發表于 2019/3/24 12:31:49

圖書類別

相關博文

同系列書

相關圖書

搜索功夫:信息時代如何快速解決問題

朱丹 (作者)

如何報高考志愿?要不要現在換工作?如何租房?要不要現在買房?如何快速獲得行業報告?如何判斷藥是否對癥?如何快速找到合適的線下活動場地?……人生中99%的問題早已...

¥99.00

全棧自動化測試——基于Java和TestNG

盧家濤 (作者)

TestNG 作為Java 中舉足輕重的測試框架,除可以替代JUnit 進行單元自動化測試外,還可以通過集成Selenium、Appium 和HttpClien...

 

賣期權是門好生意

魏明達 (作者)

本書首先從實戰角度講解期權實戰必備的基礎知識,如時間價值、波動率等,通俗易懂,不照搬概念,以期讀者可以更好地理解;然后將期權投資交易理念辨析明確,把止盈止損、資...

¥79.00

計算機視覺與深度學習實戰:以MATLAB、Python為工具

本書詳細講解了36個計算機視覺與深度學習實戰案例(含可運行程序),涉及霧霾去噪、答題卡自動閱卷、肺部圖像分割、小波數字水印、圖像檢索、人臉二維碼識別、車牌定位及...

 

期權實戰:一本書說透期權

劉博 (作者)

本書以期權操作的進階者為主,同時兼顧期權入門者學習。全書主要內容有期權交易的基礎入門,通過透徹的理論分析,和多達上百個操作案例,詳細講解期權應用場景、期權價格的...

¥69.00

程序員的三門課:技術精進、架構修煉、管理探秘

我們都有一個共同的夢想——成為更棒的程序員,但是如何做?如何學習和精進自己的技術?如何做業務分析和架構設計?如何做技術管理?本書就廣大程序員都很關注的問題提供一...

 
kof雅典娜赚钱方法中文