原文 - 万字长文带你入门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. Abp 模板更换数据库 版本为V5.x,遇到的问题

    数据库的选择: Mysql使用5.0.0的版本,根据在下面的依赖项 大于等于5.0.5 && 小于6.0.0 Microsoft.EntityFrameworkCore.Tools和M ...

  2. Jmeter报错权限不够

    Jmeter报错权限不够 解决办法: chmod +x jmeter

  3. python中--try except 异常捕获以及正则化、替换异常值

    1.异常处理过程 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exceptio ...

  4. 深入浅出Java多线程(四):线程状态

    引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第四篇内容:线程状态.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代软件开发中,多线程编程已经成为提升 ...

  5. Java执行Shell和传输文件

    特性: 多线程批量执行 多密码尝试 引入依赖: <dependency> <groupId>ch.ethz.ganymed</groupId> <artifa ...

  6. 【题解】P5461 赦免战俘

    一.题目 现有 \(2^n\times2^n\ (n≤10)\) 名作弊者站成一个正方形方阵等候 kkksc03 的发落.kkksc03 决定赦免一些作弊者.他将正方形矩阵均分为 4 个更小的正方形矩 ...

  7. CF1010C Border 题解

    题目传送门 前置知识 最大公约数 | 裴蜀定理 简化题意 给定一个长度为 \(n\) 的序列 \(a\),求 \((\sum\limits_{i=1}^{n}d_ia_i) \bmod k\) 一共会 ...

  8. P4414题解

    原题 题意简述: 有 $3$ 个整数,将他们排序,将它们存到 $a,b,c$ 三个变量中,满足 $a<b<c$,再按照规则输出. 不难发现,我们可以用到 sort 函数,这个函数的作用是将 ...

  9. Spring Boot学生信息管理系统项目实战-2.字典管理和模板管理

    1.获取源码 源码是捐赠方式获取,详细请QQ联系我 :) 2.实现效果 3.项目源码 只挑重点讲,详细请看源码. 3.1 字典管理 字典管理这里分为字典的编码和名称和字典数据的增删改查. 前端页面: ...

  10. Java并发编程实例--2.获取和设置线程信息

    常用线程属性 ID: 每个线程的唯一标识: Name: 线程名称: Priority: 线程优先级,从1-10,数字越大优先级越高:不推荐改变线程优先级: Status: 线程状态,包含6种状态:ne ...