请选择 进入手机版 | 继续访问电脑版

istio调研--基础概念

所在版块: 服务网格 2020-04-17 10:56 [复制链接] 查看: 287|回复: 0
istio调研之路-基础概念版本(1.5)

什么是服务网格

定义
Linkerd的CEO Willian Morgan 给出了比较权威的定义: 服务网格(Service Mesh)是致力于解决服务间通讯的基础设施层。它负责在现代云原生应用程序的复杂服务拓扑来可靠地传递请求。实际上,Service Mesh 通常是通过一组轻量级网络代理(Sidecar proxy),与应用程序代码部署在一起来实现,而无需感知应用程序本身。

特点
  • 应用程序间通讯的中间层
  • 轻量级网络代理
  • 应用程序无感知
  • 解耦应用程序的重试/超时、监控、追踪和服务发现


架构


Service Mesh可以比作是应用程序或者说微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控。对于编写应用程序来说一般无须关心 TCP/IP 这一层(比如通过 HTTP 协议的 RESTful 应用),同样使用 Service Mesh 也就无须关心服务之间的那些原来是通过应用程序或者其他框架实现的事情,比如 Spring Cloud、OSS,现在只要交给 Service Mesh 就可以了。

Service Mesh 的技术根基——网络代理。

可以把 Service Mesh 看做是分布式的微服务代理,用来解决现在微服务框架中出现的问题.
Service Mesh代理, 常驻在应用身边(K8s Sidecar ), 应用所有的流量被代理接管, 代理会知道整个集群的所有应用信息, 并且额外添加了热更新、注入服务发现、降级熔断、认证授权、超时重试、日志监控等功能,让这些通用的功能不必每个应用都自己实现,放在代理中即可, Service Mesh 中的代理对微服务中的应用做了定制化的改进!
流量的统一管理是在控制中心完成, 管理员只需要根据控制中心的 API 来配置整个集群的应用流量、安全规则即可,代理会自动和控制中心打交道根据用户的期望改变自己的行为。



开源实现
Service Mesh 开源项目简介:


什么是istio
定义
连接、安全加固、控制和观察服务的开放平台。


  • 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和红黑部署等功能
  • 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密。
  • 控制(Control):应用用户定义的 policy,保证资源在消费者中公平分配。
  • 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing,了解服务的运行情况。


架构
Istio 服务网格从逻辑上分为数据平面和控制平面。
  • 数据平面由一组智能代理(Envoy)组成,被部署为 sidecar。这些代理通过一个通用的策略和遥测中心(Mixer)传递和控制微服务之间的所有网络通信。
  • 控制平面管理并配置代理来进行流量路由。此外,控制平面配置 Mixer 来执行策略和收集遥测数据。





为什么使用istio
通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务之间的所有网络通信,然后使用其控制平面的功能来配置和管理 Istio,这包括:
  • 为 HTTP、gRPC、WebSocket 和 TCP 流量自动负载均衡。
  • 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制。
  • 可插拔的策略层和配置 API,支持访问控制、速率限制和配额。
  • 集群内(包括集群的入口和出口)所有流量的自动化度量、日志记录和追踪。
  • 在具有强大的基于身份验证和授权的集群中实现安全的服务间通信。

Istio 为可扩展性而设计,可以满足不同的部署需求。

总结
istio是service mesh当前最流行的开源实现, 通过sidecar代理网络,对代码侵入性很少,但却能灵活的实现微服务治理所需要的负载均衡, 路由, 灰度发布,故障注入等各种功能, 认证、授权和加密等功能保证服务通信的安全, 而且可以和prometheus, jaeger等组件集成, 提高追踪,监控,日志的可观察性.Istio是K8S的最佳云原生拍档, 弥补了K8S在管理应用方面的不足.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注时速云公众号

QQ|Archiver|云原生技术实践 | 时速云 ( 京ICP备14045471号 )

GMT+8, 2020-9-19 16:17 , Processed in 0.168373 second(s), 21 queries .

快速回复 返回列表