标签分类 热门分类
当前位置:首页 > 程序设计电子书 > Istio电子书网盘下载
云原生服务网格Istio:原理、实践、架构与源码解析

云原生服务网格Istio:原理、实践、架构与源码解析 完整版电子书

官方价: 69.99

更 新:

云原生服务网格Istio:原理、实践、架构与源码解析 (pdf、epub、mobi、azw3)下载

下载地址:https://pan.baidu.com/s/1Zjin48yw5Q_qz2RxoGN7T

分享码:iw03

给大家带来的一篇关于Istio相关的电子书资源,介绍了关于Istio、原理、实践、架构、源码解析方面的内容,本书是由电子工业出版社出版,格式根据源资源分为PDF、epub、mobi、azw3其中一种或多种格式,资源大小182 MB,张超盟编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.3,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

云原生服务网格Istio:原理、实践、架构与源码解析 PDF

这书分成原理篇、实践篇、构架篇和源代码篇,循序渐进地将Istio新项目庖丁解牛并展现给用户。原理篇详细介绍了服务项目网格技术与Istio新项目的技术性背景图、设计构思与作用基本原理,可以协助用户掌握服务项目网格图这种云原生态行业的代表性技术性,把握Istio总流量整治、对策与遥测和安全性作用的使用说明。实践篇重零开始构建Istio软件环境并进行1个真正运用的开发设计、交货、发布监控器与整治的详细全过程,可以协助用户了解Istio的作用并加重对Istio的了解。构架篇分析了Istio新项目的几大关键子项目Pilot、Mixer、Citadel的详尽构架,协助用户了解Envoy、Galley、Pilot-agent等有关新项目,并发掘Istio编码身后的设计方案与保持观念。源代码篇对Istio每个新项目的编码构造、文件组织、关键步骤、关键数据结构及各关键编码片断等重要內容都开展了详解,用户只需具有必须的Go語言基本,便可迅速把握Istio各一部分的保持基本原理,并依据自身的兴趣爱好深层次掌握某一重要体制的详细保持。这书出示源码下载,参照http://github.com/cloudnativebooks/cloud-native-istio。不论是针对刚新手入门Istio的用户,還是针对早已产成品中应用Istio的用户,这书都具有实用价值。

目录

  • 原 理 篇
  • 第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

上一篇:知识图谱:方法、实践与应用  下一篇:HoloLens与混合现实开发

展开 +

收起 -

Istio 相关电子书
Istio 学习笔记
网友NO.505505

jQuery插件echarts去掉垂直网格线用法示例

本文实例讲述了jQuery插件echarts去掉垂直网格线用法。分享给大家供大家参考,具体如下: 1、问题背景 设计一条统计人数的折线,其中网格线没有垂直线 2、实现源码 (1)有垂直网格线 !DOCTYPE htmlhtml head meta charset="UTF-8" titleecharts-有垂直网格线/title link rel="shortcut icon" href="../js/echarts-2.2.7/doc/asset/ico/favicon.png" rel="external nofollow" rel="external nofollow" script type="text/javascript" src="../js/echarts-2.2.7/doc/asset/js/jquery.min.js" /script script type="text/javascript" src="../js/echarts-2.2.7/doc/example/www2/js/echarts-all.js" /script style body,html{ width: 99%; height: 99%; font-family: "微软雅黑"; font-size: 12px; } #chart{ width: 100%; height: 100%; } /style script $(function(){ var chart = document.getElementById('chart'); var echart = echarts.init(chart); var option = { title: { text: '' }, tooltip: { trigger: 'axis' }, legend: { data:['人数'] }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, toolbox: { feature: { saveAsImage: {} } }, xAxis: { type: 'category', boundaryGap: false, splitLine:{ show:true }, data: ['周一','周二','周三','周四','周五','周六','周日'] }, yAxis: { type: 'value' }, series: [ { name:'人数', type:'line', stack: '人数', data:[1220, 4132, 6101, 3134, 1890, 6230, 3210] } ] }; echart.setOption(option); }); /script /head body div id="chart"/div /body/html (2)无垂直网格线 !DOCTYPE htmlhtml head me……

网友NO.403936

原生JS实现图片网格式渐显、渐隐效果

先给出效果图: 写的小组件支持图片的渐显、渐隐,并且可以是有序、随机两种方式。 我采用的原型是属性写在构造函数内,方法写在原型对象内。方法写构造函数内有个问题,就是每次调用这个方法就相当于重新实例化一次,举个粟子: 实现网格效果的原理上是将读取图片的宽高,按照设定的参数,分成等高宽的网格(我用的span标签表示的网格),网格利用定位铺满整个图片,每个网格的背景图都是原图片,原理同sprite,利用background-position属性改变显示区域。接下来就是按照设定的顺序实现渐显或渐隐。渐显或渐隐用的是JS的animation属性和CSS3的animation属性在属性值上有所区别,这次使用也才知道JS的animation属性里有个animationFillMode(规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。)属性值。 我绑定的事件是点击,完全可以用其他事件或页面加载触发。我的代码稍加改动就可以实现网格式轮播图。 下面给出源代码: !doctype htmlheadtitle网格效果/titlestyle @charset "utf-8"; /*css reset*/ html{font-family:"Helvetica Neue",Helvetica,STHeiTi,sans-serif;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;} body{-webkit-overflow-scrolling:touch;margin:0;} ul{margin:0;padding:0;list-style:none;outline:none;} dl,dd……

网友NO.585870

xmlplus组件设计系列之网格(DataGrid)(10)

这一章我们要实现是一个网格组件,该组件除了最基本的数据展示功能外,还提供排序以及数据过滤功能。 数据源 为了测试我们即将编写好网格组件,我们采用如下格式的数据源。此数据源包含两部分的内容,分别是表头数据集和表体数据集。网格组件实例最终的列数由表头数据集的长度决定。 var data = { gridColumns: ['name', 'power'], gridData: [ { name: 'Chuck Norris', power: Infinity }, { name: 'Bruce Lee', power: 9000 }, { name: 'Jackie Chan', power: 7000 }, { name: 'Jet Li', power: 8000 } ]}; 顶层设计 从视觉上,我们很自然地把网格组件划分为表头与表体。此网格组件有三个功能,所以应该提供三个动态接口。但我们注意到排序功能是通过点击表头进行的,而表头属于网格组件的一部分,所以该功能应该内置。从而,实际上我们的网格组件对外只暴露两个动态接口:一个用于过滤,另一个用于接收数据源。所以我们可以得到如下的一个顶层设计。 DataGrid: { xml: `table id='table' Thead id='thead'/ Tbody id='tbody'/ /table`, fun: function (sys, items, opts) { function setValue(data) { items.thead.val(data.gridColumns); items.tbody.val(data.gridColumns, data.gridData); } function filter(filterKey) { // 过滤函数 } return { val: setValue, filter: filter }; }} 设计表头 表头只有一行,所以可以直接给它提供一个 tr 元素。tr 元素的子级……

网友NO.696200

Three.js中网格对象MESH的属性与方法详解

前言 本文主要给大家介绍了关于Three.js网格对象MESH的属性与方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 创建一个网格需要一个几何体,以及一个或多个材质。当网格创建好之后,我们就可以将它添加到场景中并进行渲染。网格对象提供了几个属性和方法用于改变它在场景中的位置和显示效果。 如下: 还有一个属性就是visible属性,默认为true,如果设置为false,THREE.Mesh将不渲染到场景中。 mesh对象的前三个属性position,rotation和scale有三种设置方法。 第一种,直接设置相关坐标轴 cube.position.x = 5; cube.position.y = 6; cube.position.z = 7; 第二种,一次性设置x,y和z坐标的值 cube.position.set(5,6,7); //效果同第一种 第三种,因为它们都是一个THREE.Vector3对象,所以我们可以直接赋值一个新的对象给它 cube.position = new THREE.Vector3(5,6,7); //效果同上 为了形象的显示这些效果,我书写了一个案例: 这个效果是使用dat.GUI实现的效果,具体效果自己将代码下载下来测试即可: !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" titleTitle/title style type="text/css" html, body { margin: 0; height: 100%; } canvas { display: block; } /style/headbody onload="draw();"/bodyscript src="build/three.js"/scriptscript src="examples/js/controls/OrbitControls.js"/scriptscript src="examples/js/libs/stats.mi……

码小辫

码小辫 发起

资源
44
粉丝
16
喜欢
412
评论
16

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明