Contents [show]
介绍
以下文章描述了如何使用ZEVENET负载平衡器设置高级负载平衡服务,以实现以下目的的高可用性: Amazon Web Services EC2基础架构。 我们将描述配置一个 ZEVENET集群 并为3个Web后端服务器配置HTTP负载平衡配置文件以实现HTTP服务的负载平衡。
AWS和ZEVENET基础架构
下图描述了我们要在AWS中使用ZEVENET Application Delivery Controller实现Web负载平衡的架构。
需要部署两个ZEVENET Application Delivery Controller,该模板在Amazon Web Services市场中可用,并且每个ZEVENET Application Delivery Controller在与Web后端服务器相同的VPC中进行配置,如上图所示,该子网带有子网。 17.32.16.0./20.
每个ZEVENET ADC实例都配置有一个接口 eth0,并且每个实例都分配给一个 弹性IP,另外一个弹性IP也通过 eth0 ,在 ZLB1产品 实例,该实例将用于负载均衡,如下所述:
ZLB1产品 被分配给 172.31.20.89 在eth0中,该实例将由一个实例直接访问 弹性IP 34.225.30.206
ZLB2产品 被分配给 172.31.26.237 在eth0中,该实例将由一个实例直接访问 弹性IP 54.161.240.226
一个额外的IP被分配给 ZLB1产品 并在负载均衡器中配置名称 eth0:vip1 和IP 172.31.26.47,此IP用于在此处配置一个负载平衡服务,并且是 集群服务,因此该IP一次只能在一个ZEVENET实例中工作,该实例可以管理 ACTIVE 在集群中的角色。 该内部IP被分配给一个弹性IP,客户端可以访问该弹性IP以连接到已发布的实际Web服务。
终于 后端01, 后端02 和 后端03 是带有基于 Linux 的 Web 服务器的 EC2 实例,这些实例是负载均衡服务的一部分,客户端在请求时连接到该服务 http://54.144.190.17/.
在AWS Marketplace中部署两个ZEVENET实例
让我们部署两个 ZEVENET 负载均衡器并按照之前的描述配置它们。
转到EC2实例部分,然后按 启动实例.
1. 搜索所需的ZEVENET负载均衡器企业版AMI。 这个 AMI 基于 BYOL 许可 模型。 评估阶段是免费的,并且在一个月内提供了帮助,在这段时间之后,需要最终许可才能工作。
2. 选择一个 实例类型。 根据您要进行负载平衡的资源在此处选择所需的实例。 一个 t2。小 实例是很好的开始 L4个人资料,但如果您想使用 HTTP配置文件 那么我们建议至少 t2.中 实例。 但是, t2.micro 实例足以进行测试。
3. 配置 实例详细信息. 在这里选择运行新 ZEVENET 实例的 VPC,在这个配置示例中,我们将在与已配置的真实 Web 后端服务器相同的 VPC 中引入 ZEVENET EC2 实例。
4. 添加存储。 默认情况下,ZEVENET EC2实例至少需要12Gb的存储空间,如果您想默认激活日志,那么我们建议将此大小至少增加到20Gb。 ZEVENET不需要访问磁盘,只需保存日志即可,因此 卷类型 一般而言,这是一个不错的选择。
5. 添加标签。 如果需要,在此处配置一些描述标签。
6. 配置 安全组. ZEVENET 默认使用 TCP 端口 444 用于 HTTPS Web GUI 管理目的,9999 用于会话同步守护程序,以及 SSH 中的 TCP 端口 22 用于命令行管理和集群目的。 此外,每个 虚拟端口 要求将在负载平衡器虚拟服务中使用的安全性包括在内。 我们已经配置了一个安全组,该安全组以较少限制的方式用于那些ZEVENET EC2实例,如下所示:
TYPE = All traffic Protocol = ALL Port Range = All Source = 0.0.0.0/0 Description = Allow all from all to all
此安全组是为测试目的而创建的,您可以选择阻止所有端口并仅允许用于负载平衡和管理。
一旦配置助手返回到 EC2 实例列表,新设备将开始部署并且 发起 状态将显示。 然后,现在在字段中配置一个描述性名称 名称,在我们的例子中,我们在EC2中部署的负载均衡器被命名为 ZLB1产品 和 ZLB2产品.
为ZEVENET EC2实例配置网络
ZEVENET虚拟设备部署完成后, 实例状态 正在显示 运行 模式,我们可以继续配置网络。
点击上方的右键 ZLB1产品 电器并选择 联网>管理IP地址在 管理IP地址 弹出窗口按入 分配新的IP 然后按下按钮 是的,更新,系统将为 eth0 在同一VPC中。 记住这个新IP,在我们的示例中,这个新IP将是 172.31.26.47. 系统分配了一个新 IP,将在未来的集群服务中用于负载平衡目的。
前往部分 弹性IP 并为每个ZEVENET实例分配一个新的 弹性IP。 这些将用于管理目的,而不是用于负载平衡。
在相同的 弹性IP 部分,将新IP分配给 ZLB1产品,但在这种情况下,请选择 私人IP 地址 172.31.26.47。 配置完成后 ZLB1产品 可以使用IP通过Web和SSH访问 34.225.30.206,但 ZLB2产品 可通过与IP相同的服务进行访问 54.161.240.226 和 弹性IP 54.144.190.17 分配给IP 172.31.26.47.
使用临时许可证启用ZEVENET EC2实例
一旦配置了弹性IP,就可以按以下方式访问虚拟负载均衡器:
ZLB1-prod将通过https://34.225.30.206:444用户root用户和实例ID的密码访问。
ZLB1-prod将通过IP 34.225.30.226中的ssh通过带有用户admin和私有证书文件的ssh访问,该文件是在EC2部署时配置的。
ZLB2-prod将通过https://54.161.240.226:444用户root用户和实例ID的密码访问。
ZLB2-prod将通过IP 54.161.240.226中的ssh通过带有用户admin和私有证书文件的ssh访问,该文件是在EC2部署时配置的。
如果考虑在继续之前更改主机名,请重新引导EC2实例以应用更改。
成功完成对Web GUI的访问后,您将看到两个重要值,主机名和证书密钥,这两个信息对于每个Load Balancer都是唯一的,并且与激活许可证相关,请按照以下说明在以下URL中使用此信息: https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/
填写表格后,系统会自动将许可证发送到指定的电子邮件。 请通过每个负载均衡器中的Web GUI上传收到的PEM激活许可证,完成后,Web GUI将被解锁并且所有功能均已完全启用并可以运行。
在两个节点ZLB1-prod和ZLB2-prod中执行相同的激活过程。
配置虚拟IP进行负载平衡
在上一点中,我们已经为eth0分配了另一个IP 172.31.26.47 在实例ZLB1-pro中,并且该IP已分配给一个弹性IP 54.144.190.17,现在等待在ZBL1-pro负载均衡器中进行此配置。
使用其Elastic IP通过Web界面转到ZLB1-pro负载均衡器 https://34.225.30.206:444,一旦登录,请进入导航菜单 网络>虚拟接口>创建虚拟接口,并进行以下配置:
Parent Interface = eth0 172.31.26.47
*由于EC2实例对弹性IP一无所知,因此我们需要在此处配置EC2实例的物理IP,该物理IP链接到用于负载均衡目的的公共弹性IP 54.144.190.17
Virtual Interface name = vip1
IP Address = 172.31.26.47
新闻 创建 按钮以应用配置。
现在是新的IP 172.31.26.47 有名字 eth0:vip1 已在ZLB1-pro EC2 ZEVENET负载均衡器中配置,并且可以从此VPC中的任何EC2实例ping通。
在Amazon Web Services中配置ZEVENET Cluster Service
ZEVENET负载均衡器集群适用于 有状态的主动-被动 模式,这意味着在两个节点中都配置了群集资源,但仅在 ACTIVE 节点。 当这样的节点发生故障并且该角色在另一个成员中启动时,需要再次访问集群资源。 由于虚拟 IP 也是集群资源,Amazon Web Service 需要以某种方式宣布为负载均衡配置的虚拟 IP 172.31.26.47 将通过ZLB2-prod工作。
为此,ZEVENET集群服务使用AWS客户端,需要在EC2模块中配置权限来管理Interfaces,所以在启动ZEVENET集群服务之前我们需要做一些准备工作。 所以让我们配置一个 AWS密钥 您的帐户中具有管理EC2中要在AWS命令行界面中使用的IP的权限。
转到Amazon控制台 https://console.aws.amazon.com/iam/ ,然后在导航菜单上选择 用户。 单击按钮 添加用户.
Configure a descriptive User name = aws-for-zlb
In 选择AWS访问类型 选择 程序访问 然后按下按钮 下一页:权限。 现在在 设定权限 按下部分 创建组 然后在新窗口中填写字段 团队名字 例如具有描述性的名称, 亚马逊EC2,最后,在现场 筛选政策 搜索并选择名为的策略 AmazonEC2完全访问 授予在其他EC2实例之间更改分配的IP的权限。
按下 下一页:标签 和 下一篇:复习. 最后按进去 创建用户,最后的窗口将显示 访问密钥ID 和 秘密访问密钥 对于该用户,请保存它们以备将来使用。
现在我们准备配置ZEVENET Cluster服务,因此通过分配的公共IP https://1:34.225.30.206的部分转到ZLB444-pro中的Web面板。 系统>集群 并按照示例填写表格:
AWS凭证: access Key 和 Secret key 是前面几行中已经生成的值。 区域,在这里选择部署 ZEVENET 应用程序交付控制器的区域。
配置集群:
本地IP:选择eth0的IP和NIC。
远程IP:在节点ZLB0-pro中输入eth2的IP。
远程节点密码 和 确认密码:在此处输入另一个节点中ssh的根密码,默认情况下为ZLB2-pro的实例ID。
点击 产生 按钮并同时等待几秒钟,您运行配置的节点将采用 ACTIVE 角色(ZLB1-pro)和其他角色(ZLB2-pro)将承担 被动 作用。
至此,ZEVENET Cluster 已经在 AWS 中配置好,可以开始工作了,让我们来配置我们的第一个集群负载均衡服务。
为Web服务配置简单的L4负载平衡
在MyCAD中点击 软件更新 LSLB>农场>创建农场 具有以下参数。
考虑到使用的虚拟IP 172.31.26.47 是先前配置的虚拟IP,并且群集资源始终可以从 ACTIVE 节点。 按 创建 并继续。
现在在新窗口中配置 全球部分 如下图所示:
最后,配置该部分 服务 如所述:
使用 IP持续存在超时 以防您需要保证60秒的时间,以防万一您需要确保在一定时间内将相同的客户端IP连接到相同的后端。 使用以下命令配置高级运行状况检查 FarmGuardian。 使用 check_tcp 作为一个简单的健康检查来验证 TCP 后端端口 80 在每个后端都打开了。 然后,添加运行真实 Web 服务的后端服务器内部 IP 和端口。
现在测试与 弹性IP http://54.144.190.17/ assigned to the internal IP 172.31.26.47, the connection will pass through the load balancer using the eth0:vip1 并转发到可用的后端之一。
现在是改变 ACTIVE 例如,在群集中扮演角色,则以该角色重新启动节点,几秒钟后,另一个将使用虚拟服务并再次连接到公共IP。 当前和新的客户端连接将针对相同的后端建立,但这一次是通过新的 ACTIVE 没有任何客户端中断的节点。
向负载均衡器添加新接口
出于平衡目的或任何您需要的目的,可以为负载平衡器配置更多接口。 为此,只需按照 AWS 概述的步骤向 EC2 实例添加新接口即可。 请查看 AWS 提供的文章,以更好地了解这方面的最佳实践。 https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html. 在向 EC2 实例添加新接口时,ZEVENET 会自动检测这些新接口,因此您现在可以使用它来根据需要进行配置。
借助ZEVENET在AWS中享受高级负载平衡和集群功能!