云原生服务网格Istio:原理、实践、架构与源码解析
  • 推荐0
  • 收藏2
  • 浏览344

云原生服务网格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
    181 0 0 0

同系列书