【云原生 技术基石】4:速通云原生基石-Istio服务网格_istio 服务之间调用架构图(2)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

云原生Istio

前言:先来聊聊服务网格Service Mesh

提到微服务的时候,我们经常提到服务之间的各类服务网络是如何进行互相调用、互相配置、互相传递请求的。这些都必不可少的不能不提及服务网络。

引用谷歌上面的解释:Service Mesh是微服务时代的 TCP/IP 协议。那么其作用就很好理解了,就是给服务之间提供稳定安全、快速可靠的通讯。一言以盖之,服务网络就是各个服务之间的TCP/IP协议簇,负责我们所熟悉的网络调用、限流、熔断监控等等各种功能。

与实际应用部署一起,并且能对应用透明。下图就是服务网格中常使用的典型的Sidecar边车方式:

也就是说,图中的应用作为服务发起方,需要用最简单的方式将请求发送给本地的服务网格代理,然后代理会进行后续的操作,即服务发现、负载均衡等,然后将请求发送给目标服务即可。

在这里插入图片描述

在项目中,服务肯定是互相调用的并且有很多服务互相调用,那么就是真正意义上的“服务网格”。大致的效果图如下图所示了:这样就是网格的真正含义,看起来形成了一个一个网状格子,每个格子之间互相调用。也就是每个服务之间相互调用。而下面要讲的Istio就是这样一种可以被看做是服务网格的东西。

服务网格旨在“在微服务架构中实现可靠、快速和安全的服务间调用”。它不是一个“服务”的网格,而是一个“代理”的网格,服务可以插入这个代理,从而使网络抽象化。在典型的服务网格中,这些代理作为一个 sidecar(边车)被注入到每个服务部署中。服务不直接通过网络调用服务,而是调用它们本地的 sidecar 代理,而 sidecar 代理又代表服务管理请求,从而封装了服务间通信的复杂性。
在这里插入图片描述

正文:云原生 Istio服务网格

1、Istio的产生背景

先来了解一下Istio的产生背景,才能更方便我们知道Istio是什么。

基于k8s的背景下,k8s作为容器编排工具,其作用就是进行容器编排、解决分布式系统的部署、规划、运维等问题,使得运维可以使用一台机器而得到使用多台机器的效果。

现在的云厂商强调的都是资源弹性,一台机器的资源是有限的,而又不能一下子开很多台服务器的资源,由于网络上的用户流量都是实时变化的,存在流量峰值等情况,所以为了使得减少成本等各种原因,需要机器的弹性资源供应。

那么,简而言之,微服务是解决服务治理的技术。而Kubernetes 和 Istio 的诞生又是为了解决微服务迁移过程中遇到的问题。

Istio就是一种以简单的方式来建立已部署服务的网络,有调用链追踪、动态路由、熔断限流等许多功能,用来配合k8s的服务,并且不需要改动任何服务代码。

2、为什么需要Istio服务网格?

上述背景之下产生的问题:微服务对项目功能进行了细化与简化,将复杂的项目功能划分成许多个微服务来分解和降低项目整体的复杂度,使得这些微服务容易维护。

但其实复杂度并没有就说消失了。微服务拆分之后,单个微服务的复杂度确实是大幅降低了,但由于系统从一个单体划分为许多的一小块微服务, 那么这么多微服务之间也会存在许多问题:每个微服务之间的连接、管理和监控。

如果对这么多的微服务进行部署、版本控制、故障转移、遥测和监控等肯定是十分困难的。并且像限流、访问控制等各类运维需求做起来肯定十分困难。所以,文章最开始介绍的服务网格就诞生了。

3、Istio的功能

  • HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡。可以使调用服务时更加可靠,服务更加健壮。
  • 通过丰富的路由规则、重试、故障转移和故障注入,可以对流量行为进行细粒度控制。了解服务之间的依赖关系,以及服务之间流量的本质和流向,从而提供快速识别流量问题的能力。
  • 可插入的策略层和配置 API,支持访问控制、速率限制和配额。
  • 对出入集群入口和出口中所有流量的自动度量指标、日志记录和追踪。
  • 通过强大的基于身份的验证和授权,在集群中实现安全的服务间通信。
  • 支持多平台,可以在许多环境中运行Istio,如k8s、跨云上等。

上述的这些功能极大的减少了应用程序代码,以及底层平台和策略的耦合度。

4、Istio的架构

Istio服务网格的架构分为 数据面板控制面板

  • 数据面板:是由一组智能代理(Envoy)组成,其代理部署模式为边车模式,可以调解和控制服务之间的所有网络通信。
  • 控制面板:负责在运行时执行策略,管理和配置代理进行路由流量。

如下图所示,为Istio的架构图。

在这里插入图片描述

Envoy

在这里插入图片描述

Envoy属于数据面板,官方文档介绍Envoy的功能:

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值