预购商品
书目分类
特别推荐
第1部分理解Istio 1Istio服務網格.2 1.1快速反覆運算帶來的挑戰.3 1.1.1不可靠的雲基礎設施.5 1.1.2服務通信需要彈性.6 1.1.3即時可觀測性.6 1.2使用應用程式庫解決問題.7 1.3基礎設施的解決思路.9 1.3.1應用程式感知服務代理.9 1.3.2認識Envoy代理.10 1.4什麼是服務網格.11 1.5Istio服務網格簡介.13 1.5.1服務網格與企業服務匯流排的關係.14 1.5.2服務網格與API閘道的關係.16 1.5.3在非微服務架構中使用Istio.17 1.5.4在分散式架構中使用Istio.18 1.5.5使用服務網格的缺點.19 本章小結.19 2Istio的第一步.21 2.1在Kubernetes上部署Istio.21 2.1.1使用Docker Desktop來演示樣例.22 2.1.2獲取Istio發行版本.22 2.1.3將Istio組件安裝到Kubernetes中.24 2.2瞭解Istio控制平面.25 2.2.1istiod簡介.26 2.2.2入口閘道和出口閘道.30 2.3在服務網格中部署你的第一個應用程式.31 2.4Istio的可觀測性、彈性和流量路由.36 2.4.1Istio與可觀測性.37 2.4.2Istio與彈性.44 2.4.3Istio與流量路由.46 本章小結.50 3Istio的數據平面:Envoy.51 3.1什麼是Envoy代理.51 3.1.1Envoy的核心功能.53 3.1.2Envoy與其他代理的比較.58 3.2配置Envoy.58 3.2.1靜態配置.58 3.2.2動態配置.60 3.3Envoy實戰.61 3.3.1Envoy的Admin API.65 3.3.2Envoy的請求重試.66 3.4Envoy與Istio的融合.67 本章小結.69 第2部分保護、觀察和控制服務網格中的流量 4Istio閘道:將流量導入集群.72 4.1流量入口概念.73 4.1.1虛擬IP位址:簡化服務訪問.73 4.1.2虛擬主機:來自單個接入點的多個服務.75 4.2Istio入口閘道.75 4.2.1聲明Gateway資源.77 4.2.2虛擬服務的閘道路由.79 4.2.3流量整體視圖.82 4.2.4對比Istio入口閘道與Kubernetes Ingress.82 4.2.5對比Istio入口閘道與API閘道.83 4.3保護閘道流量.83 4.3.1使用TLS的HTTP流量.84 4.3.2將HTTP重定向到HTTPS.88 4.3.3使用mTLS的HTTP通信.89 4.3.4為多個虛擬主機提供TLS服務.92 4.4TCP流量.93 4.4.1在Istio閘道上暴露TCP埠.94 4.4.2使用SNI直通的流量路由.96 4.5閘道使用建議.99 4.5.1拆分閘道的職能.99 4.5.2閘道注入.101 4.5.3入口閘道訪問日誌.102 4.5.4減少閘道配置.103 本章小結.104 5流量控制:細細微性流量路由.105 5.1減少部署新代碼帶來的風險.105 5.2Istio的請求路由.109 5.2.1清理工作空間.109 5.2.2部署catalog服務的v1版本.110 5.2.3部署catalog服務的v2版本.111 5.2.4將所有流量路由到catalog服務的v1版本.112 5.2.5將特定請求路由到v2版本.114 5.2.6在調用鏈路內部進行路由.115 5.3流量遷移.117 5.4進一步降低風險:流量鏡像.125 5.5使用Istio的服務發現路由到集群外部的服務.127 本章小結.131 6彈性:應對應用程式的網路挑戰.132 6.1實現應用程式的彈性.132 6.1.1為應用程式庫構建彈性能力.133 6.1.2使用Istio解決彈性問題.134 6.1.3實現去中心化的彈性能力.134 6.2用戶端負載均衡.135 6.2.1開始使用用戶端負載均衡.136 6.2.2構建應用場景.138 6.2.3測試不同的用戶端負載均衡策略.139 6.2.4理解負載均衡演算法的差異.144 6.3位置感知負載均衡.144 6.3.1位置感知負載均衡實驗.145 6.3.2利用加權分佈對位置感知負載均衡進行更多的控制.149 6.4透明的超時和重試.152 6.4.1超時.152 6.4.2重試.154 6.4.3高級重試.160 6.5Istio中的熔斷.162 6.5.1利用連接池設置防止服務過慢.163 6.5.2利用異常點檢測剔除不健康的服務.169 本章小結.172 7可觀測性:理解服務的行為.174 7.1什麼是可觀測性.175 7.1.1可觀測性與監控.175 7.1.2Istio如何幫助實現可觀測性.176 7.2探索Istio的指標.176 7.2.1資料平面指標.177 7.2.2控制平面指標.182 7.3使用Prometheus抓取Istio指標.184 7.3.1安裝Prometheus和Grafana.186 7.3.2配置Prometheus Operator抓取Istio控制平面和工作負載的指標.187 7.4自訂Istio標準指標.190 7.4.1配置現有的指標.193 7.4.2創建新指標.197 7.4.3使用新屬性分組調用.199 本章小結.201 8可觀測性:使用Grafana、Jaeger和Kiali觀察網路行為.202 8.1使用Grafana觀察Istio服務和控制平面指標.202 8.1.1安裝Istio的Grafana儀錶板.203 8.1.2查看控制平面指標.205 8.1.3查看資料平面指標.206 8.2分散式追蹤.206 8.2.1分散式追蹤是怎麼工作的.207 8.2.2安裝分散式追蹤系統.209 8.2.3配置Istio實現分散式追蹤.210 8.2.4查看分散式追蹤資料.213 8.2.5追蹤採樣、強制追蹤和自訂標籤.214 8.3使用Kiali觀察服務網格.220 8.3.1安裝Kiali.220 8.3.2結論.225 本章小結.225 9確保微服務通信安全.227 9.1應用程式網路安全需求.227 9.1.1服務間認證.228 9.1.2終端使用者認證.228 9.1.3授權.228 9.1.4單體和微服務應用的安全比較.228 9.1.5Istio如何實現SPIFFE.230 9.1.6Istio安全簡述.230 9.2自動mTLS.231 9.2.1安裝環境.232 9.2.2理解Istio的對等認證.233 9.3授權服務間流量.238 9.3.1瞭解Istio中的授權.239 9.3.2設置工作區.240 9.3.3當策略被應用于工作負載時行為的變化.241 9.3.4默認使用一個全域策略拒絕所有請求.242 9.3.5允許來自單一命名空間的請求.243 9.3.6允許來自非認證的工作負載的請求.244 9.3.7允許來自單一服務帳戶的請求.245 9.3.8策略的條件匹配.246 9.3.9瞭解值匹配運算式.246 9.3.10瞭解評估授權策略的順序.248 9.4終端使用者的認證和授權.249 9.4.1什麼是JWT.249 9.4.2入口閘道的終端使用者認證和授權.251 9.4.3使用RequestAuthentication驗證JWT.252 9.5與自訂的外部授權服務集成.256 9.5.1外部授權實踐.257 9.5.2配置ExtAuthz.258 9.5.3使用自訂的AuthorizationPolicy資源.259 本章小結.260 第3部分Istio運維 10資料平面的故障排查.262 10.1最常見錯誤:資料平面配置錯誤.263 10.2識別資料平面的問題.265 10.2.1如何驗證資料平面是近期新的.265 10.2.2使用Kiali發現配置錯誤.266 10.2.3通過istioctl發現配置錯誤.268 10.3從Envoy配置中發現錯誤.270 10.3.1Envoy管理介面.270 10.3.2使用istioctl查詢代理配置.270 10.3.3應用程式的故障排查.276 10.3.4使用ksniff檢查網路流量.282 10.4通過Envoy的遙測能力瞭解應用程式.285 10.4.1在Grafana中查看請求失敗率.286 10.4.2使用Prometheus查詢受影響的Pod.287 本章小結.288 11控制平面性能優化.290 11.1控制平面的主要目標.290 11.1.1瞭解資料平面同步的步驟.291 11.1.2決定性能的因素.292 11.2監控控制平面.293 11.3性能調整.298 11.3.1設置工作區.299 11.3.2測量優化前的性能.299 11.3.3忽略事件:使用發現選擇器縮小發現的範圍.303 11.3.4事件批次處理和推送節流特性.305 11.4性能優化準則.308 本章小結.310 第4部分在組織中落地Istio 12在組織中擴展Istio.312 12.1多集群服務網格的好處.312 12.2多集群服務網格概述.313 12.2.1Istio多集群部署模型.314 12.2.2在多集群部署中如何發現工作負載.316 12.2.3跨集群的工作負載連接.317 12.2.4集群間互信.318 12.3多集群、多網路、多控制平面的服務網格.319 12.3.1選擇多集群部署模型.320 12.3.2建立雲基礎設施.320 12.3.3配置外掛程式式CA證書.321 12.3.4在每個集群中安裝控制平面.322 12.3.5啟用跨集群的工作負載發現.325 12.3.6設置跨集群連接.327 12.3.7跨集群的負載均衡.334 本章小結.339 13將虛擬機工作負載納入網格.340 13.1Istio的虛擬機器支持.341 13.1.1簡化虛擬機器中sidecar代理的安裝與配置.341 13.1.2虛擬機器的高可用性.343 13.1.3網格內服務的DNS解析.346 13.2設置基礎設施.348 13.2.1設置服務網格.349 13.2.2配置虛擬機器.350 13.3將網格擴展到虛擬機器.352 13.3.1向虛擬機器暴露istiod和集群服務.352 13.3.2使用WorkloadGroup表示一個工作負載組.353 13.3.3在虛擬機器中安裝與配置istio-agent.356 13.3.4將流量路由到集群服務.359 13.3.5將流量路由到WorkloadEntry.360 13.3.6虛擬機器是由控制平面配置的:強制執行雙向認證.363 13.4揭開DNS代理的神秘面紗.364 13.4.1DNS代理如何解析集群內主機名稱.364 13.4.2DNS代理知道哪些主機名稱.366 13.5自訂代理的行為.367 13.6將WorkloadEntry從網格中刪除.368 本章小結.369 14在請求路徑上擴展Istio.370 14.1Envoy的擴展能力.371 14.1.1瞭解Envoy的篩檢程式鏈.371 14.1.2用於擴展的篩檢程式.374 14.1.3定制Istio的數據平面.374 14.2使用EnvoyFilter資源配置Envoy篩檢程式.374 14.3調用外部的限流請求.379 14.4使用Lua擴展Istio的資料平面.384 14.5使用WebAssembly擴展Istio的資料平面.387 14.5.1WebAssembly簡介.387 14.5.2為什麼使用WebAssembly.388 14.5.3使用WebAssembly構建新的Envoy篩檢程式.389 14.5.4使用meshctl工具構建新的Envoy篩檢程式.389 14.5.5部署新的WebAssembly Envoy篩檢程式.391 本章小結.393 A自訂Istio安裝.394 BIstio的sidecar及其注入選項.401 CIstio安全——SPIFFE.407 DIstio故障排查.417 E如何配置虛擬機器接入網格.425
"Christian Posta(@christianposta)是Solo.io公司副總裁,全球領域首席技術官。他在雲原生社區中以作家、博主、演說家,以及服務網格和雲原生生態中各種開源專案的貢獻者身份而聞名。Christian 曾在傳統企業和大型互聯網公司工作過,現在説明組織創建和部署大規模的、雲原生的、彈性的分散式架構。他擅長指導、培訓和領導團隊在分散式系統概念、微服務、DevOps 和雲原生應用程式設計方面取得成功。 Rinor Maloku(@rinormaloku)是 Solo.io 公司的工程師。他為採用應用網路解決方案(如服務網格)的客戶提供諮詢服務。此前,他在 Red Hat 公司工作,在那裡,他開發了中介軟體軟體,使研發團隊能夠確保其服務的高可用性。作為一名自由職業者,他服務了多位元 DAX 30 成員,以充分利用雲計算技術的潛力。 譯者簡介 馬若飛,就職於飛維美地(FreeWheel)北京研發中心,擔任首席工程師,主要負責微服務架構設計和雲原生落地工作。《Istio實戰指南》作者,極客時間《Service Mesh實戰》專欄作者,《雲原生應用架構:微服務開發很好實踐》主要作者,人民郵電出版社IT專業圖書專家顧問,ServiceMesher技術社區和雲原生社區管理委員會成員。發表、翻譯多篇雲原生領域前沿技術文章,熱衷於技術分享。 宋淨超(Jimmy Song),Tetrate 佈道師,雲原生社區創始人,螞蟻集團前雲原生佈道師及開源管理負責人,電子工業出版社圖書出品人,獨立撰稿人。Kubernetes 、Istio 等開源技術的早期使用及推廣者。著有《未來架構:從服務化到雲原生》《深入理解Istio:雲原生服務網格進階實戰》,參與過多部作品的翻譯工作。 羅廣明,位元組跳動服務框架團隊架構師,雲原生社區管理委員會成員、北京站站長。先後在愛立信、百度從事雲原生、微服務及開源相關工作,後加入位元組跳動,負責 CloudWeGo 等微服務專案開源相關工作。長期關注雲原生 & 微服務領域前沿技術、架構演進及標準化進程。"
客服公告
热门活动
订阅电子报