关于我们
书单推荐
新书推荐
|
深入理解Istio:云原生服务网格进阶实战 读者对象:服务网格技术爱好者,云原生从业者,微服务开发者和架构师
本书是云原生社区多位服务网格技术专家的鼎力之作。全书共 10 章,内容涉及 Service Mesh 概述、核心功能、架构解析、安装与部署、流量控制、可观察性、安全、进阶实战、故障排查、Service Mesh 生态,分别从概念、实践和生态扩展 3 个层面为读者系统介绍了 Istio 的相关知识,着重介绍了 Istio 在 1.5 版本以后的重大变化,从底层深入剖析了 Istio 的各项核心功能。本书能为云计算领域的从业者,尤其是微服务领域的开发者在落地 Istio 时提供理论指导和实际借鉴。
云原生社区服务于云原生终端用户,由宋净超和其他几位云原生技术意见领袖共同发起,成立于2020年5月。云原生社区的前身是ServiceMesher社区,该社区成立于2018年5月,是国内推广服务网格技术的先驱阵地。云原生社区自成立以来,围绕Kubernetes、Istio、边缘计算、Dapr等云原生相关技术,与从业人员分享优质内容,秉承 “共识、共治、共建、共享” 的原则,组织了多场丰富多彩的线上和线下活动。要想了解更多,请访问云原生社区官方网站,或关注云原生社区微信公众号Cloud Native Community。
第 1 章 Service Mesh 概述 ............................................................................................................ 1
1.1 Service Mesh 基本概念 ............................................................................................... 2 1.2 后 Kubernetes 时代的微服务 ....................................................................................... 5 1.2.1 重要观点 ......................................................................................................... 6 1.2.2 Kubernetes 与 Service Mesh .............................................................................. 6 1.2.3 kube-proxy 组件 ............................................................................................... 8 1.2.4 Kubernetes Ingress 与 Istio Gateway .................................................................. 8 1.2.5 xDS 协议 ......................................................................................................... 9 1.2.6 Envoy ............................................................................................................ 11 1.2.7 Istio Service Mesh .......................................................................................... 12 1.3 什么是 Istio .............................................................................................................. 12 1.3.1 为什么使用 Istio ............................................................................................ 13 1.3.2 Istio 的平台支持 ............................................................................................ 13 1.4 本章小结 .................................................................................................................. 14 第 2 章 核心功能 .......................................................................................................................... 15 2.1 流量控制 .................................................................................................................. 15 2.1.1 请求路由和流量转移 ..................................................................................... 16 2.1.2 弹性功能 ....................................................................................................... 17 2.1.3 调试能力 ....................................................................................................... 18 2.1.4 实现流量控制的自定义资源 .......................................................................... 19 2.2 安全 ......................................................................................................................... 20 2.2.1 认证 .............................................................................................................. 20 2.2.2 授权 .............................................................................................................. 21 2.3 可观察性 .................................................................................................................. 21 2.4 本章小结 .................................................................................................................. 23 第 3 章 架构解析 .......................................................................................................................... 24 3.1 Istio 的架构组成 ....................................................................................................... 24 3.2 Istio 的设计目标 ....................................................................................................... 25 3.3 Istio 的架构变迁 ....................................................................................................... 26 3.4 控制平面 .................................................................................................................. 27 3.4.1 Pilot ............................................................................................................... 27 3.4.2 Citadel ........................................................................................................... 37 3.4.3 Galley ............................................................................................................ 40 3.5 数据平面 .................................................................................................................. 45 3.5.1 数据平面的概念 ............................................................................................ 45 3.5.2 Sidecar 注入及透明流量劫持 ......................................................................... 47 3.5.3 Sidecar 流量路由机制分析 ............................................................................. 57 3.5.4 Envoy ............................................................................................................ 86 3.5.5 MOSN ........................................................................................................... 93 3.6 本章小结 .................................................................................................................. 98 第 4 章 安装与部署 ...................................................................................................................... 99 4.1 安装 ......................................................................................................................... 99 4.1.1 环境准备 ....................................................................................................... 99 4.1.2 安装 Kubernetes 集群 ................................................................................... 100 4.1.3 安装 Istio ..................................................................................................... 100 4.2 升级 ....................................................................................................................... 102 4.2.1 金丝雀升级 ................................................................................................. 102 4.2.2 热升级 ......................................................................................................... 104 4.3 Bookinfo 实例 ......................................................................................................... 104 4.3.1 环境准备 ..................................................................................................... 105 4.3.2 部署应用 ..................................................................................................... 106 4.3.3 启动应用服务 .............................................................................................. 106 4.3.4 确定 Ingress 的 IP 地址和端口 ..................................................................... 107 4.3.5 集群外部访问应用 ....................................................................................... 108 4.4 本章小结 ................................................................................................................ 108 第 5 章 流量控制 ........................................................................................................................ 109 5.1 流量控制 CRD ........................................................................................................ 109 5.1.1 VirtualService ............................................................................................... 110 5.1.2 DestinationRule ............................................................................................ 111 5.1.3 Gateway ....................................................................................................... 112 5.1.4 ServiceEntry ................................................................................................. 114 5.1.5 Sidecar ......................................................................................................... 115 5.2 路由 ....................................................................................................................... 116 5.2.1 VirtualService ............................................................................................... 116 5.2.2 路由规则 ..................................................................................................... 118 5.2.3 DestinationRule ............................................................................................ 120 5.2.4 Gateway ....................................................................................................... 122 5.2.5 ServiceEntry ................................................................................................. 123 5.3 流量镜像 ................................................................................................................ 127 5.3.1 流量镜像能够做什么 ................................................................................... 127 5.3.2 流量镜像的实现原理 ................................................................................... 128 5.3.3 流量镜像的配置 .......................................................................................... 130 5.3.4 流量镜像实践 .............................................................................................. 132 5.4 Ingress/Egress ......................................................................................................... 141 5.4.1 Ingress ......................................................................................................... 142 5.4.2 Egress .......................................................................................................... 158 5.5 超时 ....................................................................................................................... 174 5.6 重试 ....................................................................................................................... 178 5.7 熔断 ....................................................................................................................... 181 5.8 故障注入 ................................................................................................................ 184 5.8.1 HTTPFaultInjection.Abort ............................................................................. 185 5.8.2 HTTPFaultInjection.Delay ............................................................................. 186 5.9 本章小结 ................................................................................................................ 189 第 6 章 可观察性 ........................................................................................................................ 190 6.1 指标监控 ................................................................................................................ 190 6.1.1 Prometheus .................................................................................................. 191 6.1.2 Prometheus 配置解析 ................................................................................... 195 6.1.3 Prometheus-Istio 指标 ................................................................................... 200 6.2 可视化 .................................................................................................................... 202 6.2.1 Grafana ........................................................................................................ 203 6.2.2 Kiali ............................................................................................................ 221 6.3 日志 ....................................................................................................................... 235 6.3.1 传统日志 ..................................................................................................... 235 6.3.2 云原生日志 ................................................................................................. 236 6.3.3 Istio 日志 ..................................................................................................... 236 6.3.4 ELK ............................................................................................................ 236 6.3.5 EFK ............................................................................................................. 250 6.4 分布式追踪 ............................................................................................................ 264 6.4.1 Jaeger .......................................................................................................... 265 6.4.2 Zipkin .......................................................................................................... 272 6.4.3 SkyWalking .................................................................................................. 277 6.5 本章小结 ................................................................................................................ 293 第 7 章 安全 ............................................................................................................................... 294 7.1 认证 ....................................................................................................................... 294 7.1.1 对等认证 ..................................................................................................... 296 7.1.2 请求认证 ..................................................................................................... 307 7.2 授权 ....................................................................................................................... 312 7.2.1 授权策略 ..................................................................................................... 313 7.2.2 全局策略 ..................................................................................................... 314 7.2.3 局部策略 ..................................................................................................... 315 7.2.4 Match label .................................................................................................. 316 7.2.5 匹配算法 ..................................................................................................... 317 7.2.6 规则详解 ..................................................................................................... 318 7.2.7 操作实例 ..................................................................................................... 320 7.2.8 JWT 授权 .................................................................................................... 325 7.3 本章小结 ................................................................................................................ 337 第 8 章 进阶实战 ........................................................................................................................ 338 8.1 集成服务注册中心 .................................................................................................. 338 8.1.1 Istio 服务模型 .............................................................................................. 338 8.1.2 Pilot 服务模型源码分析 ............................................................................... 339 8.1.3 第三方服务注册表集成 ............................................................................... 341 8.2 对接 API 网关 ........................................................................................................ 342 8.2.1 Envoy .......................................................................................................... 343 8.2.2 预备工作 ..................................................................................................... 343 8.2.3 开始监听 ..................................................................................................... 344 8.2.4 一条路由 ..................................................................................................... 346 8.2.5 一个服务 ..................................................................................................... 348 8.3 分布式追踪增强 ..................................................................................................... 352 8.3.1 OpenTracing ................................................................................................ 352 8.3.2 OpenTracing 概念模型 ................................................................................. 352 8.3.3 OpenTracing 数据模型 ................................................................................. 353 8.3.4 跨进程调用信息传播 ................................................................................... 354 8.4 实现方法级别的调用跟踪 ....................................................................................... 356 8.4.1 Istio 的分布式追踪 ...................................................................................... 356 8.4.2 使用 OpenTracing 传递分布式跟踪上下文 ................................................... 359 8.4.3 在 Istio 中加入方法级别的调用跟踪 ............................................................ 360 8.5 实现 Kafka 消息跟踪 .............................................................................................. 363 8.5.1 eshop 实例程序结构 .................................................................................... 363 8.5.2 将 Kafka 消息处理加入调用链路跟踪 .......................................................... 364 8.5.3 安装 Kafka 集群 .......................................................................................... 365 8.5.4 部署实例应用 .............................................................................................. 365 8.5.5 将调用跟踪上下文从 Kafka 传递到 REST 服务 ............................................ 367 8.6 部署模型 ................................................................................................................ 371 8.6.1 集群模型与控制平面模型 ............................................................................ 371 8.6.2 网络模型 ..................................................................................................... 374 8.6.3 网格模型 ..................................................................................................... 374 8.6.4 身份和信任模型 .......................................................................................... 375 8.6.5 租户模型 ..................................................................................................... 376 8.7 多集群部署与管理 .................................................................................................. 377 8.7.1 多控制平面 ................................................................................................. 377 8.7.2 单控制平面 ................................................................................................. 382 8.8 智能 DNS ............................................................................................................... 387 8.8.1 待解决问题 ................................................................................................. 388 8.8.2 功能开启 ..................................................................................................... 389 8.8.3 访问外部服务 .............................................................................................. 390 8.8.4 自动地址分配 .............................................................................................. 391 8.8.5 跨集群访问 ................................................................................................. 391 8.9 本章小结 ................................................................................................................ 392 第 9 章 故障排查 ........................................................................................................................ 393 9.1 常见使用问题 ......................................................................................................... 393 9.1.1 Service 端口命名约束 .................................................................................. 394 9.1.2 流量控制规则下发顺序问题 ........................................................................ 395 9.1.3 请求中断分析 .............................................................................................. 396 9.1.4 Sidecar 和 user container 的启动顺序 ............................................................ 399 9.1.5 Ingress Gateway 和 Service 端口联动 ............................................................ 400 9.1.6 VirtualService 作用域 ................................................................................... 401 9.1.7 VirtualService 不支持 host fragment .............................................................. 402 9.1.8 全链路跟踪并非完全透明接入 ..................................................................... 403 9.1.9 mTLS 导致连接中断 .................................................................................... 404 9.2 诊断工具 ................................................................................................................ 405 9.2.1 istioctl 命令行工具安装 ............................................................................... 406 9.2.2 使用 proxy-status 命令进行诊断 ................................................................... 408 9.2.3 使用 proxy-config 命令进行诊断 .................................................................. 412 9.2.4 使用 analyze 命令诊断 ................................................................................. 415 9.2.5 启用 Galley 自动配置分析诊断 .................................................................... 420 9.2.6 采用 describe 命令验证并理解网格配置 ....................................................... 422 9.2.7 ControlZ 自检工具 ....................................................................................... 427 9.3 本章小结 ................................................................................................................ 429 第 10 章 Service Mesh 生态 ...................................................................................................... 430 10.1 开源项目 .............................................................................................................. 430 10.1.1 Linkerd ..................................................................................................... 430 10.1.2 Envoy ....................................................................................................... 431 10.1.3 Istio .......................................................................................................... 431 10.1.4 Consul Connect ......................................................................................... 432 10.1.5 MOSN ...................................................................................................... 432 10.1.6 Kong Kuma ............................................................................................... 433 10.1.7 Aeraki ....................................................................................................... 433 10.2 商业化项目 ........................................................................................................... 434 10.2.1 AWS ......................................................................................................... 434 10.2.2 Google ...................................................................................................... 434 10.2.3 Microsoft .................................................................................................. 435 10.2.4 Red Hat ..................................................................................................... 435 10.2.5 Aspen Mesh .............................................................................................. 435 10.2.6 国内项目 .................................................................................................. 436 10.3 标准 ..................................................................................................................... 436 10.3.1 xDS .......................................................................................................... 437 10.3.2 SMI .......................................................................................................... 445 10.3.3 UDPA ....................................................................................................... 449 10.4 扩展 ..................................................................................................................... 450 10.4.1 WebAssembly ............................................................................................ 451 10.4.2 Contour ..................................................................................................... 454 10.5 本章小结 .............................................................................................................. 470
你还可能感兴趣
我要评论
|