10.2. 使用健康监控器创建 UDP 负载均衡器
当您需要管理 UDP 端口上的网络流量时,您可以创建负载均衡器。最佳实践是创建运行状况监视器,以确保您的后端成员保持可用。
先决条件
- 您可以从互联网访问的共享外部(公共)子网。
- 没有安全规则阻止 ICMP Destination Unreachable 消息(ICMP 类型 3)。
流程
提供您的凭据文件。
示例
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 --wait
$ openstack loadbalancer create --name lb1 \ --vip-subnet-id private_subnet --wait
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在端口 (
1234
) 上创建一个监听器(listener1
)。示例
openstack loadbalancer listener create --name listener1 \ --protocol UDP --protocol-port 1234 lb1
$ openstack loadbalancer listener create --name listener1 \ --protocol UDP --protocol-port 1234 lb1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建侦听器默认池(
池1
)。示例
本例中的命令会创建一个使用专用子网的池,其中包含托管一个或多个配置为使用 UDP 端口的后端服务器:
openstack loadbalancer pool create --name pool1 \ --lb-algorithm ROUND_ROBIN --listener listener1 --protocol UDP
$ openstack loadbalancer pool create --name pool1 \ --lb-algorithm ROUND_ROBIN --listener listener1 --protocol UDP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在池(
pool1
)上创建一个运行状况监视器(healthmon1
),使用 UDP (UDP-CONNECT
)连接到后端服务器。建议使用健康检查,但不是必需的。如果没有定义运行状况监控器,则假定成员服务器为
ONLINE
。示例
openstack loadbalancer healthmonitor create --name healthmon1 \ --delay 5 --max-retries 2 --timeout 3 --type UDP-CONNECT pool1
$ openstack loadbalancer healthmonitor create --name healthmon1 \ --delay 5 --max-retries 2 --timeout 3 --type UDP-CONNECT pool1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将专用子网上的后端服务器(
192.0.2.10
和192.0.2.11)
添加到默认池。示例
在本例中,后端服务器
192.0.2.10
和192.0.2.11
分别命名为member1
和member2
:openstack loadbalancer member create --name member1 --subnet-id \ private_subnet --address 192.0.2.10 --protocol-port 1234 pool1 openstack loadbalancer member create --name member2 --subnet-id \ private_subnet --address 192.0.2.11 --protocol-port 1234 pool1
$ openstack loadbalancer member create --name member1 --subnet-id \ private_subnet --address 192.0.2.10 --protocol-port 1234 pool1 $ openstack loadbalancer member create --name member2 --subnet-id \ private_subnet --address 192.0.2.11 --protocol-port 1234 pool1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
查看并验证负载均衡器(
lb1
)设置。示例
openstack loadbalancer show lb1
$ openstack loadbalancer show lb1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当健康检查存在且正常工作时,您可以检查每个成员的状态。
示例
openstack loadbalancer member show pool1 member1
$ openstack loadbalancer member show pool1 member1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 工作成员(
member1)
具有其operating_status
的ONLINE
值。输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow