后院-多云和混合基础架构之上的自动化服务网格



在您自己的群集上测试后院: curl https://getbackyards.sh | sh && backyards install -a --run-demo curl https://getbackyards.sh | sh && backyards install -a --run-demo 。 如果有兴趣,请参阅最新版本详细信息

6月,我们在Istio运营商之上推出了Backyards ,这是一种自动化的“服务网格” 。 它极大地简化了多云和混合基础架构中的服务网格管理。 Backyards已集成到Banzai Cloud上Pipeline容器管理平台中 ,但也可以作为独立产品使用。 当然,与Pipeline集成提供了许多特定的好处(例如管理多个云上的应用程序 ),但是Backyards可以在任何Kubernetes安装中使用。

Backyards公告中,我们讨论了一些主要功能:只需单击几下即可创建服务网格;通过独特的图形表示监视应用程序;以及通过便捷的UI管理Istio功能。 然后,我们提到了该平台能够管理多云和混合部署中的Istio多集群服务网络。

在本文中,我们将仔细研究此功能- 自动多集群服务网格

无论是一个或多个集群,多云还是混合环境,Backyards都使用相同的功能集和便捷的界面。 从一个群集开始非常容易,然后单击几下即可将服务网格扩展到其他群集(多云或混合云)。

动机


混合云和多云系统迅速进入企业的日常生活。 自从Google在今年4月推出Anthos以来,人们的兴趣和决策已大大增加。

我们还注意到,与我们讨论此主题的大多数公司对此兴趣有所增加。 有人更喜欢在自己的数据中心中处理数据,仅在高峰负载时间访问云服务。 其他公司则一直在寻找云提供商的最低价格和最佳交易,仅在价格允许的情况下才增加工作量。 由于监管法规或业务要求,它们都需要一种方便的方法来根据特定客户端的请求在不同的云之间移动,以及在此多云和混合基础架构之上构建几种不同的拓扑

随着对混合和多集群解决方案需求的增长,我们开始思考如何满足客户的需求。

管道用户使用一个或多个云。 这取决于他们需要什么特定功能。 可以区分三个关键功能:


背景知识


从一开始,管道平台就支持不同级别(集群,部署和服务)的不同云提供商的连接。 这一直是我们的优先事项之一。

同时,我们正在积极研究Istio。 最初发布该运营商是为了简化Istio的部署和管理,然后探讨了其多集群功能。 因此, 我们与开源运营商Istio一起创建了Backyards,这是一种用于多云和混合基础架构的自动化产品 ,已集成到Pipeline中。

管道后院


在管道中,您可以安装混合或多集群服务网格并在本地环境中或我们支持的五种云提供商的任何组合中对其进行管理。

群集分组功能(群集组)允许您形成一组群集,前提是您选择一个群集作为主要群集。 然后,您可以将它们与各种功能相关联,例如Multi-cluster DeploymentService Mesh

Multi-cluster Deployment允许您在多个集群上同时部署应用程序。 这里我们关注此功能,而是将其用于轻松地在多个群集上部署应用程序。 在本文中阅读有关它的更多信息。

本文将仔细研究Service Mesh功能。 它将Istio安装在主群集上,并使用Istio运算符自动加入组中的所有群集。 此后,您将获得服务的集群间视图,并且从管理的角度来看,多集群网格实际上与传统的单集群系统没有什么不同。

功能介绍


创建服务网格


让我们从使用轻量级和经CNCF认证的Kubernetes发行版-PKE在AWS上创建集群开始。 然后在此群集上构建服务网格Istio。

创建服务网格时,背景中还会形成一个群集组

几秒钟后,“网格”已安装并可以使用。



应用部署


现在,我们需要一个带有微服务的演示应用程序,以展示我们产品的功能。 为了演示,我们创建了一个非常简单的AllSpark项目,还制作了带有AllSpark部署的初步配置的Helm图,该图模拟了电影院票务预订系统。 一切都在我们针对Helm图的云服务(SaaS)服务中完成

使用上述的Multi-cluster Deployment功能,我们将通过转到用户界面中的“ Multi Cluster Deployments标签来部署此应用程序。 将存储库https://charts.banzaicloud.io/gh/spotguidetest添加到管道中,然后添加meshdemo图并单击DEPLOY (要安装所有组件,请确保所有值都设置为true )。



可以为一个集群选择一个简单的部署,但是我们指出了一个多集群选项,稍后在使用多个集群时会派上用场。

服务网格概述


如果返回服务网格列表并单击observe按钮,将出现控制面板。 由于我们的测试应用程序中没有流量,并且系统中也没有度量标准,因此在这里我们将看不到任何可视化。 该接口具有test flight功能,可将流量引导至选定的端点。 如果单击右上角的HTTP按钮,则可以填写包含有关端点信息的表单,并将一些测试流量发送到您的服务。 在我们的示例中,流量应转到端口8080上的首页服务。

几秒钟后,将显示您的服务时间表。 其上的节点代表服务或工作负载,箭头代表不同服务之间的网络连接。 该图基于Prometheus的Istio指标。



创建其他集群


只需单击几下,即可将服务网格扩展到其他群集(甚至来自多个不同的云提供商)。 让我们在三个不同的提供商处创建三个额外的集群,这更有趣。 我们可以轻松地在Azure中部署另一个PKE群集以及OKE和GKE群集。



服务网格扩展


让我们回到服务网格列表,按一下RESIZE MESH按钮,然后按一下ADD NEW CLUSTER 。 选择先前创建的集群,然后按ADD按钮。 仅此而已。



扩展过程可能需要几分钟:每个群集必须连接并达到HEALTHY状态。

在多个集群中部署应用程序


现在,我们在多个群集上都有一个服务网格,并且先前已激活了Pipeline中的Multi-cluster Deployment功能,因此可以轻松地在这些群集上部署演示微服务。 在此特定的Helm图中,您可以轻松地打开和关闭组件。 由于“ Multi-cluster Deployment功能支持为每个集群重新定义参数,因此您只需要编辑部署并确定我们要在哪个集群中运行的组件。

对于多集群部署,我们通过以下方式更改设置:

PKE AWS

services: true
istioresources: true
frontpage: true
catalog: true
bookings: true

PKE Azure

services: true
moviesv1: true
moviesv2: true
moviesv3: true

OKE

services: true
payments: true
notifications: true

GKE

services: true
analytics: true




跨多个集群的服务网格概述


再次,在界面中选择test flight ,以将其他流量引向先前选择的端点。 几秒钟后,将出现类似于下图的内容。 现在,我们的应用程序分布在四个不同提供商的四个集群中。

太好了吧?



NRA配置


在完成本文之前,请看一下最后的设置: Horizo​​ntal Pod Autoscaler 。 在管道的“ Single-cluster Deployment页面上,您可以轻松地为任何部署配置HPA(在我们的示例中为analytics-v1 )。



当您安装HPA并将足够的流量发送到您的服务以开始自动缩放时,您将看到与analytics-v1项目相对应的界面中出现的吊舱越来越多。 您还将看到沿着图边缘的查询流增加,这反映在边缘的数字和厚度上。



总结


多亏了Pipeline的Backyards,您可以轻松设置混合或多集群服务网格。 然后,您可以使用一个方便的用户界面在多个群集中部署,跟踪,管理和故障排除应用程序。

免费试用

Source: https://habr.com/ru/post/zh-CN479742/


All Articles