云原生服務網格Istio:原理、實踐、架構與源碼解析
  • 推薦0
  • 收藏2
  • 瀏覽421

云原生服務網格Istio:原理、實踐、架構與源碼解析

張超盟 (作者) 

  • 叢  書:華為云原生技術叢書
  • 書  號:978-7-121-36653-6
  • 出版日期:2019-07-01
  • 頁  數:628
  • 開  本:16(185*235)
  • 出版狀態:正在印刷
  • 維護人:張國霞

相關圖書

邊緣計算方法與工程實踐

張駿 張駿 (作者)

本書以工程實踐為導向,詳細闡述和分析了邊緣計算的整體技術細節。本書對邊緣計算的概念、原理、基礎架構、軟件架構、安全管理等方面都進行了深入剖析,并對業界的發展現狀...

 

企業云——傳統IT向云遷移的實踐指南

(美)James Bond(詹姆斯 邦德) (作者) 操先良 (譯者)

本書是由HP首席云計算技術官James Bond所著,他在業內擁有長達25年的IT經驗,并長期從事云計算在大型商業組織和政府部門的落地工作。在本書中,作者從云架...

¥59.00

云計算:大數據時代的系統工程(修訂版)

姚宏宇 (作者)

在互聯網帶來的“大”問題壓力下,我們需要全新的思想,通過“積木化”的改變,來重新定義計算資源的使用方式、服務的提供方式,以及社會化大生產的協作過程。云計算帶來了...

¥32.00

讓云落地:云計算服務模式(SaaS、PaaS和IaaS)設計決策

(美)Michael J. Kavis(邁克爾 J.凱維斯) (作者) 陳志偉 (譯者)

云計算落地已成事實。從前幾年的概念普及,到如今越來越多的企業將業務遷移至云上,云計算正在改變整個社會的信息資源使用觀念和方式。<br>云計算還在不斷成長,技術細...

¥65.00

云計算通俗講義

王良明 (作者)

本書力求簡明扼要地闡述云計算的全貌,能讓非IT專業人士也能輕松看得懂這一現在人人都能接觸(以后程度會更深)的事物——云計算。本書遵循一條由感性到理性從淺入深的主...

¥39.00

云計算網絡珠璣

李俊武 (作者)

網絡技術可以說目前是云計算的瓶頸,受關注程度很高。本書從基礎網絡介紹起,將傳統的網絡技術和新興的網絡人們點綜合起來,到網絡設備交換機和linux協議棧,為第二部...

¥69.00
本書分為原理篇、實踐篇、架構篇和源碼篇,由淺入深地將Istio項目庖丁解牛并呈現給讀者。原理篇介紹了服務網格技術與Istio項目的技術背景、設計理念與功能原理,能夠幫助讀者了解服務網格這一云原生領域的標志性技術,掌握Istio流量治理、策略與遙測和安全功能的使用方法。實踐篇從零開始搭建Istio運行環境并完成一個真實應用的開發、交付、上線監控與治理的完整過程,能夠幫助讀者熟悉Istio的功能并加深對Istio的理解。架構篇剖析了Istio項目的三大核心子項目Pilot、Mixer、Citadel的詳細架構,幫助讀者熟悉Envoy、Galley、Pilot-agent等相關項目,并挖掘Istio代碼背后的設計與實現思想。源碼篇對Istio各個項目的代碼結構、文件組織、核心流程、主要數據結構及各主要代碼片段等關鍵內容都進行了詳細介紹,讀者只需具備一定的Go語言基礎,便可快速掌握Istio各部分的實現原理,并根據自己的興趣深入了解某一關鍵機制的完整實現。本書提供源碼下載,參見http://github.com/cloudnativebooks/cloud-native-istio。

無論是對于剛入門Istio的讀者,還是對于已經在產品中使用Istio的讀者,本書都極具參考價值。
從原理、實踐、架構、源碼層面展開云原生服務網格Istio的能力、用法、設計和實現,厚達600多頁,全面、立體了解Istio的每個細節。
張超盟
華為云應用服務網格首席架構師,擁有10年以上軟件研發經驗,先后負責華為云PaaS容器應用運維、微服務平臺、云服務目錄、服務網格等產品架構設計與開發工作,在容器服務、微服務架構、大數據、應用性能管理、數據庫中間件及DevOps工具等多個領域有深入的研究與實踐。開源愛好者,Istio社區成員。曾就職于Trend Micro和中鐵一局。

章鑫
華為云應用服務網格首席系統工程師, 擁有10年以上IT從業經驗,先后參與華為云PaaS運維平臺、容器自動化運維工 具、服務網格等產品設計與開發,主導了多個服務網格項目的落地與實施工作。Istio社區成員,對于Pilot、Mixer等多個組 件 的 調 優 有 豐 富 的 經 驗。曾 在VIA-Telecom和Nokia擔任研發專家。

徐中虎
華為云原生開源團隊核心成員,Istio社區Approver,Kubernetes項目核心貢獻者,現 聚 焦 于Cloud Native、Docker、Kubernetes、Service Mesh等領域,對分布式系統性能優化、高可靠、可擴展等有深入的研究。曾就職于網易、Nokia。

徐飛
華為云原生開源團隊核心成員,Istio社區Approver,Kubernetes、Federation、Kubeflow、Virtual-Kubelet社區項目成員及核心貢獻者,浙江大學碩士。從2015年開始參與容器平臺的設計與開發,并參與上游社區的貢獻。

華為云原生團隊
華為云原生團隊創建于2013年,是國內較早參與云原生這一技術領域的團隊之一。作為CNCF(云原生計算基金會)的初創成員和白金會員,華為在容器、服務網格、微服務等云原生技術領域都有著深厚的造詣,擁有10多名CNCF開源項目維護者,在Kubernetes、Istio等核心開源項目上的貢獻位居全球前列。華為云也提供了基于CNCF開源項目所打造的商業化云原生系列產品,包括云容器引擎、云容器實例、應用服務網格、容器交付流水線等。
華為云原生團隊致力于云原生技術在國內的普及與推廣,通過“容器魔方”官方微信公眾號,以及與CNCF聯合打造的Cloud Native Days China(CNDC)Meetup、Cloud Native Lives云原生技術在線直播、線下CKA培訓等活動,推動了國內云原生技術的學習與交流熱潮。此次打造的華為云原生技術叢書,內容涵蓋以CNCF項目為主的多個云原生技術熱點,可為廣大云原生技術愛好者提供詳盡、專業、及時的原理講解與技術剖析。

前言
這是一本介紹“云原生”與“服務網格”技術的書籍。你或許對這兩個詞語感到陌生,或者耳熟卻不明其意,其實,這兩個術語分別與“云計算”與“微服務”的概念有著非常緊密的聯系。

依據CNCF基金會(Cloud-Native Computing Foundation)的定義,云原生是對在現代的動態環境下(比如云計算的三大場景:公有云、私有云及混合云)可用來構建并運行可擴展應用的技術的總稱;服務網格則是云原生技術的典型代表之一,其他技術還包括容器、微服務、不可變基礎設施、聲明式API等。

從技術發展的角度來看,我們可以把云原生理解為云計算所關注的重心從“資源”逐漸轉向“應用”的必然結果。以“資源”為中心的上一代云計算技術關注物理設備如何虛擬化、池化、多租化,典型代表是計算、網絡、存儲三大基礎設施的云化,以及相關硬件、操作系統、管控面等技術;而以“應用”為中心的云原生技術則關注應用如何更好地適應云環境,相對于傳統應用通過遷移改造“上云”而言,云原生希望通過一系列的技術支撐,使用戶能夠在云環境下快速開發和交付云原生應用。

作為云原生技術棧的一部分,服務網格則指由云原生應用的服務化組件構成的一種網格。換句話說,我們可以將服務網格理解為一種應用網絡,即為在應用內部或應用之間由服務訪問、調用、負載均衡等服務連接關系構成的一種網絡。你可能會注意到,這里并沒有使用“微服務”這個術語。微服務更多地從設計、開發的視角來描述應用的一種架構或開發模式,而服務網格事實上更為關注運行時視角,因此,采用“服務”這個用于描述應用內外部調用關系的術語更為合適。服務網格與微服務在云原生技術棧中是相輔相成的兩部分,前者更關注應用的交付與運行時,后者更關注應用的設計與開發。更關注應用的交付與運行時,后者更關注應用的設計與開發。

本書的主角Istio,作為服務網格技術的事實標準,是一個比較年輕的開源項目。它在2017年5月由Google與IBM聯合發布之后,經過一年多的快速發展,于2018年7月發布了1.0版本,并于2019年3月發布1.1這個大更新版本,該版本算是第一個生產可用的GA版本(雖然官方宣稱1.0版本“Production-Ready”,但從實踐評估來看,1.1作為GA版本更合適一些)。

Istio體現了云原生領域核心項目Kubernetes的創建者Google對服務網格技術的思考,還包含了云計算先行者IBM對服務網格最早的實踐經驗,因此一經發布就得到云原生領域的廣泛響應,它是繼Kubernetes之后云原生領域非常火爆的項目之一。截至2019年年初,國內外已經有超過百家公司的公開實踐案例。

本書作者所在的華為公司作為云原生領域的早期實踐者與社區領導者之一,在Istio項目發展初期就參與了Istio社區,積極實踐Istio并推動Istio項目的發展。目前,華為公司內部的多個產品線已經使用了Istio,部分實踐已經進入生產環境,Istio的商業化產品也已經包含在華為公有云、私有云、混合云解決方案中,并面向華為云客戶群進行推廣。華為作為Istio社區的當前領導者之一,會繼續致力于Istio項目及服務網格技術的推廣與演進。

本書寫作目的

本書作為華為云原生技術叢書的一員,面向云計算領域的從業者及感興趣的技術人員,普及與推廣Istio服務網格技術。本書作者來自華為云應用服務網格產品研發團隊及華為云原生開源社區團隊。本書結合作者在華為云及Istio社區的設計與開發實踐,以及與服務網格強相關的Kubernetes容器、微服務和云原生領域的豐富經驗,對服務網格技術、Istio開源項目的原理、實踐,架構和源碼進行了深入剖析,由淺入深地講解Istio的功能、用法、設計與實現,幫助讀者全面、立體地了解云原生服務網格Istio的每個技術細節。對于剛入門的讀者,本書提供了從零開始的Istio上手實戰指導;對于已經在產品中使用Istio的讀者,本書也提供了豐富的案例與經驗總結。

本書結構

本書分為原理篇、實踐篇、架構篇和源碼篇,總計24章,由淺入深地將Istio項目庖丁解牛并呈現給讀者。

對于有不同需求的讀者,我們建議這樣使用本書。

◎ 對云原生技術感興趣的讀者,可閱讀并理解原理篇。本篇介紹了服務網格技術與Istio項目的技術背景、設計理念與功能原理,能夠幫助讀者了解服務網格這一云原生領域的標志性技術,掌握Istio流量治理、策略與遙測和安全功能的使用方法。
◎ Istio一線實踐者或動手能力較強的技術人員,通過實踐篇可以從零開始搭建Istio運行環境并完成一個真實應用的開發、交付、上線監控與治理的完整過程,能夠熟悉Istio的功能并加深對Istio原理的理解。
◎ 關注Istio架構設計或者正在評估是否將Istio引入當前技術棧的技術人員,架構篇能夠幫你剖析Istio項目的三大核心子項目Pilot、Mixer、Citadel的詳細架構,熟悉Envoy、Galley、Pilot-agent等相關項目,并深入挖掘Istio代碼背后的設計與實現思想。
◎ 對Istio源碼感興趣且希望更深入地了解Istio實現細節的讀者,可以通過源碼篇進入Istio源碼世界。源碼篇對Istio各個項目的代碼結構、文件組織、核心流程、主要數據結構及各主要代碼片段等關鍵內容都進行了詳細介紹。讀者只需具備一定的Go語言基礎,便可快速掌握Istio各部分的實現原理,并根據自己的興趣深入了解某一關鍵機制的完整實現,以期成為Istio高手,甚至作為貢獻者參與到Istio項目開發中來。

本書篇章組織概述如下。

◎ 原理篇:介紹Istio概念、核心功能、原理和使用方式,為后續的實踐提供理論基礎。其中,第1~2章分別介紹Istio的背景知識、基本工作機制、主要組件及概念模型等;第2~7章分別介紹Istio的五大塊功能集,即非侵入的流量治理、可擴展的策略和遙測、可插拔的服務安全、透明的Sidecar機制及多集群服務治理。
◎ 實踐篇:通過實際操作介紹如何通過一個典型應用進行Istio實踐。其中,第8章講解環境準備,完成Kubernetes與Istio平臺的基礎設施準備工作;第9~13章分別介紹如何實際操作一個天氣預報應用在Istio平臺上實現流量監控、灰度發布、流量治理、服務安全、多集群管理等功能。
◎ 架構篇:從架構角度剖析Istio多個主要組件的設計原理、關鍵內部流程及數據結構等內容,為高級用戶提供架構與設計層面的參考。其中,第14~19章分別介紹了Pilot、Mixer、Citadel、Envoy、Pilot-agent與Galley等6個Istio核心組件。
◎ 源碼篇:本篇包括第20~24章,分別介紹Istio整體的代碼組織情況,以及Pilot、Mixer、Citadel、Envoy與Galley的代碼結構與關鍵代碼片段。

源代碼與官方參考

Istio是一個開源項目,本書也開源了實踐篇示例應用的源代碼,讀者可通過如下鏈接獲取本書源碼及相關內容。

◎ Istio項目官網:https://istio.io/。
◎ Istio源代碼:https://github.com/istio。
◎ 本書示例應用源代碼:https://github.com/cloudnativebooks/cloud-native-istio。

勘誤和支持

若您在閱讀本書的過程中有任何問題或者建議,則可以通過本書源碼倉庫提交Issue或者PR,也可以關注華為云原生官方微信公眾號并加入微信群與我們交流。我們十分感謝并重視您的反饋,會對您提出的問題、建議進行梳理與反饋,并在本書后續版本中及時做出勘誤與更新。

致謝

在本書的寫作及成書過程中,本書作者團隊得到了公司內外許多領導、同事及朋友的指導、鼓勵和幫助。感謝華為云鄭葉來、張宇昕、廖振欽、方璞等業務主管對華為云原生技術叢書及本書寫作的大力支持;感謝華為云容器團隊王澤鋒、羅榮敏、毛杰、張琦等對本書的審閱與建議;感謝華為云應用服務網格團隊陳冬冬、鞏培堯、王少東、李漢辰、秦玉函、張云等為本書編寫示例程序及分享實踐經驗;感謝電子工業出版社博文視點張國霞編輯一絲不茍地制訂出版計劃及組織工作;感謝華為云邢紫月對本書的出版建議與指導;最后,也感謝CNCF基金會及Istio、Kubernetes社區眾多開源愛好者辛勤、無私的工作,使得我們在這個技術爆發的時代能夠充分領略到技術的魅力并能夠親身參與到這份有激情、有挑戰的事業中來。謝謝大家!
劉赫偉 博士
華為云原生技術叢書 總編
華為云容器服務域 技術總監
張超盟
華為云應用服務網格 首席架構師

目錄

原 理 篇

第1章 你好,Istio 2
1.1 Istio是什么 2
1.2 通過示例看看Istio能做什么 4
1.3 Istio與服務治理 6
1.3.1 關于微服務 6
1.3.2 服務治理的三種形態 8
1.3.3 Istio不只解決了微服務問題 10
1.4 Istio與服務網格 11
1.4.1 時代選擇服務網格 11
1.4.2 服務網格選擇Istio 14
1.5 Istio與Kubernetes 15
1.5.1 Istio,Kubernetes的好幫手 16
1.5.2 Kubernetes,Istio的好基座 18
1.6 本章總結 20
第2章 Istio架構概述 21
2.1 Istio的工作機制 21
2.2 Istio的服務模型 23
2.2.1 Istio的服務 24
2.2.2 Istio的服務版本 26
2.2.3 Istio的服務實例 28
2.3 Istio的主要組件 30
2.3.1 istio-pilot 30
2.3.2 istio-telemetry 32
2.3.3 istio-policy 33
2.3.4 istio-citadel 34
2.3.5 istio-galley 34
2.3.6 istio-sidecar-injector 35
2.3.7 istio-proxy 35
2.3.8 istio-ingressgateway 36
2.3.9 其他組件 37
2.4 本章總結 37
第3章 非侵入的流量治理 38
3.1 Istio流量治理的原理 38
3.1.1 負載均衡 39
3.1.2 服務熔斷 41
3.1.3 故障注入 48
3.1.4 灰度發布 49
3.1.5 服務訪問入口 54
3.1.6 外部接入服務治理 56
3.2 Istio路由規則配置:VirtualService 59
3.2.1 路由規則配置示例 59
3.2.2 路由規則定義 60
3.2.3 HTTP路由(HTTPRoute) 63
3.2.4 TLS路由(TLSRoute) 78
3.2.5 TCP路由(TCPRoute) 81
3.2.6 三種協議路由規則的對比 83
3.2.7 VirtualService的典型應用 84
3.3 Istio目標規則配置:DestinationRule 89
3.3.1 DestinationRule配置示例 90
3.3.2 DestinationRule規則定義 90
3.3.3 DestinationRule的典型應用 103
3.4 Istio服務網關配置:Gateway 107
3.4.1 Gateway配置示例 108
3.4.2 Gateway規則定義 109
3.4.3 Gateway的典型應用 112
3.5 Istio外部服務配置:ServiceEntry 120
3.5.1 ServiceEntry配置示例 120
3.5.2 ServiceEntry規則的定義和用法 121
3.5.3 ServiceEntry的典型應用 123
3.6 Istio代理規則配置:Sidecar 126
3.6.1 Sidecar配置示例 126
3.6.2 Sidecar規則定義 126
3.7 本章總結 129
第4章 可擴展的策略和遙測 131
4.1 Istio策略和遙測的原理 131
4.1.1 應用場景 131
4.1.2 工作原理 136
4.1.3 屬性 137
4.1.4 Mixer的配置模型 140
4.2 Istio遙測適配器配置 147
4.2.1 Prometheus適配器 148
4.2.2 Fluentd適配器 155
4.2.3 StatsD適配器 159
4.2.4 Stdio適配器 161
4.2.5 Zipkin適配器 163
4.2.6 廠商適配器 168
4.3 Istio策略適配器配置 169
4.3.1 List適配器 169
4.3.2 Denier適配器 171
4.3.3 Memory Quota適配器 172
4.3.4 Redis Quota適配器 175
4.4 Kubernetes Env適配器配置 178
4.5 本章總結 181
第5章 可插拔的服務安全 182
5.1 Istio服務安全的原理 182
5.1.1 認證 185
5.1.2 授權 189
5.1.3 密鑰證書管理 192
5.2 Istio服務認證配置 193
5.2.1 認證策略配置示例 193
5.2.2 認證策略的定義 194
5.2.3 TLS訪問配置 196
5.2.4 認證策略的典型應用 200
5.3 Istio服務授權配置 202
5.3.1 授權啟用配置 202
5.3.2 授權策略配置 203
5.3.3 授權策略的典型應用 207
5.4 本章總結 210
第6章 透明的Sidecar機制 211
6.1 Sidecar注入 211
6.1.1 Sidecar Injector自動注入的原理 214
6.1.2 Sidecar注入的實現 216
6.2 Sidecar流量攔截 219
6.2.1 iptables的基本原理 220
6.2.2 iptables的規則設置 223
6.2.3 流量攔截原理 224
6.3 本章總結 228
第7章 多集群服務治理 230
7.1 Istio多集群服務治理 230
7.1.1 Istio多集群的相關概念 230
7.1.2 Istio多集群服務治理現狀 231
7.2 多集群模式1:多控制面 232
7.2.1 服務DNS解析的原理 233
7.2.2 Gateway連接的原理 237
7.3 多集群模式2:VPN直連單控制面 238
7.4 多集群模式3:集群感知服務路由單控制面 240
7.5 本章總結 246

實 踐 篇

第8章 環境準備 248
8.1 在本地搭建Istio環境 248
8.1.1 安裝Kubernetes集群 248
8.1.2 安裝Helm 249
8.1.3 安裝Istio 250
8.2 在公有云上使用Istio 253
8.3 嘗鮮Istio命令行 255
8.4 應用示例 257
8.4.1 Weather Forecast簡介 257
8.4.2 Weather Forecast部署 258
8.5 本章總結 259
第9章 流量監控 260
9.1 預先準備:安裝插件 260
9.2 調用鏈跟蹤 261
9.3 指標監控 265
9.3.1 Prometheus 265
9.3.2 Grafana 268
9.4 服務網格監控 273
9.5 本章總結 277
第10章 灰度發布 278
10.1 預先準備:將所有流量都路由到各個服務的v1版本 278
10.2 基于流量比例的路由 279
10.3 基于請求內容的路由 283
10.4 組合條件路由 284
10.5 多服務灰度發布 286
10.6 TCP服務灰度發布 288
10.7 自動化灰度發布 290
10.7.1 正常發布 291
10.7.2 異常發布 294
第11章 流量治理 296
11.1 流量負載均衡 296
11.1.1 ROUND_ROBIN模式 296
11.1.2 RANDOM模式 298
11.2 會話保持 299
11.2.1 實戰目標 300
11.2.2 實戰演練 300
11.3 故障注入 301
11.3.1 延遲注入 301
11.3.2 中斷注入 303
11.4 超時 304
11.5 重試 306
11.6 HTTP重定向 308
11.7 HTTP重寫 309
11.8 熔斷 310
11.9 限流 313
11.9.1 普通方式 314
11.9.2 條件方式 315
11.10 服務隔離 317
11.10.1 實戰目標 317
11.10.2 實戰演練 317
11.11 影子測試 319
11.12 本章總結 322
第12章 服務保護 323
12.1 網關加密 323
12.1.1 單向TLS網關 323
12.1.2 雙向TLS網關 326
12.1.3 用SDS加密網關 328
12.2 訪問控制 331
12.2.1 黑名單 331
12.2.2 白名單 332
12.3 認證 334
12.3.1 實戰目標 334
12.3.2 實戰演練 334
12.4 授權 336
12.4.1 命名空間級別的訪問控制 336
12.4.2 服務級別的訪問控制 339
12.5 本章總結 341
第13章 多集群管理 342
13.1 實戰目標 342
13.2 實戰演練 342
13.3 本章總結 350

架 構 篇

第14章 司令官Pilot 352
14.1 Pilot的架構 352
14.1.1 Istio的服務模型 354
14.1.2 xDS協議 356
14.2 Pilot的工作流程 360
14.2.1 Pilot的啟動與初始化 361
14.2.2 服務發現 363
14.2.3 配置規則發現 368
14.2.4 Envoy的配置分發 376
14.3 Pilot的插件 383
14.3.1 安全插件 385
14.3.2 健康檢查插件 390
14.3.3 Mixer插件 391
14.4 Pilot的設計亮點 392
14.4.1 三級緩存優化 392
14.4.2 去抖動分發 393
14.4.3 增量EDS 394
14.4.4 資源隔離 395
14.5 本章總結 396
第15章 守護神Mixer 397
15.1 Mixer的整體架構 397
15.2 Mixer的服務模型 398
15.2.1 Template 399
15.2.2 Adapter 401
15.3 Mixer的工作流程 403
15.3.1 啟動初始化 403
15.3.2 用戶配置信息規則處理 409
15.3.3 訪問策略的執行 416
15.3.4 無侵入遙測 421
15.4 Mixer的設計亮點 423
15.5 如何開發Mixer Adapter 424
15.5.1 Adapter實現概述 424
15.5.2 內置式Adapter的開發步驟 425
15.5.3 獨立進程式Adapter的開發步驟 430
15.5.4 獨立倉庫式Adapter的開發步驟 437
15.6 本章總結 438
第16章 安全碉堡Citadel 439
16.1 Citadel的架構 439
16.2 Citadel的工作流程 441
16.2.1 啟動初始化 441
16.2.2 證書控制器 442
16.2.3 gRPC服務器 444
16.2.4 證書輪換器 445
16.2.5 SDS服務器 446
16.3 本章總結 449
第17章 高性能代理Envoy 450
17.1 Envoy的架構 450
17.2 Envoy的特性 451
17.3 Envoy的模塊結構 452
17.4 Envoy的線程模型 453
17.5 Envoy的內存管理 455
17.5.1 變量管理 455
17.5.2 Buffer管理 456
17.6 Envoy的流量控制 456
17.7 Envoy與Istio的配合 457
17.7.1 部署與交互 457
17.7.2 Envoy API 458
17.3 本章總結 459
第18章 代理守護進程Pilot-agent 460
18.1 為什么需要Pilot-agent 461
18.2 Pilot-agent的工作流程 461
18.2.1 Envoy的啟動 462
18.2.2 Envoy的熱重啟 465
18.2.3 守護Envoy 466
18.2.4 優雅退出 467
18.3 本章總結 468
第19章 配置中心Galley 469
19.1 Galley的架構 469
19.1.1 MCP 470
19.1.2 MCP API 470
19.2 Galley的工作流程 471
19.2.1 啟動初始化 471
19.2.2 配置校驗 476
19.2.3 配置聚合與分發 479
19.3 本章總結 482

源 碼 篇

第20章 Pilot源碼解析 484
20.1 進程啟動流程 484
20.2 關鍵代碼分析 486
20.2.1 ConfigController 486
20.2.2 ServiceController 490
20.2.3 xDS異步分發 495
20.2.4 配置更新預處理 503
20.2.5 xDS配置的生成及分發 509
20.3 本章總結 514

第21章 Mixer源碼解析 515
21.1 進程啟動流程 515
21.1.1 runServer通過newServer新建Server對象 517
21.1.2 啟動Mixer gRPC Server 520
21.2 關鍵代碼分析 520
21.2.1 監聽用戶的配置 520
21.2.2 構建數據模型 524
21.2.3 Check接口 533
21.2.4 Report接口 536
21.2.5 請求分發 539
21.2.6 協程池 541
21.3 本章總結 543
第22章 Citadel源碼解析 544
22.1 進程啟動流程 544
22.2 關鍵代碼分析 548
22.2.1 證書簽發實體IstioCA 548
22.2.2 SecretController的創建和核心原理 551
22.2.3 CA Server的創建和核心原理 556
22.3 本章總結 558
第23章 Envoy源碼解析 559
23.1 Envoy的初始化 559
23.1.1 啟動參數bootstrap的初始化 559
23.1.2 Admin API的初始化 560
23.1.3 Worker的初始化 562
23.1.4 CDS的初始化 562
23.1.5 LDS的初始化 563
23.1.6 GuardDog的初始化 564
23.2 Envoy的運行和建立新連接 564
23.2.1 啟動worker 565
23.2.2 Listener的加載 565
23.2.3 接收連接 566
23.3 Envoy對數據的讀取、接收及處理 567
23.3.1 讀取數據 568
23.3.2 接收數據 568
23.3.3 處理數據 569
23.4 Envoy發送數據到服務端 570
23.4.1 匹配路由 571
23.4.2 獲取連接池 572
23.4.3 選擇上游主機 572
23.5 本章總結 573
第24章 Galley源碼解析 574
24.1 進程啟動流程 574
24.1.1 RunServer的啟動流程 577
24.1.2 RunValidation Server的啟動流程 578
24.2 關鍵代碼分析 580
24.2.1 配置校驗 580
24.2.2 配置監聽 584
24.2.3 配置分發 585
24.3 本章總結 589
結語 590
附錄A 源碼倉庫介紹 592
附錄B 實踐經驗和總結 598

讀者評論

圖書類別

相關博文

  • Istio與Kubernetes疊加后的快感從何而來?

    Istio與Kubernetes疊加后的快感從何而來?

    管理員賬號 2019-06-27

    Istio,Kubernetes的好幫手 從場景來看,Kubernetes已經提供了非常強大的應用負載的部署、升級、擴容等運行管理能力。Kubernetes中的Service機制也已經可以做服務注冊、服務發現和負載均衡,支持通過服務...

    管理員賬號 2019-06-27
    341 0 0 0

同系列書

0k000澳客网竞彩