service mesh
![](https://img.haomeiwen.com/i10425058/7a960f95e3fd9571.png)
![](https://img.haomeiwen.com/i10425058/b7785286dc1dea04.png)
Istio 总的来看就是两个服务之间的代理,通过将两个服务分离开然后一线一些公共的任务进行统一的管理。
Istio 的作用
![](https://img.haomeiwen.com/i10425058/d7368b0e0300b46d.png)
![](https://img.haomeiwen.com/i10425058/f5d26f628597efa6.png)
![](https://img.haomeiwen.com/i10425058/46f5acd3ae76d384.png)
![](https://img.haomeiwen.com/i10425058/98d05d25b0c438f5.png)
使用Istio的部分功能
第一步,自然是在测试环境搭建一套 Istio 的集群,理解所有的核心概念和组件。
了解 Istio 提供的接口和资源,知道它们的用处,思考如何应用到自己的场景中,然后是熟悉 Istio 的源代码,跟进社区的 Issues,了解目前还存在的 Issues 和 Bug,思考如何规避或者修复。
这一步是基础,需要积累到 Istio 安装部署、核心概念、功能和缺陷相关的知识,为后面做好准备。
第二步,可以考虑接入 Istio 的观察性功能,包括 Logging、Tracing、Metrics 数据。
应用部署到集群中,选择性地(一般是流量比较小,影响范围不大的应用)为一些应用开启 Istio 自动注入功能,接管应用的流量,并安装 Prometheus 和 Zipkin 等监控组件,收集系统所有的监控数据。
这一步可以试探性地了解 Istio 对应用的性能影响,同时建立服务的性能测试基准,发现服务的性能瓶颈,帮助快速定位应用可能出现的问题。
此时,这些功能可以是对应用开发者透明的,只需要集群管理员感知,这样可以减少可能带来的风险。
第三步,为应用配置 Time Out 超时参数、自动重试、熔断和降级等功能,增加服务的容错性。
这样可以避免某些应用错误进行这些配置导致问题的出现,这一步完成后需要通知所有的应用开发者删除掉在应用代码中对应的处理逻辑。这一步需要开发者和集群管理员同时参与。
第四步,和 Ingress、Helm、应用上架等相关组件和流程对接,使用 Istio 接管应用的升级发布流程。
让开发者可以配置应用灰度发布升级的策略,支持应用的蓝绿发布、金丝雀发布以及 AB 测试。
第五步,接入安全功能。配置应用的 TLS 互信,添加 RBAC 授权,设置应用的流量限制,提升整个集群的安全性。
网友评论