搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Istio服务网格技术解析与实践
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111644682
  • 作      者:
    王夕宁编著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2020
收藏
编辑推荐

本书由阿里云高级技术专家撰写-详细介绍Istio的基本原理与开发实战-包含大量精选案例和参考代码可以下载-可快速入门Istio开发。

展开
作者简介

王夕宁 

阿里云高级技术专家-阿里云服务网格产品ASM及Istio on Kubernetes技术负责人-关注Kubernetes、云原生、服务网格等领域。曾在IBM中国开发中心工作-担任过专利技术评审委员会主席-作为架构师和主要开发人员负责或参与了一系列在SOA中间件、云计算、IoT等领域的开发工作-拥有40多项相关领域的国际技术专利。

展开
内容介绍

本书系统介绍服务网格技术与Istio的开发实战。

全书分为三大篇-共12章。

初级篇(第1-3章):首先介绍Istio和服务网格的基本概念-并快速搭建Istio环境-部署第一个应用程序;然后介绍Istio的整体架构。

中级篇(第4-8章):介绍Istio在东西向、南北向流量方面的路由控制能力-包括流量路由规则、流量镜像等-以及流量治理方面的高级能力-包括流量策略、负载均衡等;还介绍Istio安全方面的能力-以及Istio Mixer的控制与观测能力。

高级篇(第9-12章):介绍Istio的稳定性与运维经验、Istio的定制与扩展、基于Istio的无服务器计算设计等;最后对云原生技术的生态系统进行了介绍和未来展望-并展示了如何实现多云环境下的多集群部署。

展开
精彩书评

我和本书作者王夕宁共事10多年,他以前就是SOA领域的技术专家,亲历了企业分布式架构演化的过程,在相关领域拥有众多的全球技术专利。他在服务网格领域有非常深厚的理论功底和丰富的实践经验,负责了阿里云服务网格技术的产品化过程。非常期待本书能帮助各位读者更好地把握服务网格的技术精髓,并且灵活应用于自己的业务系统中。


——易立,阿里云容器服务负责人,资深技术专家

本书作者王夕宁在阿里云专职研究 Istio,对其技术架构和实战细节都了如指掌。他的这本书从基础入手,庖丁解牛,带领大家了解技术理念与实现细节。后半部分,从能力与案例入手,高屋建瓴,带领大家体会技术应用与实战过程。本书适合所有对微服务和云原生感兴趣的读者,推荐大家对本书进行深入的阅读。


——李响,CNCF 技术监督委员会成员,阿里巴巴资深技术专家


本书以体系化、实操的形式介绍了Istio的方方面面,相信能帮助读者更好地掌握当下服务网格这一前沿技术。


——李云,阿里巴巴高级技术专家


展开
目录

目  录?Contents

序 一

序 二

序 三

前 言

初级篇

第1章 服务网格与Istio  2

1.1 微服务架构的发展与挑战  2

1.2 使用应用程序库解决这些挑战  4

1.2.1 特定应用程序库的缺点  5

1.2.2 将这些问题推向基础设施  6

1.3 什么是服务网格  7

1.4 为什么服务网格是必要的  10

1.5 Istio服务网格  11

1.5.1 核心功能  12

1.5.2 为什么要使用Istio  14

1.5.3 成熟度和支持级别  15

1.6 本章总结  16

第2章 快速上手Istio  17

2.1 在MiniKube上搭建Istio环境  17

2.1.1 安装启动Minikube  17

2.1.2 安装部署Helm  18

2.1.3 安装部署Istio  19

2.2 在Docker Desktop上搭建Istio环境  22

2.2.1 安装配置Docker Desktop for 

 Kubernetes  22

2.2.2 切换Kubernetes  24

2.2.3 安装部署Helm  26

2.2.4 安装部署Istio  26

2.3 使用公有云Istio服务  28

2.4 在Istio中部署第一个应用程序  31

2.5 本章总结  39

第3章 Istio架构剖析  40

3.1 Istio的整体架构  40

3.2 剖析Istio控制平面  42

3.3 剖析Istio数据平面  45

3.3.1 Envoy代理  45

3.3.2 Envoy的启动配置  47

3.3.3 Envoy静态与动态配置  47

3.3.4 使用Envoy  51

3.3.5 Envoy请求重试  56

3.3.6 Envoy的Admin API  58

3.3.7 Envoy与其他类似代理的比较  61

3.4 剖析Sidecar自动注入  62

3.4.1 Kubernetes的Webhook机制  62

3.4.2 启用Webhook插件  63

3.4.3 采用Webhook自动注入Istio Sidecar  63

3.4.4 开启需要自动注入Sidecar的命名空间  66

3.5 本章总结  67

中级篇

第4章 东西向流量管理  70

4.1 流量管理  70

4.1.1 术语  72

4.1.2 流量拆分与导向  72

4.1.3 Istio服务与Kubernetes服务  73

4.1.4 示例  76

4.2 实现东西向流量路由  83

4.2.1 自动 Sidecar 注入  84

4.2.2 部署  85

4.2.3 查看Ingress Gateway的地址  85

4.2.4 请求路由  86

4.3 实现流量镜像及对比分析  89

4.3.1 流量镜像  89

4.3.2 流量对比  89

4.3.3 创建用于Istio流量镜像的服务  90

4.3.4 创建流量镜像的Istio策略  92

4.3.5 搭建Diffy用于请求流量对比  93

4.3.6 发送流量进行镜像验证  96

4.4 通过Istio管理应用的灰度发布  99

4.4.1 Kubernetes中的灰度发布  100

4.4.2 使用 Istio进行灰度发布  101

4.4.3 统一的流量路由规则  102

4.5 本章总结  103

第5章 南北向流量管理  104

5.1 Istio 网关  104

5.1.1 Istio网关的工作原理  104

5.1.2 Istio网关的负载均衡作用  105

5.1.3 入口网关服务  107

5.1.4 入口网关部署  107

5.1.5 网关资源  108

5.1.6 网关虚拟服务  109

5.1.7 调试入口网关  109

5.2 用HTTPS 加密网关  110

5.2.1 为入口网关配置TLS  111

5.2.2 创建示例服务  112

5.2.3 定义虚拟服务  112

5.2.4 通过网关请求示例服务  113

5.2.5 为多个主机配置 TLS入口网关  114

5.3 基于SNI的TLS路由  119

5.3.1 定义内部服务nginx  121

5.3.2 定义内部服务nginx2  122

5.3.3 部署网关  124

5.3.4 根据域名进行访问  125

5.4 服务条目  126

5.4.1 服务条目基本原理  126

5.4.2 服务条目的定义参数  127

5.5 实现出口流量路由的统一管理  130

5.5.1 出口安全  130

5.5.2 创建客户端  131

5.5.3 HTTP流量网关  131

5.5.4 HTTPS流量网关  133

5.5.5 出口流量的TLS发起  136

5.6 实现服务条目的DNS寻址  137

5.6.1 CoreDNS 及其插件工作机制  138

5.6.2 Kubernetes下的CoreDNS  139

5.6.3 部署Istio CoreDNS  140

5.6.4 更改集群CoreDNS配置  140

5.6.5 创建服务条目验证DNS解析  141

5.7 本章总结  142

第6章 流量治理  144

6.1 使用流量策略  144

6.1.1 目标规则  144

6.1.2 流量策略  145

6.2 设置负载均衡  146

6.2.1 标准负载均衡算法  147

6.2.2 会话保持  147

6.2.3 示例  147

6.3 熔断  150

6.3.1 连接池管理  151

6.3.2 异常检测  152

6.3.3 创建示例服务  152

6.3.4 使用fortio触发熔断  154

6.4 服务重试  157

6.5 故障注入  160

6.6 命名空间隔离下的流量管理  165

6.6.1 Sidecar资源定义  165

6.6.2 示例  166

6.7 本章总结  169

第7章 安全  170

7.1 Istio安全架构  170

7.1.1 Istio身份模型  172

7.1.2 Istio公钥基础设施  172

7.1.3 Istio证书和密钥轮换机制  173

7.2 剖析认证机制  173

7.2.1 认证架构  174

7.2.2 双向TLS认证  175

7.2.3 认证策略  175

7.3 使用认证策略  175

7.3.1 Istio默认认证策略  177

7.3.2 认证策略示例  177

7.3.3 双向认证策略检查  180

7.4 使用自定义CA证书和密钥  181

7.4.1 准备证书和密钥  181

7.4.2 插入证书和密钥  184

7.4.3 检查新证书  185

7.5 使用cert-manager管理网关证书  186

7.5.1 生成签名密钥对  186

7.5.2 将签名密钥对保存为Secret  186

7.5.3 部署cert-manager  186

7.5.4 创建引用Secret的Issuer  187

7.5.5 获得签名证书  187

7.5.6 检查证书与密钥  188

7.5.7 部署自定义网关  189

7.5.8 定义Kubernetes服务  192

7.5.9 创建虚拟服务  194

7.6 剖析授权机制  196

7.6.1 启用全局授权  197

7.6.2 Istio授权策略  197

7.6.3 授权策略示例  199

7.6.4 诊断授权策略  201

7.7 本章总结  206

第8章 Mixer的控制与观测  207

8.1 Mixer架构设计  207

8.2 剖析适配器机制  209

8.2.1 属性及表达式  209

8.2.2 配置模型  212

8.2.3 处理程序  212

8.2.4 示例  213

8.2.5 规则  214

8.3 指标数据收集  214

8.3.1 metric模板  214

8.3.2 Prometheus适配器的配置  215

8.3.3 监控指标  216

8.3.4 配置Istio收集指标  218

8.3.5 查询Istio指标  220

8.3.6 可视化Istio指标  221

8.4 集成日志数据收集  222

8.4.1 logentry模板  223

8.4.2 stdio适配器的配置  224

8.4.3 配置Istio日志  225

8.4.4 查看日志  226

8.4.5 安装EFK软件栈  227

8.4.6 为Fluentd适配器配置Istio资源  231

8.4.7 通过Kibana查看日志  232

8.5 启用基于Zipkin或Jaeger的分布式跟踪  234

8.5.1 Istio跟踪采样率  235

8.5.2 部署应用示例  236

8.5.3 启用Zipkin  238

8.5.4 启用Jaeger  238

8.6 启用速率限制策略  240

8.6.1 配额模板  240

8.6.2 速率限制配置  241

8.6.3 部署应用示例  243

8.7 启用黑白名单策略  244

8.7.1 list适配器及模板  245

8.7.2 部署应用示例  246

8.7.3 部署适配器示例  246

8.7.4 校验白名单策略  247

8.8 本章总结  248

高级篇

第9章 Istio稳定性与运维  250

9.1 Istio功能模块的稳定性与常见问题  250

9.1.1 可能的请求错误排查  252

9.1.2 证书有效期管理  254

9.1.3 使用SDS动态管理证书  257

9.2 Istio流量管理相关运维  258

9.2.1 路由规则对应用程序不生效  258

9.2.2 Sidecar是否注入  258

9.2.3 Istio配置参数优化  259

9.2.4 Envoy 无法连接 HTTP1.0  260

9.2.5 检查Envoy与Pilot状态差异  260

9.3 Istio组件升级与回滚  261

9.3.1 升级安装文件  261

9.3.2 CRD升级  262

9.3.3 控制平面升级  262

9.3.4 数据平面Sidecar升级  263

9.3.5 升级中的影响分析  264

9.4 本章总结  267

第10章 Istio定制与扩展  268

10.1 Mixer适配器扩展  268

10.2 实现适配器  270

10.3 编译与打包适配器  283

10.4 Istio CNI插件  287

10.4.1 安装配置Istio CNI插件  288

10.4.2 运行机制  289

10.4.3 验证CNI插件链配置  292

10.4.4 验证iptables是否已修改  293

10.5 从Kubernetes扩展到虚拟机  294

10.5.1 网格扩展  294

10.5.2 生成Istio的配置cluster.env  297

10.5.3 生成DNS配置文件kubedns  297

10.5.4 获取Istio服务账户密钥  298

10.5.5 在虚拟机上进行配置  298

10.5.6 部署应用示例到网格扩展  300

10.6 扩展Envoy过滤器  307

10.6.1 定义Envoy过滤器  307

10.6.2 部署示例应用  310

10.7 集成外部Zipkin兼容服务  312

10.7.1 集成部署  312

10.7.2 使用原生Zipkin  314

10.7.3 使用Zipkin兼容服务  315

10.8 本章总结  316

第11章 Knative:基于Istio的无服务器计算  317

11.1 Knative架构解析  317

11.1.1 Knative > Kubernetes + Istio  318

11.1.2 Knative的设计  319

11.1.3 安装Knative  320

11.2 Knative Build运行机制  321

11.2.1 Knative Build资源定义  322

11.2.2 创建Knative Build示例  322

11.2.3 验证使用Knative Build构建的镜像  326

11.3 Knative Eventing运行机制  327

11.3.1 架构设计  327

11.3.2 创建Knative Eventing示例  329

11.3.3 验证事件  331

11.4 基于Istio实现Serving组件  331

11.4.1 Knative Serving的设计  331

11.4.2 基于Serving实现source-to-

 URL部署  333

11.5 在Istio上部署配置Knative  336

11.6 基于Knative Serving的自动伸缩  337

11.6.1 路由与自动伸缩  338

11.6.2 自动伸缩机制  340

11.6.3 自动伸缩算法  341

11.6.4 基于Serving实现自动伸缩示例  343

11.6.5 使用蓝绿部署路由和管理流量  345

11.7 本章总结  348

第12章 多集群管理  349

12.1 服务网格的未来  350

12.2 多集群部署管理  351

12.3 单控制平面VPN连接拓扑  351

12.3.1 前提约束  352

12.3.2 拓扑架构  352

12.3.3 启用双向TLS通信  354

12.3.4 部署本地控制平面  354

12.3.5 安装istio-remote  356

12.3.6 部署示例应用  359

12.4 单控制平面Gateway连接拓扑  361

12.4.1 集群感知的服务路由  361

12.4.2 Istio控制平面组件  362

12.4.3 istio-remote组件  363

12.4.4 部署示例应用  365

12.5 多控制平面  366

12.5.1 部署控制平面  366

12.5.2 设置DNS  368

12.5.3 部署示例应用  369

12.5.4 跨集群的版本路由  371

12.6 本章总结  374

......

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证