Istio

service mesh

image

image

实现

国外

linkerd, Istio

image

国内

蚂蚁自研,已开源

image

腾讯基于springcloud

image

华为自研

image

Istio

image

K8S和Istio相辅相成,Istio帮助K8S实现了服务治理的功能,而K8S为Istio实现了数据层面,服务发现等功能

image

image

image

虽然sidecar模式也存在缺点,但是和springcloud等的微服务模式相比可以实现业务代码和服务治理的解耦,显然更符合高内聚低耦合的原则

架构图

image

自动注入

在K8S创建Pod的时候,会修改原始的yml配置部署文件,添加一个container容器名为sidecar,镜像地址为sidecar的地址,该操作是无感知的

流量拦截

image

通信期间对网卡的出站和入站数据进行拦截控制

服务发现和负载均衡

Envoy向Pilot请求需要通信的服务地址和设置的负载均衡策略,从而根据相应的负载均衡策略选择正确的服务进行通信

流量控制

image

向Pilot请求流量规则,之后通过获取到的证书和密钥进行通信

访问安全

image

向Citadel发送请求获取证书和密钥再进行通信

服务监控

image

Mixer收集各Pod上报的数据并提供接口给其他监控工具调用来展示监控信息

策略执行

image

发送请求前先询问Mixer该请求是否可以发送,接收请求的时候也是向Mixer询问是否可接收

Pilot

在Istio架构中是必须的

image

  1. 类似注册中心,但是不存储具体的注册信息,而是对接第三方注册中心,由第三方注册中心完成注册信息的存储和管理

  2. 向数据平面下发路由规则,将配置的路由规则转换成Envoy能识别的格式并下发,Envoy根据路由规则进行负责均衡

Mixer

在Istio架构中不是必须的

负责数据收集并提供接口给第三方监控平台,如Promethues

负责策略执行,即告诉Envoy该请求是丢弃还是继续下发

Citadel

在Istio架构中不是必须的

Istio的认证授权机制主要由它完成,需要与其他组件一起配合完成

支付类产品为了保证安全性用得比较多

image

image

Galley

类似配置中心

image

image

image

image

Sidecar-injector

在pod启动时自动注入一个sidecar容器,对用户是透明的,与业务代码容器分离,降低了业务代码复杂度

Proxy(Envoy)

sidecar,负责数据平面与控制平面的交互
image

IngressGateway

向外暴露统一访问端口

image

posted @   小周同学、  阅读(182)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示