AOS编排语言系列教程(七):创建负载均衡ELB

网友投稿 610 2022-05-29

弹性负载均衡( Elastic Load Balance,简称ELB)将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。

上一章我们学习了如何创建共享云硬盘,我们基于上一个模板加入创建负载均衡ELB的内容。

tosca_definitions_version: huaweicloud_tosca_version_1_0

node_templates:

myecs:

type: HuaweiCloud.ECS.CloudServer

properties:

availabilityZone: cn-south-1a

flavor: c1.medium

imageId: a3934478-bfeb-4a02-b257-9089779f0380

instances: 1

name: my-ecs

nics:

- subnetId:

get_reference: mysubnet

rootVolume:

size: 40

volumeType: SATA

securityGroups:

- id:

get_reference: mysg

vpcId:

get_reference: myvpc

mountedVolumes:

- mountPath: '/dev/sdc'

volumeId:

get_reference: myevs

requirements:

- vpcId:

node: myvpc

- securityGroups.id:

node: mysg

- nics.subnetId:

node: mysubnet

- mountedVolumes.volumeId:

node: myevs

mysg:

type: HuaweiCloud.VPC.SecurityGroup

properties:

name: my-sg

requirements:

- vpcId:

node: myvpc

mysgrule:

type: HuaweiCloud.VPC.SecurityGroupRule

properties:

direction: ingress

ethertype: IPv4

maxPort: 5444

minPort: 5443

protocol: TCP

AOS编排语言系列教程(七):创建负载均衡ELB

securityGroupId:

get_reference: mysg

requirements:

- securityGroupId:

node: mysg

mysubnet:

type: HuaweiCloud.VPC.Subnet

properties:

cidr: '192.168.1.0/24'

dhcpEnable: true

gateway: 192.168.1.1

name: my-subnet

vpcId:

get_reference: myvpc

requirements:

- vpcId:

node: myvpc

myvpc:

type: HuaweiCloud.VPC.VPC

properties:

cidr: '192.168.0.0/16'

name: my-vpc

myevs:

type: HuaweiCloud.EVS.SharedVolume

properties:

size: 10

availabilityZone: cn-south-1a

volumeType: SATA

myelb:

type: HuaweiCloud.ELB.LoadBalancer.External

properties:

name: my-elb

vpcId:

get_reference: myvpc

requirements:

- vpcId:

node: myvpc

myelb-listener:

type: HuaweiCloud.ELB.Listener

properties:

protocol: TCP

name: my-elb-listener

backendPort: 80

backendProtocol: TCP

port: 80

lbAlgorithm: roundrobin

loadBalanceId:

get_reference: myelb

requirements:

- loadBalanceId:

node: myelb

myhealth:

type: HuaweiCloud.ELB.HealthMonitor

properties:

unhealthyThreshold: 3

healthyThreshold: 3

healthCheckInterval: 5

healthCheckConnectPort: 80

healthCheckTimeout: 10

listenerId:

get_reference: myelb-listener

requirements:

- listenerId:

node: myelb-listener

mymember:

type: HuaweiCloud.ELB.Members

properties:

serverIds:

- get_reference: myecs

listenerId:

get_reference: myelb-listener

requirements:

- serverIds:

node: myecs

- listenerId:

node: myelb-listener

首先创建一个elb元素,它是部署华为云PaaS层私网LoadBalancer对象,通过创建LoadBalancer,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到后端的各个容器应用上。参数vpcId是ELB实例所属的VPC,弹性负载均衡需要与后端监听的弹性云服务器处于同一个VPC下。

elb-listener元素是弹性负载均衡下的监听器,一个loadBalancer可对应多个监听器,支持对监听器进行增加、删除。它有几个属性值:

protocol是负载均衡器协议。

name是监听器的名称,设置为my-elb-listener。

backendPort表示云服务器端口,可根据实际情况修改。

backendProtocol是云服务器协议。

port是负载均衡器端口,默认为80,可根据实际情况修改。

lbAlgorithm是监听器负载均衡方式,roundrobin:轮询算法, leastconn:最少连接, source:源IP算法;其中轮询算法支持会话保持功能。

loadBalanceId是所属的负载均衡器ID,将elb-listener与之前创建的elb关联起来。,

然后创建health-monitor元素,它是弹性负载均衡下的健康检查,一个Listener对应一个健康检查,一个健康检查管理多个弹性云服务器,支持对健康检查进行增加删除。

unhealthyThreshold判定健康检查结果为fail的阈值,即健康检查连续失败多少次后,将后端云服务器的健康检查状态由success改为fail。

healthyThreshold判定健康检查结果为success的阈值。

healthCheckInterval是健康检查时间间隔(秒)。

healthCheckConnectPort是健康检查使用端口,可根据实际情况修改,默认为云服务器端口。

healthCheckTimeout是健康检查超时时间(秒)。

listenerId健康检查所属的监听器ID,将health-monitor与elb-listener元素相关联。

member元素是弹性负载均衡下的弹性云服务器,一个Listener可以对应多个弹性云服务器,并且可以对监听器进行增加删除。一个HealthMonitor管理多个云服务器。

serverIds是后端云服务器ID。

listenerId是所属的监听器ID,该参数将member与elb-listener元素相关联。

为确保ELB健康检查正常运行,需要在后端弹性云服务器的安全组中添加入方向规则,允许来自100.125.0.0/16网段HTTP协议的访问,同时需要确保云服务器上80端口可返回200。

部署堆栈时elb参数组中的vpcId及member参数组中的serverId需要根据实际情况填写,未正确填写会导致堆栈部署失败。

弹性负载均衡创建成功:

AOS 华为云

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一文教你了解Linux进程管理
下一篇:Linux环境及开发工具
相关文章