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

举报
tsjsdbd 发表于 2018/10/26 11:30:03 2018/10/26
【摘要】 弹性负载均衡( Elastic Load Balance,简称ELB)将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。上一章我们学习了如何创建共享云硬盘,我们基于上一个模板加入创建负载均衡ELB的内容。

弹性负载均衡( 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
      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,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到后端的各个容器应用上。参数vpcIdELB实例所属的VPC,弹性负载均衡需要与后端监听的弹性云服务器处于同一个VPC下。

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

  1.   protocol是负载均衡器协议。

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

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

  4.   backendProtocol是云服务器协议。

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

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

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

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

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

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

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

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

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

  6.   listenerId健康检查所属的监听器ID,将health-monitorelb-listener元素相关联。

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

  1.   serverIds是后端云服务器ID

  2.   listenerId是所属的监听器ID,该参数将memberelb-listener元素相关联。

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

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

弹性负载均衡创建成功:

7弹性负载均衡创建成功.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。