写点什么

京东云应用负载均衡(ALB)多功能实操

  • 2019-10-22
  • 本文字数:3736 字

    阅读完需:约 12 分钟

京东云应用负载均衡(ALB)多功能实操

应用负载均衡(Application Load Balancer,简称 ALB)是京东云自主研发的一款七层负载均衡产品,主要面向 HTTP 和 HTTPS 流量的 WEB 应用程序,提供灵活的功能配置。应用负载均衡在请求级别运行,可以为应用层业务提供更加出色的服务。

一、实操说明

自动伸缩功能将搭配京东云弹性伸缩产品与云主机进行实操,然后通过京东云应用型负载均衡(ALB)进行请求的分发;



会话保持/3 种调度策略/健康检查功能将会利用京东云应用型负载均衡支持原生容器的特性进行实操;


二、环境搭建

1. 新建应用负载均衡(ALB)

打开京东云控制台在左侧导航中找到网络-负载均衡,如图在华北-北京新建应用型负载均衡实例



如图,选择应用负载均衡后,点击确定



配置如下:


  • 计费类型:按配置

  • 地域和可用区:华北-北京、可用区选择全部

  • 网络:选择自己创建的私有网络,安全组开放全部端口(主要用于测试,生产环境请按照实际情况开放特定端口)

  • 带宽:1Mbps

  • 名称:alb_test



在负载均衡产品控制台点击上述我们创建的应用型负载均衡实例 alb_test



点击虚拟服务器组-新建虚拟服务器组



分组名称 server_group(暂不添加后端服务器实例)


2. 制作自定义镜像

为方便后续操作,本步骤我们需要有一个安装有 Nginx 服务的 Centos 7.4 的自定义镜像


首先创建云主机(制作完就可以删除了);


制作自定义镜像环境建议配置如下:


  • 计费类型:按配置

  • 地域:华北-北京,可用区随意

  • 镜像:官方-Centos 7.4 64 位

  • 规格:通用 标准型 1 核 4GB

  • 存储:默认

  • 网络:选择自己创建的私有网络,为方便测试,安全组选择默认安全组开放全部端口

  • 带宽:1Mbps

  • 名称:buildimg(自定义)



创建完云主机后,SSH 远程连接,执行如下脚本


安装 Nginx+PHP 服务脚本:


1\wget  -O - https://pocenv-hcc.s3.cn-north-1.jdcloud-oss.com/JDCloud_LNP_test_Marin.Han.sh 
复制代码



脚本执行完成后,我们开始制作镜像,在云主机实例控制台找到我们创建的云主机将其停止



停止成功后,我们点击右侧更多选项,点击制作镜像


信息如下:


  • 名称:LNP_Centos7

  • 描述:包含 Nginx+PHP 的 Centos7.4 64 位镜像


定义镜像创建完成后,我们上面创建的云主机就可以删除了



云主机删除成功后,其绑定的公网 IP 不会被自动删除,我们需要手动删除,在左侧导航网络-私有网络-弹性公网 IP,找到对应的公网 IP 删除


3. 新建弹性伸缩

在京东云控制台找到弹性伸缩产品页面,找到启动配置选项,在华北-北京地域创建启动配置,配置信息如下:


  • 配置名称:JAS_test

  • 地域:华北-北京

  • 镜像类型:私有

  • 私有镜像:选择我们上面创建的私有镜像 LNP_Centos7

  • 规格类型:1 核 4GB

  • 存储:默认

  • 带宽:点击暂不购买



完成启动配置的创建后,左侧点击伸缩组,同样在华北-北京区域创建伸缩组,配置信息如下:


  • 名称:JAS_group

  • 初始实例数:1,在 1-2 个实例之间进行扩展

  • 启动配置:选择上面创建好的启动配置

  • 选择网络:选择你创建的 VPC 网络(选择你上面创建负载均衡所在的 VPC)

  • 安全组:为方便测试,选择默认安全组开放全部端口

  • 支持可用区:选择全部可用区

  • 移出策略:为效果明显,我们选择移出最早创建的云主机(默认移出策略:移出指定数量云主机并让组内剩余云主机在物理位置上尽可能均衡分布。)

  • 负载均衡:从负载均衡接收流量,选择你上面创建的负载均衡 alb_test 和虚拟服务器组 server_group,端口 80



由于我们设置的弹性伸缩初始实例数为 1,所以在保存伸缩配置后会根据启动配置自动生成 1 台云主机(为方便观察效果,这里记录下内网 IP:10.0.0.59)



在伸缩组-伸缩活动中也可以查看到伸缩记录



初始伸缩完成会进行冷却



我们打开上面创建的负载均衡 alb_test,找到虚拟服务器组 server_group,能够看到弹性伸缩自动新建的云主机 10.0.0.34 已与负载均衡自动关联


4. 新建原生容器

这里运用自定义的 DockerHub 公共仓库镜像,我们需要点击控制台左侧弹性计算-原生容器-镜像仓库认证信息-华北-北京-添加镜像仓库认证信息,配置如下:


  • 名称:DockerHub

  • 类型:docker-registry

  • 仓库域名

  • 用户名/密码:不填写(因为是公共仓库,所以可不填写,写了也没用)

  • 邮箱:不填写




点击左侧容器实例,如图在华北-北京新建容器实例



容器①配置:


  • 计费类型:按配置

  • 地域:华北-北京

  • 可用区:默认

  • 镜像:第三方镜像

  • 镜像仓库:DockerHub

  • 镜像名称:marin0224/alb_test:web01

  • 镜像信息(自动生成)

  • 规格:1 核 4GB(默认)

  • 存储:默认

  • 网络:选择自己创建的私有网络(VPC)

  • 带宽:暂不购买

  • 高级设置:运行的命令 /run.sh

  • 名称:alb_test_web01



如上,同样方式创建第二个原生容器


容器②配置:


  • 计费类型:按配置

  • 地域:华北-北京

  • 可用区:默认

  • 镜像:第三方镜像

  • 镜像仓库:DockerHub

  • 镜像名称:marin0224/alb_test:web02

  • 镜像信息(自动生成)

  • 规格:1 核 4GB(默认)

  • 存储:默认

  • 网络:选择自己创建的私有网络(VPC)

  • 带宽:暂不购买

  • 高级设置:运行的命令 /run.sh

  • 名称:alb_test_web02


两个容器创建完成后,如下图:


三、产品测试

1.自动扩缩容

我们在伸缩组中的报警策略页面添加策略,配置如下:


  • 策略名称:policy1

  • 监听该规则:内存使用率-2 分钟内-平均值-<-1%-连续 2 次(此规格镜像默认启动内存使用率大概 4%左右,所以监听规则设置低于 1%是一定会触发报警的。仅供测试)

  • 伸缩规则:增加 1 台云主机,冷却 1 秒


等待伸缩组冷却完成(状态变为正常)后,我们将创建伸缩组触发的云主机(10.0.0.59)停止来模拟故障



等待几分钟,能够再次自动成功弹出 1 台新的云主机(10.0.0.62),且最早创建的云主机(10.0.0.59)也被移除



我们在找到伸缩组 JAS_group,在伸缩活动页面查看伸缩动态,发现由于我们停止云主机导致检测不健康而被移除,并成功创建了新的云主机



成功弹出的云主机(10.0.0.62)会自动与绑定的负载均衡 alb_test 实例关联,并移除原来不健康的云主机(10.0.0.59)实例



当伸缩组冷却结束后,我们在伸缩组的定时任务中定时增加 1 台云主机,定时任务名称为 add_vm(执行时间设置间隔是 5 分钟,由于是测试,选择当前时间之后最近的时间点就行),用来模拟业务量突增


如果在设置的定时任务时间伸缩组在冷却,则定时任务不会触发。



在伸缩活动中查看状态



在云主机控制台能够看到根据定时任务新弹出的云主机(内网 IP10.0.0.4)



并且,在负载均衡的虚拟服务器组中我们可以看到,新弹出的云主机自动与负载均衡关联



在新建的负载均衡实例 alb_test 上添加一个 HTTP 协议的监听器,如下图点击监听器-新建监听器:



前端监听配置:按照默认下一步即可



后端转发配置:新建一个后端服务 backend_test,其他保持默认配置(加权轮询/不开启会话保持),然后点击下一步



健康检查:按照默认,下一步



添加服务器组:服务器组选择我们上面新建的虚拟服务器组 server_group,也就是说弹性伸缩会配合 ALB 实现伸缩功能,点击确定



复制应用负载均衡的公网 IP 到浏览器查看效果,如下图(刚开始 ALB 配置生效中,可能会出现 502 属于正常现象):


2.ALB 的会话保持功能

京东云应用负载均衡(ALB)是支持云主机与原生容器的会话保持功能的,这里我们实操对京东云原生容器的支持。


在负载均衡实例控制台找到我们上面新建的负载均衡实例 alb_test 点进去,在虚拟服务器组里我们编辑上面我们新建的服务组 server_group



我们将原来的 2 台弹性伸缩生成的云主机删除,然后将上面创建的 2 台原生容器加进来,然后点击确定



我们复制负载均衡实例的公网 IP 到浏览器查看结果(刚开始负载均衡配置生效中,可能会报 502,多刷新几遍)


由于我们设置的是加权轮询规则,所以每次刷新浏览器就会在容器①与容器②之间切换



接下来我们到负载均衡的后端服务编辑 backend_test



将如图中的会话保持功能打开



复制负载均衡公网 IP 到浏览器后,不停刷新,发现请求会一直保持分发到某一台后端服务器(我这里是原生容器②)



由于我们上面设置的会话保持超时时间是 30 秒,且转发规则为加权轮询,所以 30 秒过后,重新刷新浏览器后,请求会被分发到原生容器①


3.三种调度策略效果

调度策略一:加权最小连接数


在一个浏览器中(例如谷歌浏览器)打开多个窗口来对负载均衡发起请求,请求指向某一台后端服务器(我这里是原生容器①);


接下来我们到负载均衡的后端服务编辑 backend_test,将如图中的会话保持功能关闭,并将调度算法更改为加权最小连接数;



为效果明显,在另一个浏览器中(例如火狐浏览器)打开一个窗口对负载均衡发起请求,请求会被分发到另一台处理请求数较少的后端服务器(我这里是原生容器②);



调度策略二:加权轮询


我们将调度算法改为加权轮询



在浏览器中输入负载均衡的公网 IP,每刷新一次浏览器,请求就会轮询分发到后端原生容器(处理请求的后端会不停的换)



调度策略三:源 IP


我们将调度策略改为源 IP



我们打开 3 种不同的浏览器(谷歌、火狐、Microsoft Edge)分别访问负载均衡,当第一个浏览器请求被分配到某一台后端机器的时候(我这里是原生容器①),其他的浏览器请求也都会被分配到这台机器


4.健康检查

确保负载均衡的状态检查功能为开启状态(默认情况下为开启),调度算法为加权轮询



我们将负载均衡虚拟服务器组中对应的任意一台原生容器停止,用以模拟服务器故障



现在我访问负载均衡,刷新浏览器,发现即便调度策略为加权轮询,请求也只会分发到原生容器②,因为原生容器①已经被检测异常


打开负载均衡的后端服务详情,我们能看到原生容器①的健康状态为异常



2019-10-22 19:121437

评论

发布
暂无评论
发现更多内容

服务器删除文件后磁盘空间没有立刻释放问题

javaNice

Java Linux

继电器的工作原理与应用案例

华秋电子

继电器

好用的磁盘分析工具 Disk Xray免激活版

mac大玩家j

磁盘管理 Mac软件 磁盘管理软件

双十一剁手节,MobPush助力各大电商平台提前锁定潜力用户

MobTech袤博科技

大数据

华润啤酒走进用友,数智化赋能酒业新世界

用友BIP

Media Encoder 2024 for mac(ame媒体转码器) v24.0.2中文激活版

mac

苹果mac Windows软件 媒体转码软件 Media Encoder 2024 ME2024

Amazon Bedrock 划算吗?Bedrock 大模型服务定价与分析

魏临

超级APP,All in one APP

WorkPlus

SATA硬件驱动器接口的可制造性问题详解

华秋电子

SATA

iPulse 激活版for mac(系统状态监控软件) v3.141

胖墩儿不胖y

Mac软件 系统监控软件

分享一套适合二开的JAVA开源版本MES系统

万界星空科技

生产管理系统 云mes 免费mes 开源mes mes源码

推送效率低?MobPush带着APP消息推送一站式解决方案来了

MobTech袤博科技

大数据

如何构建新一代实时湖仓?袋鼠云基于数据湖的探索升级之路

袋鼠云数栈

数据仓库 数据湖 湖仓一体 大数据仓库 实时湖仓

硬件开发少走弯路,来华秋这场研讨会提升技能

华秋电子

工程师

如何配置支付宝密钥之如何配置证书|保姆级教学(二)

盐焗代码虾

证书 支付宝 经验分享 密钥

iOS应用加固方案解析:ipa加固安全技术全面评测

WorkPlus定制化的沟通协作平台,助您实现企业级完全掌控

WorkPlus

LED显示屏由哪些部件组成

Dylan

系统 LED显示屏 屏幕 电源

盈利能力管理,为企业未来发展创造优势

智达方通

全面预算 盈利能力

万界星空科技生产管理MES系统的数据追溯技术

万界星空科技

mes 云mes 追溯系统 产品追溯 万界星空科技mes

用友BIP,助力轴承行业数智化转型

用友BIP

数智化转型

武创院区块链产业研究所:基于鲲鹏DevKit开发区块链政务服务协同数据治理平台,数据管理更放心

彭飞

WorkPlus安全专属移动数字化航空母舰,助力企业掌控业务和生态

WorkPlus

平安人寿基于 Apache Doris 统一 OLAP 技术栈实践

SelectDB

数据库 大数据 数据仓库 数据分析 apache doris

京东云应用负载均衡(ALB)多功能实操_软件工程_韩超超_InfoQ精选文章