LBaaS v2 配置指南
通过Neutron命令可管理支持代理或Octavia的LBaaS v2实例。
部署负载均衡实例
- 在指定子网创建负载均衡节点。本例使用包含两台Web服务器的私有网络:
$ neutron lb-create --name my-lb internal-network
- 通过以下命令获取负载均衡器状态及IP信息:
$ neutron lb-show my-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 | my-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 |
+---------------------+------------------------------------------------+
- 配置安全策略允许流量访问负载均衡器。通过vip_port_id关联安全组:
$ neutron security-group-create lb-sg
$ 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 \
lb-sg
$ 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 \
lb-sg
$ neutron security-group-rule-create \
--direction ingress \
--protocol icmp \
lb-sg
应用安全组到负载均衡端口:
$ neutron port-update \
--security-group lb-sg \
9f8f8a75-a731-4a34-b622-864907e1d556
此时负载均衡器已就绪,可通过192.168.1.22访问。4. 验证连通性:
$ 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监听器
- 在负载均衡器上添加HTTP协议监听器:
$ neutron listener-create \
--name http-listener \
--lb my-lb \
--protocol HTTP \
--port 80
- 创建后端池并添加服务器节点:
$ neutron pool-create \
--name http-pool \
--algorithm ROUND_ROBIN \
--listener http-listener \
--protocol HTTP
$ neutron member-create \
--subnet internal-network \
--address 192.168.1.16 \
--port 80 \
http-pool
$ neutron member-create \
--subnet internal-network \
--address 192.168.1.17 \
--port 80 \
http-pool
- 验证负载均衡效果:
$ curl 192.168.1.22
web2
$ curl 192.168.1.22
web1
- 添加健康检查机制:
$ neutron health-monitor-create \
--delay 5 \
--retries 2 \
--timeout 10 \
--type HTTP \
--pool http-pool
当检测失败时会自动隔离节点,恢复后重新加入。### 配置HTTPS监听器
- 创建HTTPS协议监听器及对应后端池:
$ neutron listener-create \
--name https-listener \
--lb my-lb \
--protocol HTTPS \
--port 443
$ neutron pool-create \
--name https-pool \
--algorithm LEAST_CONNECTIONS \
--listener https-listener \
--protocol HTTPS
$ neutron member-create \
--subnet internal-network \
--address 192.168.1.16 \
--port 443 \
https-pool
$ neutron member-create \
--subnet internal-network \
--address 192.168.1.17 \
--port 443 \
https-pool
- 为HTTPS池配置健康检查:
$ neutron health-monitor-create \
--delay 5 \
--retries 2 \
--timeout 10 \
--type HTTPS \
--pool https-pool
负载均衡器现已支持80/443端口流量分发。