zoukankan      html  css  js  c++  java
  • 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对这些代理管理的组件。

    架构图。

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

    下边是控制平面

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

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

    Mixer  策略,集群访问控制。       遥测 ,数据收集和汇报,收集服务之间流转的数据。   

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

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

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

    Istio解决的问题

    故障排查

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

    应用容错性

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

    应用升级发布

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

    系统安全

    • 服务都是HTTP的而非HTTPS
    • 没有流量限制,任何人都可以对服务发起攻击
  • 相关阅读:
    谨以此文纪念一周的心血历程
    面向对象初调用:foolish 电梯
    洛谷 1016 旅行家的预算
    洛谷 1514 引水入城
    洛谷 3178 树上操作
    洛谷 3811 【模板】乘法逆元
    洛谷 1156 垃圾陷阱
    洛谷 1363 幻想迷宫
    洛谷 1736 创意吃鱼法
    洛谷 1436 棋盘分割
  • 原文地址:https://www.cnblogs.com/edeny/p/14721115.html
Copyright © 2011-2022 走看看