精贴总结 - 万字长文带你入门Istio
原文 - 万字长文带你入门Istio
一、个人看法
- 背景:以docker+k8s普及,支持快速部署,通过k8s允许统一管理
- 解决:1)设计分布式系统,导致开发难度提高;2)统一多语言的服务治理方案
- 目的:将分布式系统的难点,从开发层迁移到运维层统一管理,减少开发同学的开发难度,提升开发效率
- 缺点:1)对运维提出了更高的要求;2)服务治理与平台高度绑定,难迁移
- 未来:1)mesh成为一线大厂必备趋势;2)架构同学逐步从角色开发层慢慢转向运维层;3)架构同学必须懂k8s

二、文章总结
1. ServiceMesh
简介
- 轻量代理,与应用程序部署在一起组成一个服务,负责:1)服务与服务之间的通讯;2)处理分布式系统架构设计,如路由、重试,熔断、限流、监控、追踪、幂等等
- 解耦,分布式系统设计与开发代码分离
功能

2. istio简介
- 根本上来说,istio的工作原理是以sidercar的形式将envoy的扩展版作为代理部署到每个微服务中
- envoy代理之间组成数据平面,代理的配置和管理由控制面板完成

3. istio组件
数据平面
- 主要是envoy,核心是支持网络和路由层代理,同时支持7层过滤器,对http2和gRPC传输具有一流支持
- 支持流量控制、安全性
- 支持wasm扩展
控制面
- 核心控件是istiod,负责管理和控制envoy,管理流量控制和路由管理,并在运行时将其传播到SiderCar
- istiod合并了服务发现的pilot、配置galley、证书生成的citadel及用于可扩展性的mixer
4. istio工作原理
流量管理
- 帮助我们控制流量路由的关键API资源是虚拟服务和目标规则
- 虚拟服务:一个或多个按顺序评估的路由规则组成,使我们可以配置如何将请求路由到服务中
- 目标规则:帮助我们控制达到目标的流量,影子管理、流量拆分、重试、熔断限流,依赖这个来做
安全性
- 两种验证方式:对等验证、请求身份验证;对等身份验证,用于服务到服务的身份验证;请求身份验证用于最终用户身份验证
5. 思考
- mesh的缺点:1)添加运维成本;2)程序与平台强关联,导致业务和平台混合,难以移植;3)添加一层,增加延迟;4)系统复杂度增加,学习成本提高
- istio代替品:linkerd【仅支持k8s,和istio几乎类似】和consul【优点与HashiCorp其他套件,能比较好的结合,缺点,系统部署更为复杂】
精贴总结 - 万字长文带你入门Istio的更多相关文章
- 万字长文带你入门Zookeeper!!!
导读 文章首发于微信公众号[码猿技术专栏],原创不易,谢谢支持. Zookeeper 相信大家都听说过,最典型的使用就是作为服务注册中心.今天陈某带大家从零基础入门 Zookeeper,看了本文,你将 ...
- 万字长文带你入门docker
1 Docker dockerfiler 镜像构建 Compose是在单机进行容器编排 Horbor 镜像仓库 Docker swarm 在多机进行容器编排 Docker Compose缺点是不能在分 ...
- 五万字长文带你学会Spring
Sping Spring概念介绍 spring是啥呢,你在斗地主的时候把别人打爆了那叫spring, 你成功的追到了你爱慕已久的女神,人生中的春天来了,那也叫sping 好了别看我老婆了,咱来讲讲啥是 ...
- [Redis] 万字长文带你总结Redis,助你面试升级打怪
文章目录 Redis的介绍.优缺点.使用场景 Linux中的安装 常用命令 Redis各个数据类型及其使用场景 Redis字符串(String) Redis哈希(Hash) Redis列表(List) ...
- 【万字长文】Dubbo 入门总结 ,一款高性能的 Java RPC 框架
这篇文章是我学习整理 Dubbo 的一篇文章,首先大部分内容参考了官网 + 某硅谷的视频,内容讲解进行了重新编排,40多张图片,也都是我修改重制的,虽然一万多字,但是其实也可以看出来,更多的内容集中在 ...
- 又长又细,万字长文带你解读Redisson分布式锁的源码
前言 上一篇文章写了Redis分布式锁的原理和缺陷,觉得有些不过瘾,只是简单的介绍了下Redisson这个框架,具体的原理什么的还没说过呢.趁年前项目忙的差不多了,反正闲着也是闲着,不如把Rediss ...
- 万字长文带你掌握Java数组与排序,代码实现原理都帮你搞明白!
查找元素索引位置 基本查找 根据数组元素找出该元素第一次在数组中出现的索引 public class TestArray1 { public static void main(String[] arg ...
- 性能追击:万字长文30+图揭秘8大主流服务器程序线程模型 | Node.js,Apache,Nginx,Netty,Redis,Tomcat,MySQL,Zuul
本文为<高性能网络编程游记>的第六篇"性能追击:万字长文30+图揭秘8大主流服务器程序线程模型". 最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让 ...
- 【万字长文】使用 LSM-Tree 思想基于.Net 6.0 C# 实现 KV 数据库(案例版)
文章有点长,耐心看完应该可以懂实际原理到底是啥子. 这是一个KV数据库的C#实现,目前用.NET 6.0实现的,目前算是属于雏形,骨架都已经完备,毕竟刚完工不到一星期. 当然,这个其实也算是NoSQL ...
- 可能是史上最强大的js图表库——ECharts带你入门
PS:之前的那篇博客Highcharts——让你的网页上图表画的飞起 ,评论中,花儿笑弯了腰 和 StanZhai 两位仁兄让我试试 ECharts ,去主页看到<Why ECharts ?&g ...
随机推荐
- 期盼已久全平台支持-开源IM项目OpenIM之uniapp更新
国内uniapp使用广泛,OpenIM的uniapp sdk以及文档和demo (https://github.com/OpenIMSDK/Open-IM-Uniapp-Demo)都已更新,本文主要展 ...
- KPlayer无人直播
KPlayer文档 其实就看这个教程就可以了: KPlayer文档 启动阿里云或者腾讯云的服务器进行这个步骤 服务器的购买链接: 腾讯云618 夏日盛惠_腾讯云年中优惠活动-腾讯云 域名特惠活动_域名 ...
- Go语言的原子操作atomic
atomic 原子操作 Go中原子操作的支持 CompareAndSwap(CAS) Swap(交换) Add(增加或减少) Load(原子读取) Store(原子写入) 原子操作与互斥锁的区别 at ...
- 你的代码已被埋在北极冰雪之下,保存千年——GitHub北极代码保险库
GitHub存档计划:北极代码保险库 在2019 GitHub 宇宙大会(GitHub Universe 2019)上,他们提到了一个问题,1000年后的软件会是什么样?人类会是什么样子?对此我们只能 ...
- T406696 『STA - R4』冰红茶 题解
题目链接:冰红茶 比较有意思的套路题(前提是接触过) 首先,一个最基本的线段树包含两种操作的板子要会,分别为区间赋值与区间加,同时维护区间最值.这个挺简单的,区间赋值优先级高于区间加,可以将区间加覆盖 ...
- 尴尬:在Excel中为指定数据插入饼图失败
本来是非常非常简单的一个需求,即便不会,随便百度下也都有说明. 可自己却在一次紧急工作中因此耽误了时间,需求是需要插入一个饼图但因操作错误一直无法正确显示饼图数据,非常尴尬,干脆记录下这一刻. 尴尬1 ...
- Linux Shell获取指定日期 N 天/月/年前(后)的日期
我们有时候在写批处理 Shell 脚本时,可能需要获取指定日期前(后) N 天/月/年的日期,这里的 N 可以是 1 天/月/年.2 天/月/年.3 天/月/年等等.方法其实很简单,这里做一个简单记录 ...
- 思维分析逻辑 6 DAY
数据仓库研究 大数据体系 日志采集和传输 数据建模 数据管理 数据应用 数据建模 日志传输(原始数据) ODS(原始数据) 用户基础属性表:imei,prov,city,machine 用户文章下发表 ...
- NC20272 [SCOI2009]生日快乐
题目链接 题目 题目描述 windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕.现在包括windy ,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积 ...
- 使用TensorFlow实现MNIST数据集分类
1 MNIST数据集 MNIST数据集由70000张28x28像素的黑白图片组成,每一张图片都写有0~9中的一个数字,每个像素点的灰度值在0 ~ 255(0是黑色,255是白色)之间. MINST数据 ...