全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
753 0
2020-10-19
服务网格网络对于扩展企业AI解决方案的重要性
服务网状网络的背景和起源– Istio
在企业AI架构,Kubernetes是一个优选的可供选择容器配器和自动化计算机应用程序部署,缩放,和管理。        
Kubernetes和Istio通过分隔来创建平滑的交通流分离体验,
与业务相关的流量通过数据平面和
消息流以及Istio组件之间的交互以控制网格行为。
Istio是一项开放源代码的网格服务,由Google,IBM和Lyft共同协作创建。  
一个服务网是一个共享的组名称和标识,允许共同策略执行和遥测集合,其中服务名称和工作量校长仍然是独一无二的。它是相互连接的服务相互交互的抽象,以减少在分布式环境中管理应用程序的连接性,安全性和可观察性的复杂性。  
Istio, 在 “服务网” 是为了连接应用程序组件,从而提振Kubernetes集群协调器的能力,通过管理流行的微服务。它通过将自身透明地分层放置在现有分布式基础架构上,并允许开发人员在云本机应用程序中添加,更改和路由它们,从而简化了微服务的企业部署,因而广为人知。
在此博客中,我们描述了Istio在企业级API解决方案管理中的重要性。Istio的流量管理和遥测功能可帮助在群集中部署,服务和监视ML模型。
Istio的详细工作组件不在本博客的讨论范围之内,但是可以参考“参考”部分中提到的链接。  
动机–为什么选择Istio
资源
当将ML模型与实时交通一起部署到生产中时,就会出现ML模型的真正挑战。当微服务的主机需要的情况变得更加危急管理,监控和更新与新ML车型越来越出版和他们的最终用户的API接口得到释放。      
Istio以提供完整的解决方案而闻名,它对“网格”内的连接服务具有洞察力和对操作的控制。Istio的一些核心功能包括:
  HTTP,gRPC,TCP连接上的负载平衡。
具有路由,重试和故障转移功能的流量管理控制。
甲监视基础设施,其包括度量,跟踪,和可观察部件  
端到端TLS安全性 –通过加密服务之间以及服务与最终用户之间通信的数据流来保护通信。
二进制过程并用不同的语言编写。
当分布式微服务可能导致级联故障时,管理 超时和通信 故障。
当微服务由多种功能或用户操作触发时,同时更新容器。
服务网格有助于实现现代化,使组织无需重写应用程序,采用微服务或新语言或迁移到云即可升级其服务清单。
API网关:无需启动和运行Kubernetes应用程序,即可使用服务网格– Istio来衡量API使用情况。
建筑
Istio的不同架构组件如下图所示,其中3个不同的平面,即数据平面,控制平面和管理平面提供了策略驱动的路由请求以及分布式集群的配置管理。  
                                                                   资源
企业AI微服务
企业AI系统中的任何预测系统都是从数据预处理,建模和数据后处理开始的一系列微服务组成的。这种体系结构需要单独的微服务部署和流量路由。这就是Istio在Kubernetes上的位置,以提供这些功能。
资源
Istio配置和部署
来自下载的Istio软件包目录的自定义资源定义(CRD):
kubectl应用-f install / kubernetes / helm / istio / templates / crds.yaml
从打包的“多合一”清单中将Istio操作员资源部署到群集:
kubectl应用-f install / kubernetes / istio-demo.yaml
部署后,我们应该在istio-system 名称空间中看到以下服务列表 :
图片发布
所有吊舱均应处于 状态,并且上述服务可用。下面的命令显示启用向 名称空间进行边车注入的机制 : Running default
kubectl标签名称空间默认istio-injection = enabled --overwrite
Istio体系结构和流量管理
Istio提供简单的规则和流量路由配置,以设置服务级别的属性,例如断路器,超时和重试,以及部署级别的任务,例如A / B测试,canary部署和分段部署。
Istio交通管理中最重要的组件是 Pilot 和 Envoy。试点是中央运营者是管理服务发现和智能流量路由之间的所有服务。它将转换规则应用于高级路由,并将其传播到必要的Envoy副车代理。         
该Istio数据平面组成的特使三轮代理在运行相同的网络空间为每个服务控制所有网络通信服务之间,以及混频器,提供可扩展的政策评估与服务。            
所述 Istio控制平面 负责的API用于配置所述代理和混频器作为部分数据平面。控制平面的关键组件是飞行员,城堡,混音器和厨房。         
下图说明了一个典型的Istio体系结构,该体系结构描述了用于实现服务
网格参考体系结构的Istio组件。
资源
图片发布 资源
特使是一个高性能的代理负责控制所有的i N键合和出站流量在服务网格,它被部署为一个侧面汽车集装箱所有Kubernetes吊舱的内网。Envoy的一些内置功能包括:         
服务发现
负载均衡
HTTP和gRPC代理
分阶段推出,按百分比分配流量
丰富的指标
TLS终端,断路器,故障注入等等!
Istio进出口
Istio去夫妻交通管理从基础设施与简单的规则配置,以管理和控制的流量的交通服务之间。              
图片发布 资源
为了使流量流入和流出我们的“网格”,必须正确设置以下Istio配置资源
Gateway:负载均衡器在“网格”的边缘运行,处理传入或传出的HTTP / TCP连接。
VirtualService:用于在“网格”内管理Kubernetes服务之间的流量路由的配置。
DestinationRule:用于路由后服务的策略定义。
ServiceEntry:内部服务配置的附加条目;可以为内部或外部端点指定。
配置出口
默认情况下,启用Istio的应用程序无法访问群集外部的URL。由于我们将使用S3存储桶托管我们的ML模型,因此我们需要设置 ServiceEntry, 以允许从Tensorflow服务部署到S3端点的出站流量。
创建 ServiceEntry 规则以允许到已定义端口上的S3端点的出站流量:
kubectl apply -f algorithm-selector_egress.yaml服务条目“ featurestore-s3”已创建(元数据在yaml文件中指定)
配置入口
为了允许传入的流量进入我们的“网格”,我们需要 设置一个入口 Gateway。我们的 Gateway 那将通过暴露端口31400 以接收流量来充当负载平衡代理 :
通过指定标签选择器来使用Istio默认控制器, istio=ingressgateway 以便我们的入口网关Pod将成为接收此网关配置并最终公开端口的端口。
创建 Gateway 我们上面定义的资源:
kubectl apply -f algorithm-selector_gateway.yamlgateway创建的“算法选择器网关”
金丝雀路由
通过新的模型部署,使用Istio可以轻松地将其逐步推广到一部分用户。这可以通过更新 VirtualService 以将少量流量路由到 v2 子集来完成。Istio允许更新  VirtualService 以将传入请求的30%路由到 v2 模型部署:
kubectl replace -f algo-selector_v2_canary.yaml将虚拟服务和destinationrule替换为“微服务名称”。
Istio进一步支持仪表板进行负载测试,并观察Istio Mesh仪表板在两个版本的algo-selector-serving 工作负载中的延迟指标 。
图片发布 资源
按目的地的请求显示了相似的模式,流量在"microservice-v1" 和 algo-selector "microservice-v2" 部署之间分配 。
图片发布 资源
V2路由
一旦Canary版本满足模型行为和性能阈值,就可以将部署提升为所有用户的GA。下面 VirtualService 和 DestinationRule 被配置为路由流量的100%,以 v2 我们的模型部署。
图片发布 资源
物联网企业AI解决方案
以下架构演示了基于Iot的分布式AI解决方案,其中包含大量微服务,其中Istio由于以下原因起着至关重要的作用。
推出新的微服务是便于安装或拆卸的物联网设备和应用程序。      
由于维修,推出新功能或物联网设备重新校准而更新微服务。
确保物联网数据的隐私性和机密性   

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群