第 12 章 创建可用区以便在边缘进行网络流量负载均衡
您可以在可用区(AZ)中创建负载均衡器,以提高流量吞吐量、缩短延迟和增强安全性,方法是使用 OpenShift (RHOSO)负载均衡服务(octavia)上的 Red Hat OpenStack Services。
RHOSO 管理员创建 AZ 配置集,并使用配置集创建实际的 AZ。RHOSO 用户可以在各种项目中的这些 AZ 中创建负载平衡器。
本节中包含的主题有:
12.1. 为负载均衡服务(amphora 提供商)创建可用区 复制链接链接已复制到粘贴板!
使用 OpenShift 上的 Red Hat OpenStack Services (RHOSO)负载均衡服务(octavia),RHOSO 管理员可以创建负载平衡可用区(AZ),使项目用户可以创建负载均衡器来提高流量吞吐量并缩短延迟。负载平衡 AZ 的常见用例包括分布式计算节点(DCN)和边缘环境。
创建负载平衡服务 AZ 需要两个步骤:RHOSO 管理员必须首先创建一个负载均衡器 AZ 配置集,然后使用配置集创建一个对用户可见的负载均衡服务 AZ。
先决条件
-
在工作站上安装了
oc命令行工具。 -
以具有
cluster-admin权限的用户身份登录到可访问 RHOSO 控制平面的工作站。 使用 AZ 创建的负载均衡器必须使用 amphora 负载均衡供应商。
OVN 负载平衡提供程序使用另一种机制来支持 OVN 原生的可用区。
-
您必须有一个 DCN 环境,其中通过运行
octavia-dcn-deployment.yamlAnsible playbook 创建所需的网络资源。
- 您可以访问 Compute 服务(nova) AZ。
您的站点有权访问管理网络。您有两个选项:
- "扩展"第 2 层负载均衡管理网络。
- 要隔离网络的分布式 Compute 节点(DCN)环境。
流程
从您的工作站访问 OpenStackClient pod 的远程 shell:
$ oc rsh -n openstack openstackclient收集用于负载平衡服务 AZ 的 Compute 服务 AZ 的名称。
提示命名负载平衡服务 AZ,以匹配计算服务 AZ 的名称,从而促进 AZ 管理。
$ openstack availability zone list --compute- 输出示例
+-----------+-------------+ | Zone Name | Zone Status | +-----------+-------------+ | az0 | available | | az1 | available | | az2 | available | | internal | available | +-----------+-------------+
为用于创建负载均衡服务 AZ 的管理网络收集 ID:
$ openstack network list -c Name -c ID- 输出示例
+--------------------------------------+----------------------+ | ID | Name | +--------------------------------------+----------------------+ | 0947ddcf-d9be-4b8c-94a1-be3852e5d905 | dcn2-public | | 4f35cb1c-69d7-4582-b3a5-0cf380c56f62 | dcn1-public | | 55e761de-ef4c-4a5c-8198-89d20a06eca3 | lb-mgmt-az2-net | | a1894c48-823c-4def-bb6f-e9b7ec4d0c0a | public | | bf72ef9b-e0f1-4d4e-a8b5-7f5bb036a275 | lb-mgmt-az1-net | | ff8f3153-a74b-499c-a850-947ad199fc6d | octavia-provider-net | +--------------------------------------+----------------------+注意确保您知道哪些网络对为您的站点创建 VIP 有效。
创建 AZ 配置集:
$ openstack loadbalancer availabilityzoneprofile create \ --name <AZ_profile_name> --provider amphora --availability-zone-data \ '{"compute_zone": "<compute_AZ_name>","management_network": \ "<lb_mgmt_AZ_net_UUID>", "valid_vip_networks": ["<valid_AZ_VIP_net_UUID>"]}'-
将
<AZ_profile_name> 替换为您要创建的 AZ 配置集的名称。 -
将
<compute_AZ_name> 替换为您要创建 AZ 配置集的 Compute AZ 的名称。 - 将<lb_mgmt_AZ_net_UUID> 替换为要创建的 AZ 的管理网络的 ID。
(可选)将
<valid_AZ_VIP_net_UUID> 替换为允许 VIP 使用的网络 ID。如果要限制此 AZ 中的 VIP 可用的网络,请使用valid_vip_networks。- 示例 - 为
az0创建配置集 在本例中,会创建一个 AZ 配置文件(
),它在计算 AZ (az0)上运行的 Compute 节点上使用管理网络(az0_profilelb-mgmt-net):$ openstack loadbalancer availabilityzoneprofile create \ --name az0_profile --provider amphora --availability-zone-data \ '{"compute_zone": "az0","management_network": \ "662a94f5-51eb-4a4c-86c4-52dcbf471ef9"}'
- 示例 - 为
-
将
重复步骤 4,为您要创建的每个负载均衡服务 AZ 创建 AZ 配置集。
- 示例 - 为
az1创建配置集 在本例中,创建 AZ 配置文件(
az1-profile),它在计算 AZ (az1)中运行的 Compute 节点上使用管理网络(lb-mgmt-az1-net):$ openstack loadbalancer availabilityzoneprofile create \ --name az1-profile --provider amphora --availability-zone-data \ '{"compute-zone": "az1","management-network": \ "a2884aaf-846c-4936-9982-3083f6a71d9b"}'- 示例 - 为
az2创建配置集 在本例中,会创建一个 AZ 配置文件(
az2-profile),它在计算 AZ (az2)中运行的 Compute 节点上使用管理网络(lb-mgmt-az2-net):$ openstack loadbalancer availabilityzoneprofile create \ --name az2-profile --provider amphora --availability-zone-data \ '{"compute-zone": "az2","management-network": \ "10458d6b-e7c9-436f-92d9-711677c9d9fd"}'
- 示例 - 为
使用 AZ 配置集,创建一个负载平衡服务 AZ。为每个 AZ 使用适当的配置集,为任何其他 AZ 重复此步骤。
- 示例 - 创建 AZ:
az0 在本例中,使用 AZ 配置集(z0-profile)创建负载均衡服务 AZ (
):az0$ openstack loadbalancer availabilityzone create --name az0 \ --availabilityzoneprofile az0-profile \ --description "AZ for Headquarters" --enable- 示例 - 创建 AZ:
az1 在本例中,使用 AZ 配置集(
az1-profile)创建负载均衡服务 AZ (az1):$ openstack loadbalancer availabilityzone create --name az1 \ --availabilityzoneprofile az1-profile \ --description "AZ for South Region" --enable- 示例 - 创建 AZ:
az2 在本例中,使用 AZ 配置集(
az2-profile)创建负载均衡服务 AZ (az2):$ openstack loadbalancer availabilityzone create --name az2 \ --availabilityzoneprofile az2-profile \ --description "AZ for North Region" --enable
- 示例 - 创建 AZ:
验证
确认已创建了 AZ (
az0)。为每个 AZ 使用适当的名称,对任何其他 AZ 重复此步骤。- 示例 - 验证
az0 $ openstack loadbalancer availabilityzone show az0- 输出示例
+------------------------------+--------------------------------------+ | Field | Value | +------------------------------+--------------------------------------+ | name | az0 | | availability_zone_profile_id | 5ed25d22-52a5-48ad-85ec-255910791623 | | enabled | True | | description | AZ for Headquarters | +------------------------------+--------------------------------------+- 示例 - 验证
az1 $ openstack loadbalancer availabilityzone show az1- 输出示例
+------------------------------+--------------------------------------+ | Field | Value | +------------------------------+--------------------------------------+ | name | az1 | | availability_zone_profile_id | e0995a82-8e67-4cea-b32c-256cd61f9cf3 | | enabled | True | | description | AZ for South Region | +------------------------------+--------------------------------------+- 示例 - 验证
az2 $ openstack loadbalancer availabilityzone show az2- 输出示例
+------------------------------+--------------------------------------+ | Field | Value | +------------------------------+--------------------------------------+ | name | az2 | | availability_zone_profile_id | 306a4725-7dac-4046-8f16-f2e668ee5a8d | | enabled | True | | description | AZ for North Region | +------------------------------+--------------------------------------+
- 示例 - 验证
后续步骤