Skip to content

Latest commit

 

History

History
33 lines (19 loc) · 2.64 KB

File metadata and controls

33 lines (19 loc) · 2.64 KB

概念-istio

服务网格介绍

现代应用程序通常被设计成微服务的分布式集合,每个服务执行一些离散的业务功能。服务网格是专门的基础设施层,包含了组成这类体系结构的微服务网络。服务网络不仅描述了这个网络,而且还描述了分布式应用程序组件之间的交互。所有在服务之间传递的数据都是由服务网络控制和路由

随着分布式服务的部署--比如基于kubernetes的系统--规模和复杂性的增长,它可能会变得更加难以理解和管理。需求可以包括发现,比如A/B测试、(金丝雀)canary部署、速率限制、访问控制、加密和端到端身份验证

服务到服务的通信使分布式应用称为可能。在应用程序集群内部和跨应用程序集群路由这种通信变得越来越复杂。Istio有助于减少这种复杂性,同时减轻开发团队的压力

Istio介绍

Istio是一个开源服务网格,它透明地分层到现有的分布式应用程序上。Istio强大的特性提供了一种统一和更有效的方式来保护、连接和监视服务。Istio是实现负载均衡、服务到服务身份验证和监视的路径--只需要很少或不需要更改服务代码。它强大的控制平面带来了重要的特点

  • 使用TLS加密、强身份认证和授权的集群内服务到服务的安全通信
  • 自动负载均衡的HTTP,grpc,websocket,和TCP流量
  • 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制
  • 一个可插入的策略层和配置API,支持访问控制、速率限制和配额
  • 对集群内的所有流量(包括集群入口和出口)进行自动度量、日志和跟踪

Istio是为可扩展性而设计的,可以处理不同范围的部署需求。Istio的控制平面运行在kubernetes上,可以将部署在该集群中的应用程序添加到网格中,将网络扩展到其他集群,甚至连接VM或运行在kubernetes之外的其他端点

工作说明

Istio由两个部分组成:控制平面和数据平面

数据平面是业务之间的通信平面。如果没有一个服务网格,网络就无法理解正在发送的流量,也无法根据它是哪种类型的流量,或者它从谁那来,到谁那里去做出任何决定

服务网格使用代理拦截所有的网络流量,允许根据设置的配置提供广泛的应用程序感知功能

代理与在集群中启动的每个服务一起部署,或者与运行在虚拟机上的服务一起运行

控制平面获取所需的配置和服务视图,并动态地对代理服务器进行编程,随着规则或环境的变化更新它们