LBaaS v2 操作

 

 

相同的neutron命令用于具有代理或Octavia的LBaaS v2。

建立一个LBaaS v2 负载均衡器

1.首先在网络上创建负载均衡器。 在此示例中,专用网络是具有两个Web服务器实例的隔离网络:

 

$ neutron lbaas-loadbalancer-create --name test-lb private-subnet

 

2.您可以使用neutron lbaas-loadbalancer-show命令查看负载均衡器状态和IP地址:

$ neutron lbaas-loadbalancer-show test-lb
+---------------------+------------------------------------------------+
| Field               | Value                                          |
+---------------------+------------------------------------------------+
| admin_state_up      | True                                           |
| description         |                                                |
| id                  | 7780f9dd-e5dd-43a9-af81-0d2d1bd9c386           |
| listeners           | {"id": "23442d6a-4d82-40ee-8d08-243750dbc191"} |
|                     | {"id": "7e0d084d-6d67-47e6-9f77-0115e6cf9ba8"} |
| name                | test-lb                                        |
| operating_status    | ONLINE                                         |
| provider            | haproxy                                        |
| provisioning_status | ACTIVE                                         |
| tenant_id           | fbfce4cb346c4f9097a977c54904cafd               |
| vip_address         | 192.168.1.22                                   |
| vip_port_id         | 9f8f8a75-a731-4a34-b622-864907e1d556           |
| vip_subnet_id       | f1e7827d-1bfe-40b6-b8f0-2d9fd946f59b           |
+---------------------+------------------------------------------------+

 

 

3.更新安全组以允许流量到达新的负载平衡器。 创建新的安全组以及入口规则,以允许流量进入新的负载平衡器。 负载平衡器的neutron端口在上面显示为vip_port_id。
创建安全组和规则以允许TCP端口80,TCP端口443和所有ICMP流量:

 

$ neutron security-group-create lbaas
$ neutron security-group-rule-create \
  --direction ingress \
  --protocol tcp \
  --port-range-min 80 \
  --port-range-max 80 \
  --remote-ip-prefix 0.0.0.0/0 \
  lbaas
$ neutron security-group-rule-create \
  --direction ingress \
  --protocol tcp \
  --port-range-min 443 \
  --port-range-max 443 \
  --remote-ip-prefix 0.0.0.0/0 \
  lbaas
$ neutron security-group-rule-create \
  --direction ingress \
  --protocol icmp \
  lbaas

 

使用neutron lbaas-loadbalancer-show命令的vip_port_id将安全组应用于负载均衡器的网络端口:

$ neutron port-update \
  --security-group lbaas \
  9f8f8a75-a731-4a34-b622-864907e1d556

 

此负载平衡器处于活动状态,随时可以在192.168.1.22上提供流量。
4.在进一步移动之前,请验证负载平衡器是否响应ping:

$ ping -c 4 192.168.1.22
PING 192.168.1.22 (192.168.1.22) 56(84) bytes of data.
64 bytes from 192.168.1.22: icmp_seq=1 ttl=62 time=0.410 ms
64 bytes from 192.168.1.22: icmp_seq=2 ttl=62 time=0.407 ms
64 bytes from 192.168.1.22: icmp_seq=3 ttl=62 time=0.396 ms
64 bytes from 192.168.1.22: icmp_seq=4 ttl=62 time=0.397 ms

--- 192.168.1.22 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.396/0.402/0.410/0.020 ms

 

添加一个http侦听器

1.在负载平衡器联机的情况下,您可以为端口80上的明文HTTP流量添加侦听器:

 

$ neutron lbaas-listener-create \
  --name test-lb-http \
  --loadbalancer test-lb \
  --protocol HTTP \
  --protocol-port 80

 

2.您可以开始构建池,并向池中添加成员以在端口80上提供HTTP内容。对于此示例,Web服务器为192.168.1.16和192.168.1.17:

 

$ neutron lbaas-pool-create \
  --name test-lb-pool-http \
  --lb-algorithm ROUND_ROBIN \
  --listener test-lb-http \
  --protocol HTTP
$ neutron lbaas-member-create \
  --subnet private-subnet \
  --address 192.168.1.16 \
  --protocol-port 80 \
  test-lb-pool-http
$ neutron lbaas-member-create \
  --subnet private-subnet \
  --address 192.168.1.17 \
  --protocol-port 80 \
  test-lb-pool-http

 

 

3.您可以使用curl验证通过负载平衡器到您的Web服务器的连接:

 

$ curl 192.168.1.22
web2
$ curl 192.168.1.22
web1
$ curl 192.168.1.22
web2
$ curl 192.168.1.22
web1

 

 

在此示例中,负载平衡器使用轮转算法和后端的Web服务器之间的流量交替。
4.您可以添加运行状况监视器,以便从池中除去无响应的服务器:

 

$ neutron lbaas-healthmonitor-create \
  --delay 5 \
  --max-retries 2 \
  --timeout 10 \
  --type HTTP \
  --pool test-lb-pool-http

 

在此示例中,如果运行状况监视器以两个5秒的间隔时间未通过运行状况检查,则会从池中删除服务器。 当服务器恢复并再次开始响应运行状况检查时,它会再次添加到池中。

添加一个https侦听器

您可以在端口443上为HTTPS通信添加另一个侦听器。 LBaaS v2在负载均衡器上提供SSL / TLS终止,但此示例采用更简单的方法,并允许加密连接在每个成员服务器上终止。
1.首先创建侦听器,附加池,然后添加成员:

 

$ neutron lbaas-listener-create \
  --name test-lb-https \
  --loadbalancer test-lb \
  --protocol HTTPS \
  --protocol-port 443
$ neutron lbaas-pool-create \
  --name test-lb-pool-https \
  --lb-algorithm LEAST_CONNECTIONS \
  --listener test-lb-https \
  --protocol HTTPS
$ neutron lbaas-member-create \
  --subnet private-subnet \
  --address 192.168.1.16 \
  --protocol-port 443 \
  test-lb-pool-https
$ neutron lbaas-member-create \
  --subnet private-subnet \
  --address 192.168.1.17 \
  --protocol-port 443 \
  test-lb-pool-https

 

2.你也可以为https池添加一个健康监视器

 

$ neutron lbaas-healthmonitor-create \
  --delay 5 \
  --max-retries 2 \
  --timeout 10 \
  --type HTTPS \
  --pool test-lb-pool-https

负载均衡器现在控制着80和443端口的流量。

 

 

转自:https://blog.csdn.net/fyggzb/article/details/53924976

 

posted @ 2020-11-19 16:07  钟桂耀  阅读(338)  评论(0编辑  收藏  举报