102 : 负载均衡

负载均衡是Flomesh重要和基础的功能之一。我们常把网关比喻成Service Mesh的“骨骼”,那么这个“骨骼”最核心的功能就是:反向代理、负载均衡和条件路由。

这里我们演示配置一个负载均衡:

登录Flomesh

如果没有本地环境,可以登录我们的演示环境,目前我们提供两个演示环境,域名分别是demo.flomesh.cn和demo2.flomesh.cn。实际上这两个都是价格最低的AWS云主机,所以可以承载的同时在线用户不会太多。登录的用户密码都是admin / admin。

选择“区域”

登录后,在页面的上部的"分区/Zone"的菜单,选择某个分区。如果对“分区”概念不清楚,可以参考这里的介绍

我们认为一个“区域”,通常是一个特定的网络环境,可能是物理的,也可能是逻辑的:这个“区域”内的服务提供者,网络是互联联通的,通常他们也共享一个注册中心。如果在一些虚拟机里运行了SpringBoot+Eureka的服务集群,那么这个集群就构成一个“区域”;或者一些服务被部署到了Kubernetes上,比如某个Namespace下,那么这些服务构成一个“区域”。

负载均衡是属于某个“区域”的,如果希望在多个区域的资源上做负载均衡,那么应该在每个区域配置负载均衡;然后在这些区域的负载均衡前边,再用一层负载均衡。当然,这是Flomesh所倡导的部署拓扑,理论上只要网络相通就都是可以在负载均衡的,并没有硬性的要求。

查看负载均衡

从“区域”的列表中选择“Default”。

如果按照手册部署Flomesh,那么默认会创建一个区域,名字叫做Default。在工作里,我们通常留着这个区域,用来做一些基本的测试;对于实际需要使用和部署的网络,再添加其他的“区域”。

创建负载均衡

负载均衡是创建在“服务”之上的。关于“服务”的概念,可以参考这里的介绍

  1. 选择一个项目

  2. 创建一个“服务”,这里我们起名叫做”负载均衡演示“

  3. 选择刚刚创建的服务,然后选择“负载均衡”的标签页,然后选择“创建负载均衡”,如图:

创建负载均衡

发现名称(可选)。这个选项是用来和服务发现关联使用的。每个分区可以配置一个服务发现,比如Spring的服务集群,可以配置一个Eureka的地址。Flomesh会从配置中心把服务信息取出来,然后创建“发现/Discovery”,然后在配置的时候可以直接从列表中选择。这样一方面可以降低大量的手工配置工作,一方面可以动态的跟踪服务的变化。

  1. 选择一个“分区”,这里我们选择“Default”,然后点击“创建负载均衡”按钮

添加”目标“

选择刚刚创建的负载均衡器,然后进入负载均衡器页面。这个页面包括了三个标签页:

  1. 负载均衡Dashboard。这里可以看到当前负载均衡器的实时流量,或者历史数据统计

  2. 目标列表。这里我们采用了AWS习惯的命名,用”目标/Target“来表示实际的后台服务提供者,每个Target都是”IP+端口“的形式

  3. 资源。资源页面是管理员可见的,主要展示了在负载均衡在物理上的部署情况

资源是Flomesh里一个通用概念,多数Flomesh的对象,都有对应的”资源“展示页面

资源是管理员可见的;如果没有看到这个页面,最大可能是当前用户没有权限查看资源信息

点击”添加目标“,然后在弹出窗口中,IP填写54.92.105.113。这个IP是Flomesh的测试站点地址。实际情况中,填写你的就可以了。

添加目标

如果使用了自动服务发现,这里会自动生成目标列表。IP是从注册中心取出来的

添加后的目标信息,会出现在"概要"标签页的右侧

编辑负载均衡策略和参数

在负载均衡的第一个标签页的右侧,有”编辑负载均衡“的链接。点击这里,可以编辑负载均衡的细节:

编辑负载均衡

对于这个演示,所有的选项都使用默认配置就可以了。


负载均衡参数详解:

  • 发现名称(可选)

  • 负载均衡

  • 主动健康检查

  • 被动健康检查