赞
踩
服务网格(Service Mesh)这个术语通常用于描述构成这些应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服务网格越来越难以理解和管理。
它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,例如A/B测试、金丝雀发布、限流、访问控制和端到端认证等。
每一个方框就是一个pod,绿色的部分就是应用代码,蓝色部分就是sidecar。
这样应用之间的服务调用就变成了sidecar和sidecar之间调用的一个网。所谓的mesh就是sidecar的这种网络调用使得整个平台变成了一个网状结构。
服务网格有多样的能力,服务发现,负载均衡,故障恢复等等。
在说服务网格的时候,它不仅仅是在谈服务网格自身,要去做高级的流量管理不仅仅是集群内部的,还要涉及到外面的客户端的流量如何进来。
它就是涉及到了ingress流量,外面的流量进来之后,集群内部的微服务跳转,就是服务和服务之间的调用,还涉及到内部的服务调用外部的服务可以通过统一的对外代理出去访问,这个叫做egress gateway。
虽然说他是服务网格,但是它解决的是入栈的流量,服务网格的流量,和出栈流量的统一管控。
这样就将所有流量的管控都统一起来了。
k8之前提供ingress对象来帮你做入栈流量管理,但是ingress有许许多多的限制,这些限制基于istio都能够帮你实现,所以你即使做入栈流量的接入,只做这一点也能够完全满足你的诉求。
istio是一个集成了入栈流量,mesh流量,出栈流量统一管控的一个组合。
istio基于简单的配置就可以做精细化的流量管理。基于精细化的流量管理可以去做A/B测试,金丝雀部署等等这些支持业务场景。
连接
·通过简单的规则配置和流量路由,可以控制服务之间的流量和API调用。Istio简化了断路器、超时和重试等服务级别属性的配置,并且可以轻松设置A/B测试、金丝雀部署和基于百分比的流量分割的分阶段部署等重要任务。
控制
·通过更好地了解流量和开箱即用的故障恢复功能,可以在问题出现之前先发现问题,使调用更可靠,并且使您的网络更加强大——无论您面临什么条件。
可以真实的了解流量的走向,一些开箱即用的故障恢复来帮你管控流量。
现在的架构不应该只在集群的边界去做加固,而是你要去做假设整个集群都是不安全的,所以任何应用提供服务的时候都需要去做安全加固,认证鉴权加密传输。istio就天然有这种能力,它允许去做协议的升级,允许基于tls协议去做身份验证,去做鉴权。
·使开发人员可以专注于应用程序级别的安全性。Istio提供底层安全通信信道,并大规模管理服务通信的认证、授权和加密。使用Istio,服务通信在默认情况下是安全的,它允许跨多种协议和运行时一致地实施策略——所有这些都很少或根本不需要应用程序更改。
●虽然Istio与平台无关,但将其与Kubernetes(或基础架构)网络策略结合使用,其优势会更大,包括在网络和应用层保护Pod间或服务间通信的能力。
Istio生成以下类型的遥测数据,以提供对整个服务网格的可观察性:
所有这些功能可以更有效地设置、监控和实施服务上的SLO,快速有效地检测和修复问题。
入栈流量,出栈流量,mesh流量都经过sidecar,所有的sidecar都知道整个集群的网络流量是怎么走的,包括延迟错误码,源目标端口 ip这些信息都能够拿到,这样就可以很清晰的抓到当前集群之间服务不同之间的调用关系,流量调用的健康状况,错误码的分布情况,就有一个非常清晰的视图能够看到整个集群的健康状态。
数据平面
控制平面
架构演进
在控制面,将所有的能力,流量管控,安全等等这些能力都放到istiod里面去了,mixer组件是没有了。
入栈的流量进入到proxy里面来,在proxy进入到集群里面来,很多时候是提供gateway网关,网关也是一个envoy的proxy,这个流量进入到集群里面就在proxy里面去跳转。proxy会去将流量劫持掉,然后再发给应用,应用和应用之间的调用都是通过proxy去走的mesh traffic。
最大化透明度
增量
可移植性
策略一致性
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。