原文 - 万字长文带你入门Istio

一、个人看法

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

二、文章总结

1. ServiceMesh

简介

  1. 轻量代理,与应用程序部署在一起组成一个服务,负责:1)服务与服务之间的通讯;2)处理分布式系统架构设计,如路由、重试,熔断、限流、监控、追踪、幂等等
  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的更多相关文章

  1. 万字长文带你入门Zookeeper!!!

    导读 文章首发于微信公众号[码猿技术专栏],原创不易,谢谢支持. Zookeeper 相信大家都听说过,最典型的使用就是作为服务注册中心.今天陈某带大家从零基础入门 Zookeeper,看了本文,你将 ...

  2. 万字长文带你入门docker

    1 Docker dockerfiler 镜像构建 Compose是在单机进行容器编排 Horbor 镜像仓库 Docker swarm 在多机进行容器编排 Docker Compose缺点是不能在分 ...

  3. 五万字长文带你学会Spring

    Sping Spring概念介绍 spring是啥呢,你在斗地主的时候把别人打爆了那叫spring, 你成功的追到了你爱慕已久的女神,人生中的春天来了,那也叫sping 好了别看我老婆了,咱来讲讲啥是 ...

  4. [Redis] 万字长文带你总结Redis,助你面试升级打怪

    文章目录 Redis的介绍.优缺点.使用场景 Linux中的安装 常用命令 Redis各个数据类型及其使用场景 Redis字符串(String) Redis哈希(Hash) Redis列表(List) ...

  5. 【万字长文】Dubbo 入门总结 ,一款高性能的 Java RPC 框架

    这篇文章是我学习整理 Dubbo 的一篇文章,首先大部分内容参考了官网 + 某硅谷的视频,内容讲解进行了重新编排,40多张图片,也都是我修改重制的,虽然一万多字,但是其实也可以看出来,更多的内容集中在 ...

  6. 又长又细,万字长文带你解读Redisson分布式锁的源码

    前言 上一篇文章写了Redis分布式锁的原理和缺陷,觉得有些不过瘾,只是简单的介绍了下Redisson这个框架,具体的原理什么的还没说过呢.趁年前项目忙的差不多了,反正闲着也是闲着,不如把Rediss ...

  7. 万字长文带你掌握Java数组与排序,代码实现原理都帮你搞明白!

    查找元素索引位置 基本查找 根据数组元素找出该元素第一次在数组中出现的索引 public class TestArray1 { public static void main(String[] arg ...

  8. 性能追击:万字长文30+图揭秘8大主流服务器程序线程模型 | Node.js,Apache,Nginx,Netty,Redis,Tomcat,MySQL,Zuul

    本文为<高性能网络编程游记>的第六篇"性能追击:万字长文30+图揭秘8大主流服务器程序线程模型". 最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让 ...

  9. 【万字长文】使用 LSM-Tree 思想基于.Net 6.0 C# 实现 KV 数据库(案例版)

    文章有点长,耐心看完应该可以懂实际原理到底是啥子. 这是一个KV数据库的C#实现,目前用.NET 6.0实现的,目前算是属于雏形,骨架都已经完备,毕竟刚完工不到一星期. 当然,这个其实也算是NoSQL ...

  10. 可能是史上最强大的js图表库——ECharts带你入门

    PS:之前的那篇博客Highcharts——让你的网页上图表画的飞起 ,评论中,花儿笑弯了腰 和 StanZhai 两位仁兄让我试试 ECharts ,去主页看到<Why ECharts ?&g ...

随机推荐

  1. Go - 基本数据类型和其字符串表示之间转换

    1. 基本数据类型和其字符串表示之间转换 基本类型的值,都有一个字符串表示,如数字类型值1 字符串表示为 "1",字符的编码为Unicode或者UTF-8,数字的编码是 int,底 ...

  2. svn忽略某个目录后update出现fetching

    忽略某个子目录 在svn udpate一个大目录时忽略特定的子目录,主要是子目录下内容已经单独拉取过,并且这个大目录对于程序来说,可以是只读的. 操作方法:选中要忽略的目录,右键 svn - Unve ...

  3. TienChin-课程管理-课程更新接口

    更改包名 将之前的 entity 更改为 domain: 将之前的 validator 包当中的校验分组接口移动到 common 模块当中,因为其它模块也需要使用就放到公共当中进行存储. 更改完毕之后 ...

  4. 中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练

    中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力 以ChatGPT.GPT-4等为代表的大语言模型(Large Language Model, ...

  5. tensorflow语法【tf.concat()详解】

    相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...

  6. 【6】opencv采用映射技术实现鱼眼镜头校正和鱼眼镜头还原全景图。

    相关文章: [1]windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置 [2]Visual Studio 2017同时配置OpenCV2.4 以及O ...

  7. C++ CryptoPP使用AES加解密

    Crypto++ (CryptoPP) 是一个用于密码学和加密的 C++ 库.它是一个开源项目,提供了大量的密码学算法和功能,包括对称加密.非对称加密.哈希函数.消息认证码 (MAC).数字签名等.C ...

  8. 操作系统开发:BIOS/MBR基础与调试

    这里在实验之前需要下载 Bochs-win32-2.6.11 作者使用的是Linux版本的,在Linux写代码不太舒服,所以最好在Windows上做实验,下载好虚拟机以后还需要下载Nasm汇编器,以及 ...

  9. Python 使用sigthief签发证书

    Windows 系统中的一些非常重要文件通常会被添加数字签名,其目的是用来防止被篡改,能确保用户通过互联网下载时能确信此代码没有被非法篡改和来源可信,从而保护了代码的完整性.保护了用户不会被病毒.恶意 ...

  10. NC20909 游戏

    题目链接 题目 题目描述 有 n 个人围成一个环玩传球游戏,每轮游戏手里拿着球的那个人必须将球传给他(她)的一个朋友.游戏一共进行了 m 轮,初始球在第 a 个人手中,问游戏结束后球在第 b 个人手中 ...