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能够很好地帮助应对这些挑战。
二、为何使用 Istio?
Istio 提供一种简单的方式来为已部署的服务创建网络,该网络具备负载均衡、服务间认证、监控等功能,而不须要对服务的代码作任何改动。简单的说,有了Istio,你的服务
就再也不须要任何微服务开发框架(典型如Spring Cloud,Dubbo),也再也不须要本身手动实现各类复杂的服务治理功能(不少是Spring Cloud和Dubbo也不能提供的,须要自
己动手)。只要服务的客户端和服务端能够进行简单的直接网络访问,就能够经过将网络层委托Istio,从而得到一系列的完备功能。
能够近似的理解为:Istio = 微服务框架 + 服务治理。
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/