8.2. 创建使用浮动 IP 的 HTTP 负载均衡器
要管理非安全 HTTP 应用程序的网络流量,请使用依赖于浮动 IP 的虚拟 IP (VIP)创建一个负载均衡器。使用浮动 IP 的优点是,您可以保留对分配的 IP 的控制,如果您需要移动、销毁或重新创建负载均衡器,这是必需的。最好还要创建一个运行状况监视器,以确保您的后端成员仍然可用。
浮动 IP 无法使用 IPv6 网络。
先决条件
- 包含在 TCP 端口 80 上托管非安全 HTTP 应用程序的后端服务器。
-
后端服务器配置有 URL 路径
/
的健康检查。 - 用于负载均衡器 VIP 的浮动 IP。
- 可以从互联网访问的 Red Hat OpenStack Platform Networking 服务(neutron)共享外部(public)子网,以用于浮动 IP。
流程
提供您的凭据文件。
示例
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在专用子网(
private_subnet
)上创建负载平衡器(lb1
)。注意括号中的值是此流程中的示例命令中使用的示例值。将这些示例值替换为适合您的站点的值。
示例
openstack loadbalancer create --name lb1 --vip-subnet-id private_subnet
$ openstack loadbalancer create --name lb1 --vip-subnet-id private_subnet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
请注意
load_balancer_vip_port_id
的值,因为您必须在后续步骤中提供它。 验证负载平衡器的状态。
示例
openstack loadbalancer show lb1
$ openstack loadbalancer show lb1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在进入下一步之前,请确保
provisioning_status
为ACTIVE
。 在端口 (
80
) 上创建一个监听器 (listener1
)。示例
openstack loadbalancer listener create --name listener1 --protocol HTTP --protocol-port 80 lb1
$ openstack loadbalancer listener create --name listener1 --protocol HTTP --protocol-port 80 lb1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建侦听器默认池(
pool1
)。示例
openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP
$ openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在池(
pool1
)上创建运行状况监视器,以连接到后端服务器并测试路径(/
)。示例
openstack loadbalancer healthmonitor create --delay 15 --max-retries 4 --timeout 10 --type HTTP --url-path / pool1
$ openstack loadbalancer healthmonitor create --delay 15 --max-retries 4 --timeout 10 --type HTTP --url-path / pool1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将专用子网上的负载均衡器成员(
192.0.2.10
和192.0.2.11
)添加到默认池。示例
openstack loadbalancer member create --subnet-id private_subnet --address 192.0.2.10 --protocol-port 80 pool1 openstack loadbalancer member create --subnet-id private_subnet --address 192.0.2.11 --protocol-port 80 pool1
$ openstack loadbalancer member create --subnet-id private_subnet --address 192.0.2.10 --protocol-port 80 pool1 $ openstack loadbalancer member create --subnet-id private_subnet --address 192.0.2.11 --protocol-port 80 pool1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在共享外部子网(
公共
)上创建一个浮动 IP 地址。示例
openstack floating ip create public
$ openstack floating ip create public
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
注意
floating_ip_address
的值,因为您必须在后续步骤中提供它。 将此浮动 IP (
203.0.113.0
)与负载均衡器vip_port_id
(69a85edd-5b1c-458f-96f2-b4552b15b8e6)
关联。示例
openstack floating ip set --port 69a85edd-5b1c-458f-96f2-b4552b15b8e6 203.0.113.0
$ openstack floating ip set --port 69a85edd-5b1c-458f-96f2-b4552b15b8e6 203.0.113.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
使用浮动 IP (
203.0.113.0
)验证跨负载均衡器的 HTTP 流量流。示例
curl -v http://203.0.113.0 --insecure
$ curl -v http://203.0.113.0 --insecure
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当健康监控器存在并正常运行时,您可以检查每个成员的状态。
一个工作成员 (
b85c807e-4d7c-4cbd-b725-5e8afddf80d2
) 的operating_status
有一个ONLINE
值。示例
openstack loadbalancer member show pool1 b85c807e-4d7c-4cbd-b725-5e8afddf80d2
$ openstack loadbalancer member show pool1 b85c807e-4d7c-4cbd-b725-5e8afddf80d2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow