ServiceMesh、SideCar和Istio
Service Mesh简介
Service Mesh直译过来就是服务网格,而他的架构就是一个个微服务组成的网络。

Sidecar简介
Service Mesh中的节点就是Sidecar节点。
sidecar直译过来就是这种摩托车,意为业务容器和非业务容器分离,如agent服务全部部署在非业务容器中。


sidecar proxy的作用和好处有很多:
- sidecar proxy能接管对应服务的入流量和出流量,所以sidecar proxy是有流量管理的功能,有了这个能力,可以做太多太多的事情了,如放火、熔断、限流、降级。
- 微服务架构中以前有公共库、sdk等部署在sidecar proxy容器中。
- 服务注册与发现可部署在sidecar proxy容器中。
- 与业务容器分离后,非业务容器中的程序不会影响到业务容器,资源能够隔离,监控系统也能部署在 sidecar proxy容器中。
- 与业务容器分离后,业务容器可以专注于业务,也无需让开发人员适配繁多的sdk、agent、中间件等。
- …
缺点:
- sidecar模式中,每个Pod都引入了一个新的容器,成本会上升。
- sidecar模式中,通信通过代理实现,所以会增加系统的开销。
一个个sidecar节点就组成了Service Mesh服务网格。
Istio简介
Service Mesh和Sidecar都是指导思想,下面介绍真正实践的Istio。
Envoy 是由Lyft公司 推出、基于C++ 11编写的ServiceMesh实现,但它专注于如何实现Proxy,并没有很好的控制面。所以 Google 和 IBM 两位巨人联合 Lyft 的合作开源项目,基于Envoy打造了Istio。
Istio中文社区:https://istio.cn/
K8s关于Istio的博客:https://www.kubernetes.org.cn/tags/istio
Istio架构如下图所示:

Envoy: 扮演sidecar的功能,协调服务网格中所有服务的出入站流量,并提供服务发现、负载均衡、限流熔断等能力,还可以收集大量与流量相关的性能指标。
Pilot: 负责部署在service mesh中的Envoy实例的生命周期管理。本质上是负责流量管理和控制,是将流量和基础设施扩展解耦,这是Istio的核心。感性上,可以把Pilot看做是管理sidecar的sidecar, 但是这个特殊的sidacar并不承载任何业务流量。Pilot让运维人员通过Pilot指定它们希望流量遵循什么规则,而不是哪些特定的pod/VM应该接收流量。比如 A/B 测试和金丝雀Canary测试。
Mixer: Mixer在应用程序代码和基础架构后端之间提供通用中介层。它的设计将策略决策移出应用层,用运维人员能够控制的配置取而代之。应用程序代码不再将应用程序代码与特定后端集成在一起,而是与Mixer进行相当简单的集成,然后Mixer负责与后端系统连接。也就是说,Mixer可以认为是其他后端基础设施(如数据库、监控、日志、配额等)的sidecar proxy。
Istio-Auth: 自动为服务之间的调用提供认证、授权和加密。
参考文档:
- https://istio.cn/
- https://www.kubernetes.org.cn/tags/istio
- https://blog.csdn.net/weixin_40274679/article/details/106232119
- https://blog.csdn.net/define_us/article/details/84812729
ServiceMesh、SideCar和Istio的更多相关文章
- 架构师成长之路也该了解的新一代微服务技术-ServiceMesh(上)
架构演进 发展历程 我们再来回顾一下架构发展历程,从前往后的顺序依次为单机小型机->垂直拆分->集群化负载均衡->服务化改造架构->服务治理->微服务时代 单机小型机:采 ...
- 【架构】ServiceMesh初步了解
ServiceMesh初步了解 servicemesh_百度搜索 初识Service Mesh - 原力注入微信公众账号 Service Mesh解读:新一代微服务技术新秀_EAII-企业架构创新研究 ...
- 第三章 Istio基本介绍
3.1 Istio的核心组件及其功能 Istio总体分两部分:控制面和数据面. 数据面(sidecar):sidecar通过注入的方式和业务容器共存于一个pod,会劫持业务容器的流量,并接受控制面组件 ...
- Istio的流量管理(实操三)
Istio的流量管理(实操三) 涵盖官方文档Traffic Management章节中的egress部分.其中有一小部分问题(已在下文标注)待官方解决. 目录 Istio的流量管理(实操三) 访问外部 ...
- 灵雀云Istio技术实践专题整理
Istio技术实践专题(1) Service Mesh Istio 基本概念和架构基础 Istio被称作Kubernetes的最佳云原生拍档.从今天起,我们推出"Istio技术实践" ...
- istio: 无法提供内部访问外部服务
现象 能够内部无法访问外部服务. 在部署测试服务 kubectl apply -f samples/sleep/sleep.yaml 设置环境变量 export SOURCE_POD=$(kubect ...
- [Istio是什么?] 还不知道你就out了,一文40分钟快速理解
@ 目录 前言 Istio是什么? 服务网格是什么? 应用场景 为什么使用Istio? 流量管理介绍 istio架构 Envoy Sidecar Istiod 虚拟服务(VirtualService) ...
- 深度剖析Istio共享代理新模式Ambient Mesh
摘要:今年9月份,Istio社区宣布Ambient Mesh开源,由此引发国内外众多开发者的热烈讨论. 本文分享自华为云社区<深度剖析!Istio共享代理新模式Ambient Mesh>, ...
- Istio Ambient Mesh七层服务治理图文详解
摘要:本文主要集中剖析Ambient mesh七层服务治理相关内容. 本文分享自华为云社区<Istio Ambient Mesh七层服务治理图文详解>,作者:华为云云原生团队. 由于Amb ...
- 基于事件驱动机制,在Service Mesh中进行消息传递的探讨
翻译 | 宋松 原文 | https://www.infoq.com/articles/service-mesh-event-driven-messaging 关键点 当前流行的Service Mes ...
随机推荐
- WPF 修复 ContextMenu 在开启 PerMonitorV2 后所用 DPI 错误
本文告诉大家如何修复 WPF 的 ContextMenu 在开启 PerMonitorV2 之后,在双屏不同的 DPI 的设备上,在副屏弹出的 ContextMenu 使用了主屏的 DPI 导致缩放错 ...
- K8s控制器(8)---Deployment
一.Deployment控制器概念.原理解读 1.1 Deployment概述 # Deployment官方文档 https://kubernetes.io/docs/concepts/workloa ...
- Solution Set - NOI真题
NOI2024 RP++! NOI2018 Day1T1 Link&Submission. 考虑一个最高的水位线使所有点通过没有积水的边就可以连通,也就是求出了一棵海拔的最大生成树.会发现只有 ...
- Linux备忘手册
资料来源:技术胖 jspang.com 下载linux学习路径:https://newimg.jspang.com/linux-image01.png Linux备忘手册: 百度网盘 链接:https ...
- C++:查漏补缺笔记
文章目录 数组 一维数组 初始化数组 数组名 二维数组 函数 函数声明 函数的分文件 函数重载 指针 空指针 野指针 const 结构体指针 指针++ 指针与函数 地址传递 C++引用 面向对象易错点 ...
- C语言:使用链式栈检测txt文件中的括号匹配
便捷目录 前言 本程序最终会完成的任务 栈的理解 代码运行过程的解释 说明 ==代码思想 (重要部分)== 全局变量和结构体代码 进栈:创建链表空间函数 出栈:删除链表空间函数 释放申请的链式栈空间 ...
- IPv6 — 移动性
目录 文章目录 目录 前文列表 IPv6 的移动性 移动操作 路由优化 前文列表 <IPv6 - 网际协议第 6 版> <IPv6 - 地址格式与寻址模式> <IPv6 ...
- 国产系统UOS安装体验
原文链接 https://www.giantliu.cn/2020/09/04/200904InstallUOS/ UOS简介 统信桌面操作系统(Uniontech OS)个人正式版是统信软件基于Li ...
- 🔥 Java Solon v2.7.6 发布
Java Solon 是什么框架? Java "新的"应用开发框架.开放原子开源基金会,孵化项目.从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态. 追求: 更 ...
- Java面试题:让依赖注入变得简单,面对@Autowired和@Resource,该如何选择?
@Autowired和@Resource都是Java Spring框架中的注解,用于实现依赖注入(DI)和控制反转(IoC).它们的区别主要在以下三个方面: 源头不同 @Autowired是Spri ...