负载均衡清单

属性(Properties)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见资源属性 0.6
name 请参见资源属性 0.6
description 请参见资源属性 0.6
state 可用状态,always Enabled 0.6
vipUuid VIP UUID 0.6
listeners 请参见 listeners 0.6

示例

 {
            "description": "",
            "listeners": [
                {
                    "createDate": "Dec 1, 2017 8:24:44 PM",
                    "instancePort": 22,
                    "lastOpDate": "Dec 1, 2017 8:49:24 PM",
                    "loadBalancerPort": 22,
                    "loadBalancerUuid": "8a745a63e9f24e28af2d81e156d070bf",
                    "name": "lb2-listener",
                    "protocol": "tcp",
                    "uuid": "19a454f0c461492b8228b4ebe185d8a4",
                    "vmNicRefs": [
                        {
                            "createDate": "Dec 1, 2017 8:25:05 PM",
                            "id": 1,
                            "lastOpDate": "Dec 1, 2017 8:25:05 PM",
                            "listenerUuid": "19a454f0c461492b8228b4ebe185d8a4",
                            "status": "Active",
                            "vmNicUuid": "e20efc6858ea4988950882934262b6d7"
                        }
                    ]
                }
            ],
            "name": "lb2",
            "state": "Enabled",
            "uuid": "8a745a63e9f24e28af2d81e156d070bf",
            "vipUuid": "81806eb3a0034f529e80034e749b2a8a"
}

监听器(Listener)

  • Listener定义了负载均衡应该如何处理发往VIP的网络包,设定将发往VIP某个端口(loadBalancerPort)的数据包分发到不同的后端云主机的端口(instancePort)。 Listener还定义了一些属性,例如连接超时、健康检查阀值等。
  • 从用户的使用角度来说,Listener就是简单的定义了监听负载均衡IP的某个端口号,以及隐藏在私有网络上后端云主机用于接收的端口号。
  • 负载均衡可以定义很多listeners,每个listener都可以设定不同的端口号。此外,ZStack通过系统标签(System Tags)定义了listener的额外属性:空闲连接超时,最大链接数,健康检查阀值,非健康监控阀值等。

LoadBalancerListener清单(LoadBalancerListener Inventory)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见资源属性 0.6
name 请参见资源属性 0.6
description 请参见资源属性 0.6
loadBalancerUuid load balancer uuid 1 ~ 65336 0.6
loadBalancerPort 前端端口号,数据到达VIP时的端口号 1 ~ 65336 0.6
instancePort 后端端口号,数据分发到云主机的端口号
  • 对于TCP/UDP:0 - 65535
  • 对于ICMP: 请参见 ICMP type and code ,使用‘-1’来表示所有的类型
0.6
protocol 请参见 protocol
  • http
  • tcp
0.6
vmNicRefs 请参见 vmNicRefs 0.6
createDate 请参见资源属性 0.6
lastOpDate 请参见资源属性 0.6

示例

{
            "createDate": "Dec 1, 2017 8:24:44 PM",
            "instancePort": 22,
            "lastOpDate": "Dec 1, 2017 8:49:24 PM",
            "loadBalancerPort": 22,
            "loadBalancerUuid": "8a745a63e9f24e28af2d81e156d070bf",
            "name": "lb2-listener",
            "protocol": "tcp",
            "uuid": "19a454f0c461492b8228b4ebe185d8a4",
            "vmNicRefs": [
                {
                    "createDate": "Dec 1, 2017 8:25:05 PM",
                    "id": 1,
                    "lastOpDate": "Dec 1, 2017 8:25:05 PM",
                    "listenerUuid": "19a454f0c461492b8228b4ebe185d8a4",
                    "status": "Inactive",
                    "vmNicUuid": "e20efc6858ea4988950882934262b6d7"
                }
            ]
}

协议(protocol)

协议定义了负载均衡应该处理的数据包的类型。目前支持两种模式:tcp(网络第四层)和 http(网络第七层)。其中tcp是默认的模式,负载均衡会工作在纯粹的TCP模式,一个双向的链接会建立在客户端和服务器端之间。当设置协议为http时,从客户端到负载均衡,以及负载均衡到服务器端都会建立对应的链接。

后端云主机网卡

用户可以把一个新的云主机添加到负载均衡的队列中来。一旦一个网卡的UUID被添加,就会遵循负载均衡对应的算法在合适的时间被调度。 一块网卡可以添加到不同的负载均衡的不同的listener上。当然不论添加多少listener,该网卡所在的云主机应该配置有处理相应网络请求的能力。

负载均衡listener通过调用 nic reference 来添加对应的云主机:

vmNicRefs 清单(vmNicRefs inventory)

名字 描述 可选的 可选的参数值 起始支持版本
id vmNicRefs的uuid 0.6
listenerUuid listener uuid 0.6
vmNicUuid VM nic uuid 0.6
status 当网卡所在云主机为运行的时候,状态是active,否则是inactive
  • Active
  • Inactive
0.6
createDate 请参见资源属性 0.6

当一个网卡加入了负载均衡listener之后,停止云主机会把vmNicRefs 的状态改成 Inactive;启动云主机后会改变该状态为 Active; 删除云主机会把对应的NIC从listener中移除。