12 ServiceMesh代表作istio-----12-1 ServiceMes、Istio架构原理

什么是ServiceMesh?

  • 服务网格
  • 是概念,不是产品
  • 解决网络层面的问题

Linkerd

  • 始于2016年的CNCF官方项目
  • 1.x基于节点(物理机、虚拟机)
  • 2.x基于kubernetes(源自Conduit)

Istio

  • Google、IBM、Lyfy发起的开源项目
  • 2017年退出,2018年7月发布1.0
  • 多平台支持

对比

  • 都是基于sidecar模式
  • 都分为数据层和控制层
  • Istio更受欢迎

https://github.com/istio/istio   # 地址

 

 

Istio架构和原理

https://istio.io/latest/zh/     # 官网

核心就是一个代理

 

  一个pod共享网络代理,接管pod网络。让服务的进出流量都经过代理。有Istio对这些代理管理的组件。

架构图。

上边是数据平面   一系列的代理组成。

下边是控制平面

proxy支持很多协议。serviceA 之间通信是通过proxy之间转发。

Pilot  指挥干活。 客户端连接,传输数据给Pilot。Pilot分发出去

Mixer  策略,集群访问控制。       遥测 ,数据收集和汇报,收集服务之间流转的数据。 分为: istio-telemetry 和istio-policy ,分别处理遥测数据的收集和策略的执行。  

Adapter 适配器, 接收adapter汇报的数据 。 常见的:prometheus等

Galley  校验配置,相当于后勤的工作。

Citadel 安全相关的,服务到服务之间授权rbac。

 

 

Istio解决的问题

故障排查

  • 这个请求在拿失败的?A有调用C吗?
  • 为什么用户的请求/页面  ka住了?
  • 为什么系统这么慢?哪个组件慢?

应用容错性

  • 客户端没有实质timeout导致应用卡住。
  • 没有重试机制,某个服务偶尔出现的异常导致用户页面错误。
  • 某些节点异常(如load高),导致应用响应变长。

应用升级发布

  • 新版本一次性升级,一旦出错影响范围很大
  • 无法进行A/B测试,根据用户属性访问不通版本
  • 服务版本的依赖关系处理不当导致的服务不可用

系统安全

  • 服务都是HTTP的而非HTTPS
  • 没有流量限制,任何人都可以对服务发起攻击

 

posted @   王竹笙  阅读(178)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2019-04-30 ELK高并发,高可用队列日志管理系统
点击右上角即可分享
微信分享提示