10.3. 使用运行状况监控器创建 SCTP 负载均衡器
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
当您需要管理流控制传输协议(SCTP)端口上的网络流量时,您可以创建一个负载均衡器。最好还要创建一个运行状况监视器,以确保您的后端成员仍然可用。
SCTP 运行状况监视器将 INIT 数据包发送到后端服务器端口。如果应用程序正在侦听这个端口,操作系统会使用 INIT ACK 数据包进行回复。但是,如果端口关闭,它将通过 ABORT 数据包进行回复。如果运行状况监视器收到 INIT ACK 数据包,它会立即关闭与 ABORT 数据包的连接,并且表示服务器为 ONLINE。
先决条件
- 包含托管一个或多个应用程序以使用 SCTP 端口的后端服务器的专用子网。
- 可以从互联网访问的共享外部(public)子网。
流程
提供您的凭据文件。
- 示例
source ~/overcloudrc
$ source ~/overcloudrcCopy 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 --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证负载平衡器的状态。
- 示例
openstack loadbalancer show lb1
$ openstack loadbalancer show lb1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
在继续下一步之前,请确保
provisioning_status为ACTIVE。 在端口 (
1234) 上创建一个监听器(listener1)。- 示例
openstack loadbalancer listener create --name listener1 \ --protocol SCTP --protocol-port 1234 lb1 --wait
$ openstack loadbalancer listener create --name listener1 \ --protocol SCTP --protocol-port 1234 lb1 --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建侦听器默认池(
pool1)。- 示例
openstack loadbalancer pool create --name pool1 \ --lb-algorithm ROUND_ROBIN --listener listener1 --protocol SCTP --wait
$ openstack loadbalancer pool create --name pool1 \ --lb-algorithm ROUND_ROBIN --listener listener1 --protocol SCTP --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在池(
pool1)上创建运行状况监控器,它使用 SCTP (SCTP)连接到后端服务器。- 示例
openstack loadbalancer healthmonitor create --delay 5 \ --max-retries 2 --timeout 3 --type SCTP pool1 --wait
$ openstack loadbalancer healthmonitor create --delay 5 \ --max-retries 2 --timeout 3 --type SCTP pool1 --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在专用子网(
private_subnet)上添加负载均衡器成员(192.0.2.10和192.0.2.11)到默认的池。- 示例
openstack loadbalancer member create --subnet-id private_subnet \ --address 192.0.2.10 --protocol-port 1234 pool1 --wait openstack loadbalancer member create --subnet-id private_subnet \ --address 192.0.2.11 --protocol-port 1234 pool1 --wait
$ openstack loadbalancer member create --subnet-id private_subnet \ --address 192.0.2.10 --protocol-port 1234 pool1 --wait $ openstack loadbalancer member create --subnet-id private_subnet \ --address 192.0.2.11 --protocol-port 1234 pool1 --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
查看并验证负载均衡器(
lb1)设置。- 示例
openstack loadbalancer show lb1
$ openstack loadbalancer show lb1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
当健康监控器存在并正常运行时,您可以检查每个成员的状态。使用以下命令获取成员 ID:
- 示例
openstack loadbalancer member list pool1
$ openstack loadbalancer member list pool1Copy 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-5e8afddf80d2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow