相同的neutron命令用于具有代理或Octavia的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
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秒的间隔时间未通过运行状况检查,则会从池中删除服务器。 当服务器恢复并再次开始响应运行状况检查时,它会再次添加到池中。
您可以在端口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
原文:https://www.cnblogs.com/zhongguiyao/p/14006171.html