10.5. 创建 OVN 负载均衡器
您可以使用 Red Hat OpenStack Platform (RHOSP)客户端创建一个管理 RHOSP 部署中网络流量的负载均衡器。RHOSP 负载均衡服务支持使用 Open Virtual Network 机制驱动程序(ML2/OVN)的 neutron Modular Layer 2 插件。
先决条件
必须部署 ML2/OVN 供应商驱动程序。
重要OVN 提供程序仅支持第 4 层 TCP 和 UDP 网络流量和
SOURCE_IP_PORT
负载均衡器算法。OVN 供应商不支持健康监控。- 可以从互联网访问的共享外部(public)子网。
流程
提供您的凭据文件。
示例
$ source ~/overcloudrc
使用
--provider ovn
参数,在专用子网(private_subnet
)上创建一个负载均衡器(lb1
)。注意括号中的值是此流程中的示例命令中使用的示例值。使用适合您的站点的值替换这些示例值。
示例
$ openstack loadbalancer create --name lb1 --provider ovn \ --vip-subnet-id private_subnet --wait
创建一个监听器(
listener1
),它将使用配置自定义应用程序的指定端口(80
)上的协议 (tcp
)。注意OVN 提供程序仅支持第 4 层 TCP 和 UDP 网络流量。
示例
$ openstack loadbalancer listener create --name listener1 \ --protocol tcp --protocol-port 80 lb1
创建侦听器默认池(
pool1
)。注意OVN 唯一支持的负载平衡算法是
SOURCE_IP_PORT
。示例
本例中的命令会创建一个 HTTP 池,它使用专用子网,其中包含在特定 TCP 端口上托管自定义应用程序的后端服务器:
$ openstack loadbalancer pool create --name pool1 --lb-algorithm \ SOURCE_IP_PORT --listener listener1 --protocol tcp
重要OVN 不支持用于负载平衡的运行状况监控器功能。
将专用子网(
private_subnet
)上的后端服务器(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 80 pool1 $ openstack loadbalancer member create --name member2 --subnet-id \ private_subnet --address 192.0.2.11 --protocol-port 80 pool1
验证
查看并验证负载均衡器(
lb1
)设置。示例
$ openstack loadbalancer show lb1
输出示例
+---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | admin_state_up | True | | created_at | 2022-01-15T11:11:09 | | description | | | flavor | | | id | 788fe121-3dec-4e1b-8360-4020642238b0 | | listeners | 09f28053-fde8-4c78-88b9-0f191d84120e | | name | lb1 | | operating_status | ONLINE | | pools | 627842b3-eed8-4f5f-9f4a-01a738e64d6a | | project_id | dda678ca5b1241e7ad7bf7eb211a2fd7 | | provider | ovn | | provisioning_status | ACTIVE | | updated_at | 2022-01-15T11:12:42 | | vip_address | 198.51.100.11 | | vip_network_id | 9bca13be-f18d-49a5-a83d-9d487827fd16 | | vip_port_id | 69a85edd-5b1c-458f-96f2-b4552b15b8e6 | | vip_qos_policy_id | None | | vip_subnet_id | 5bd7334b-49b3-4849-b3a2-b0b83852dba1 | +---------------------+--------------------------------------+
运行
openstack loadbalancer listener show
命令来查看监听程序详细信息。示例
$ openstack loadbalancer listener show listener1
输出示例
+-----------------------------+--------------------------------------+ | Field | Value | +-----------------------------+--------------------------------------+ | admin_state_up | True | | connection_limit | -1 | | created_at | 2022-01-15T11:13:52 | | default_pool_id | a5034e7a-7ddf-416f-9c42-866863def1f2 | | default_tls_container_ref | None | | description | | | id | a101caba-5573-4153-ade9-4ea63153b164 | | insert_headers | None | | l7policies | | | loadbalancers | 653b8d79-e8a4-4ddc-81b4-e3e6b42a2fe3 | | name | listener1 | | operating_status | ONLINE | | project_id | 7982a874623944d2a1b54fac9fe46f0b | | protocol | TCP | | protocol_port | 64015 | | provisioning_status | ACTIVE | | sni_container_refs | [] | | timeout_client_data | 50000 | | timeout_member_connect | 5000 | | timeout_member_data | 50000 | | timeout_tcp_inspect | 0 | | updated_at | 2022-01-15T11:15:17 | | client_ca_tls_container_ref | None | | client_authentication | NONE | | client_crl_container_ref | None | | allowed_cidrs | None | +-----------------------------+--------------------------------------+
运行
openstack loadbalancer pool show
命令,以查看池(pool1
)和 load-balancer 成员。示例
$ openstack loadbalancer pool show pool1
输出示例
+----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | admin_state_up | True | | created_at | 2022-01-15T11:17:34 | | description | | | healthmonitor_id | | | id | a5034e7a-7ddf-416f-9c42-866863def1f2 | | lb_algorithm | SOURCE_IP_PORT | | listeners | a101caba-5573-4153-ade9-4ea63153b164 | | loadbalancers | 653b8d79-e8a4-4ddc-81b4-e3e6b42a2fe3 | | members | 90d69170-2f73-4bfd-ad31-896191088f59 | | name | pool1 | | operating_status | ONLINE | | project_id | 7982a874623944d2a1b54fac9fe46f0b | | protocol | TCP | | provisioning_status | ACTIVE | | session_persistence | None | | updated_at | 2022-01-15T11:18:59 | | tls_container_ref | None | | ca_tls_container_ref | None | | crl_container_ref | None | | tls_enabled | False | +----------------------+--------------------------------------+
其他资源
- 命令行界面参考中的 LoadBalancer