4.7. 创建 Azure 内部负载均衡器
要确保没有响应健康探测请求的集群节点已被删除,您可以创建一个 Azure 内部负载均衡器。使用自定义用于高可用性(HA)集群的设置来配置负载均衡器。
先决条件
- 您已创建了红帽帐户。
- 您已 注册并设置了一个 Azure 帐户。
- Azure 命令行界面(CLI) 已安装在您的系统上。
- 您已为 HA 集群创建了 Azure 资源,包括包含集群节点的虚拟网络、子网和可用性集。
流程
从 HA 集群中的任何节点登录到您的 Azure 帐户:
$ az login使用动态私有前端 IP 地址创建基本内部负载均衡器:
$ az network lb create \ --resource-group <resource_group> \ --name <load_balancer_name> \ --sku Basic \ --vnet-name <vnet_name> \ --subnet <subnet_name> \ --frontend-ip-name <frontend_ip_name> \ --backend-pool-name <backend_pool_name>不要指定
--private-ip-address,因此 Azure 会从子网动态分配前端 IP 地址。示例:
$ az network lb create \ --resource-group azrhelclirsgrp \ --name rhelha-lb1 \ --sku Basic \ --vnet-name azrhelclivnet1 \ --subnet azrhelclisubnet1 \ --frontend-ip-name rhelha-frontend1 \ --backend-pool-name rhelha-backend1将 backend 池与包含集群节点的可用性集关联:
不要将单个 IP 地址添加到后端池中。将可用性集中的每个虚拟机(VM)的网络接口添加到后端池:
$ for vm in $(az vm list-instances \ --resource-group "<resource_group>" \ --name "<availability_set>" \ --query "[].name" -o tsv); do nic=$(az vm show \ --resource-group "<resource_group>" \ --name "$vm" \ --query "networkProfile.networkInterfaces[0].id" -o tsv | xargs basename) az network nic ip-config address-pool add \ --resource-group "<resource_group>" \ --lb-name "<load_balancer_name>" \ --address-pool "<backend_pool_name>" \ --nic-name "$nic" \ --ip-config-name "ipconfig1" done将 <ip_config_name > 替换为每个集群节点网络接口上的 IP 配置名称,如
ipconfig1。在端口
61000上创建 TCP 健康探测:$ az network lb probe create \ --resource-group <resource_group> \ --lb-name <load_balancer_name> \ --name <health_probe_name> \ --protocol Tcp \ --port 61000您可以使用不会影响到另一个服务的任何 TCP 端口号。
注意对于某些 HA 产品应用程序(例如,SAP 高性能分析设备(HANA)和 SQL Server),您需要与 Microsoft 合作以确定要使用的正确端口。
示例:
$ az network lb probe create \ --resource-group azrhelclirsgrp \ --lb-name rhelha-lb1 \ --name rhelha-probe1 \ --protocol Tcp \ --port 61000创建启用了浮动 IP 的负载均衡规则:
$ az network lb rule create \ --resource-group <resource_group> \ --lb-name <load_balancer_name> \ --name <load_balancer_rule_name> \ --protocol Tcp \ --frontend-port 61000 \ --backend-port 61000 \ --frontend-ip-name <frontend_ip_name> \ --backend-pool-name <backend_pool_name> \ --probe-name <health_probe_name> \ --floating-ip true使用与健康探测相同的前端和后端端口值,除非 HA 应用程序需要不同的端口。
示例:
$ az network lb rule create \ --resource-group azrhelclirsgrp \ --lb-name rhelha-lb1 \ --name rhelha-rule1 \ --protocol Tcp \ --frontend-port 61000 \ --backend-port 61000 \ --frontend-ip-name rhelha-frontend1 \ --backend-pool-name rhelha-backend1 \ --probe-name rhelha-probe1 \ --floating-ip true
验证
验证负载均衡器及其前端 IP 地址是否已成功创建:
$ az network lb show \ --resource-group <resource_group> \ --name <load_balancer_name> \ --query "{name:name, sku:sku.name, provisioningState:provisioningState}" \ --output table$ az network lb frontend-ip list \ --resource-group <resource_group> \ --lb-name <load_balancer_name> \ --output table示例:
$ az network lb show \ --resource-group azrhelclirsgrp \ --name rhelha-lb1 \ --query "{name:name, sku:sku.name, provisioningState:provisioningState}" \ --output table$ az network lb frontend-ip list \ --resource-group azrhelclirsgrp \ --lb-name rhelha-lb1 \ --output table
后续步骤