服务网格istio概念应知应会

1、背景html

最近架构组基于istio开发了服务网格(Service Mesh)平台,借此机会把相关的背景知识作一次学习和记录,方便回头查看。后端

第一版的效果:安全

2、istio网络

官方手册:https://istio.io/latest/zh/docs/concepts/what-is-istio/架构

stio是Google/IBM/Lyft联合开发的开源项目。负载均衡

官方定义为:框架

Istio:一个链接,管理和保护微服务的开放平台。运维

Istio来自希腊语,英文意思是”Sail”, 翻译为中文是“启航”。它的图标以下:微服务

能够类比Google的另一个相关产品:Kubernetes,名字也是一样起源于古希腊,是船长或者驾驶员的意思。下图是Kubernetes的图标:post

 

一、Service Mesh简介

istio做为实现Service Mesh的一个开源项目,首先要对Service Mesh有了解。

在过去的几年中,微服务架构已成为软件设计中流行的样式。在这种架构中,咱们将应用程序分解为可独立部署的服务。这些服务一般是轻量级的,多语言的,而且一般由各类职能团队进行开发部署。当某些服务数量增长,难以管理且愈来愈复杂时,微服务架构将一直有效。但这也在管理安全性,网络流量控制和可观察性等各个方面带来了挑战。

Service Mesh能够很好地帮助应对这些挑战。

  • Service Mesh 用于描述组成应用程序的微服务及其之间的交互。随着服务数量的增长和复杂性的增长,扩展和管理变得愈来愈困难。Service Mesh能够为微服务架构提供服务发现,负载均衡,故障恢复,指标和监视。
  • Service Mesh 一般还可以知足更复杂的需求,例如A/B测试,金丝雀发布,速率限制,访问控制和端到端身份验证。
  • Service Mesh 提供了一种轻松建立服务网络的方式,该网络具备负载均衡,服务到服务的身份验证,监视等功能,而微服务代码更改不多或没有更改。

二、为何使用 Istio?

Istio 提供一种简单的方式来为已部署的服务创建网络,该网络具备负载均衡、服务间认证、监控等功能,而不须要对服务的代码作任何改动。简单的说,有了Istio,你的服务

就再也不须要任何微服务开发框架(典型如Spring Cloud,Dubbo),也再也不须要本身手动实现各类复杂的服务治理功能(不少是Spring Cloud和Dubbo也不能提供的,须要自

己动手)。只要服务的客户端和服务端能够进行简单的直接网络访问,就能够经过将网络层委托Istio,从而得到一系列的完备功能。

能够近似的理解为:Istio = 微服务框架 + 服务治理。

Istio的关键功能:

  • HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡。
  • 经过丰富的路由规则、重试、故障转移和故障注入,能够对流量行为进行细粒度控制。
  • 可插入的策略层和配置 API,支持访问控制、速率限制和配额。
  • 对出入集群入口和出口中全部流量的自动度量指标、日志记录和跟踪。
  • 经过强大的基于身份的验证和受权,在集群中实现安全的服务间通讯。
  • Istio 旨在实现可扩展性,知足各类部署需求。

核心功能
Istio 在服务网络中统一提供了许多关键功能:

流量管理

经过简单的规则配置和流量路由,您能够控制服务之间的流量和 API 调用。Istio 简化了断路器、超时和重试等服务级别属性的配置,而且能够轻松设置 A/B测试、金丝雀部署和基于百分比的流量分割的分阶段部署等重要任务。

经过更好地了解您的流量和开箱即用的故障恢复功能,您能够在问题出现以前先发现问题,使调用更可靠,而且使您的网络更增强大——不管您面临什么条件。

安全

Istio 的安全功能使开发人员能够专一于应用程序级别的安全性。Istio 提供底层安全通讯信道,并大规模管理服务通讯的认证、受权和加密。使用Istio,服务通讯在默认状况下是安全的,它容许您跨多种协议和运行时一致地实施策略——全部这些都不多或根本不须要应用程序更改。

虽然 Istio 与平台无关,但将其与 Kubernetes(或基础架构)网络策略结合使用,其优点会更大,包括在网络和应用层保护 pod 间或服务间通讯的能力。

可观察性

Istio 强大的跟踪、监控和日志记录可以让您深刻了解服务网格部署。经过 Istio 的监控功能,能够真正了解服务性能如何影响上游和下游的功能,而其自定义仪表板能够提供对全部服务性能的可视性,并让您了解该性能如何影响您的其余进程。

Istio 的 Mixer 组件负责策略控制和遥测收集。它提供后端抽象和中介,将 Istio 的其他部分与各个基础架构后端的实现细节隔离开来,并为运维提供对网格和基础架构后端之间全部交互的细粒度控制。

全部这些功能可让您能够更有效地设置、监控和实施服务上的 SLO。固然,最重要的是,您能够快速有效地检测和修复问题。

平台支持

Istio 是独立于平台的,旨在运行在各类环境中,包括跨云、内部部署、Kubernetes、Mesos 等。您能够在 Kubernetes 上部署 Istio 或具备 Consul 的 Nomad 上部署。Istio 目前支持:

在 Kubernetes 上部署的服务
使用 Consul 注册的服务
在虚拟机上部署的服务

集成和定制

策略执行组件能够扩展和定制,以便与现有的 ACL、日志、监控、配额、审计等方案集成。 

好文推荐:

https://www.cnblogs.com/xishuai/p/microservices-and-service-mesh.html(微服务(Microservices)和服务网格(Service Mesh)架构概念整理

https://www.kubernetes.org.cn/5556.html(详解Istio实践之熔断和限流工做原理

https://blog.csdn.net/luanpeng825485697/article/details/84560659(istio简介和基础组件原理(服务网格Service Mesh))

https://blog.csdn.net/chenhaifeng2016/article/details/78609208(深度剖析Service Mesh服务网格新生代Istio)

https://zhuanlan.zhihu.com/p/101723832(微服务之服务治理:Envoy 全局 gRPC 限速服务 lyft/ratelimit 详解)

https://www.jianshu.com/p/bed143a1c886(istio 简介)

http://www.uml.org.cn/wfw/201909063.asp(Istio是啥?一文带你完全了解!)

https://servicemesh.es/

相关文章
相关标签/搜索