快速入门:使用 Azure CLI 创建公共负载均衡器以对 VM 进行负载均衡

今天联系使用CLI 来创建balancor 对VM进行均衡测试:

如果使用界面来创建,可以参考:https://docs.microsoft.com/zh-cn/azure/load-balancer/tutorial-load-balancer-standard-public-zone-redundant-portal

先看一下测试图:

1:建资源组:

az group create \
    --name CreatePubLBQS-rg \
    --location eastus

2:配置虚拟网络 - 标准:

  • 命名为“myVNet”。
  • 地址前缀为 10.1.0.0/16。
  • 子网命名为“myBackendSubnet”。
  • 子网前缀为 10.1.0.0/24。
  • 在“CreatePubLBQS-rg”资源组中。
  • eastus 的位置。

az network vnet create \
    --resource-group CreatePubLBQS-rg \
    --location eastus \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

3:创建公共 IP 地址:

az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionIP \
    --sku Standard

4:创建堡垒子网:

az network vnet subnet create \
    --resource-group CreatePubLBQS-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/24

5:创建堡垒主机

  • 命名为 myBastionHost。
  • 在“CreatePubLBQS-rg”中。
  • 与公共 IP myBastionIP 相关联。
  • 与虚拟网络 myVNet 相关联。
  • 在位置“eastus”中

az network bastion create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location eastus

6:创建网络安全组

  • 命名为“myNSG”。
  • 在“CreatePubLBQS-rg”资源组中。

az network nsg create \
    --resource-group CreatePubLBQS-rg \
    --name myNSG

7:创建网络安全组规则

  • 命名为“myNSGRuleHTTP”。
  • 在上一步创建的网络安全组“myNSG”中。
  • 在“CreatePubLBQS-rg”资源组中。
  • 协议为“(*)”。
  • 方向为“入站”。
  • 源为“(*)”。
  • 目标为“(*)”。
  • 目标端口为“端口 80”。
  • 访问为“允许”。
  • 优先级为“200”。

az network nsg rule create \
    --resource-group CreatePubLBQS-rg \
    --nsg-name myNSG \
    --name myNSGRuleHTTP \
    --protocol '*' \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

注意,上面的红色部分我测试的时候,需要--protocol *,不能有 单引号。要建好长时间,我通过图形手动建了:

8: 创建后端服务器 - 标准

使用 az network nic create 创建三个网络接口:

  • 名为 myNicVM1、myNicVM2 和 myNicVM3
  • 在“CreatePubLBQS-rg”资源组中。
  • 在虚拟网络“myVNet”中。
  • 在子网“myBackendSubnet”中。
  • 在网络安全组“myNSG”中。

    az network nic create \
        --resource-group CreatePubLBQS-rg \
        --name myNicVM1 \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
 

上面同样方法创建myNicVM2 和 myNicVM3

9:创建虚拟机

  • 命名为“myVM1”。
  • 在“CreatePubLBQS-rg”资源组中。
  • 附加到网络接口“myNicVM1”。
  • 虚拟机映像 win2019datacenter。
  • 在“区域 1”中。

az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM1 \
    --nics myNicVM1 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 1 \
    --no-wait

同样方法创建myVM2, myVM3:   (我创建的时候报错,因为我是在eastasia, 上面没有zone, 所以选region 很重要)

az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM2 \
    --nics myNicVM2 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 2 \
    --no-wait

az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM3 \
    --nics myNicVM3 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 3 \
    --no-wait

10: 创建公共 IP 地址 - 标准

若要通过 Internet 访问 Web 应用,需要负载均衡器有一个公共 IP 地址。

使用 az network public-ip create 执行以下操作:

  • 创建名为“myPublicIP”的标准区域冗余公共 IP 地址。
  • 在“CreatePubLBQS-rg”中。

az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard

在区域 1 中创建区域性冗余公共 IP 地址:

az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1

11:创建标准负载均衡器

本部分详细介绍如何创建和配置负载均衡器的以下组件:

  • 前端 IP 池,用于在负载均衡器上接收传入网络流量。
  • 后端 IP 池,前端池将负载均衡的网络流量发送到此处。
  • 运行状况探测,用于确定后端 VM 实例的运行状况。
  • 负载均衡器规则,用于定义如何将流量分配给 VM。

创建负载均衡器资源

使用 az network lb create 创建公共负载均衡器:

  • 命名为 myLoadBalancer。
  • 前端池命名为 myFrontEnd。
  • 后端池命名为 myBackEndPool。
  • 与你在上一步中创建的公共 IP 地址 myPublicIP 关联。

az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool

12: 创建运行状况探测

运行状况探测会检查所有虚拟机实例,以确保它们可以发送网络流量。

从负载均衡器中删除未通过探测检查的虚拟机。 解决故障后,虚拟机将重新添加到负载均衡器中。

使用 az network lb probe create 创建运行状况探测:

  • 监视虚拟机的运行状况。
  • 命名为“myHealthProbe”。
  • 协议为“TCP”。
  • 监视“端口 80”。

az network lb probe create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

13: 创建负载均衡器规则

负载均衡器规则定义:

  • 针对传入流量的前端 IP 配置。
  • 用于接收流量的后端 IP 池。
  • 所需的源和目标端口。

使用 az network lb rule create 创建负载均衡器规则:

  • 命名为“myHTTPRule”
  • 对前端池“myFrontEnd”中的“端口 80”进行侦听 。
  • 使用“端口 80”将负载均衡的网络流量发送到后端地址池“myBackEndPool” 。
  • 使用运行状况探测“myHealthProbe”。
  • 协议为“TCP”。
  • 空闲超时 15 分钟。
  • 启用 TCP 重置。

az network lb rule create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHTTPRule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool \
    --probe-name myHealthProbe \
    --disable-outbound-snat true \
    --idle-timeout 15 \
    --enable-tcp-reset true

14: 将虚拟机添加到负载均衡器后端池

使用 az network nic ip-config address-pool add 将虚拟机添加到后端池:

  • 在后端地址池“myBackEndPool”中。
  • 在“CreatePubLBQS-rg”资源组中。
  • 与负载均衡器 myLoadBalancer 关联。

    az network nic ip-config address-pool add \
     --address-pool myBackendPool \
     --ip-config-name ipconfig1 \
     --nic-name myNicVM1 \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
同样方法,把 myNicVM2, myNicVM3, 加入到loadbalance 里面

15: 创建出站规则配置

负载均衡器出站规则为后端池中的 VM 配置出站 SNAT。

有关出站连接的详细信息,请参阅 Azure 中的出站连接

公共 IP 或前缀可用于出站配置。

公共 IP

使用 az network public-ip create 为出站连接创建单个 IP。

  • 命名为 myPublicIPOutbound。
  • 在“CreatePubLBQS-rg”中。

az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPOutbound \
    --sku Standard

16:在区域 1 中创建区域性冗余公共 IP 地址:

az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPOutbound \
    --sku Standard \
    --zone 1

17: 公共 IP 前缀

使用 az network public-ip create 为出站连接创建公共 IP 前缀。

  • 命名为 myPublicIPPrefixOutbound。
  • 在“CreatePubLBQS-rg”中。
  • 前缀长度为 28。

az network public-ip prefix create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPPrefixOutbound \
    --length 28

在区域 1 中创建区域性冗余公共 IP 前缀:

az network public-ip prefix create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIPPrefixOutbound \
    --length 28 \
    --zone 1

18:创建出站前端 IP 配置

使用 az network lb frontend-ip create 创建新的前端 IP 配置:

根据上一步中的决定选择公共 IP 或公共 IP 前缀命令。

公共 IP

  • 命名为“myFrontEndOutbound”。
  • 在“CreatePubLBQS-rg”资源组中。
  • 与公共 IP 地址 myPublicIPOutbound 关联。
  • 与负载均衡器 myLoadBalancer 关联。

az network lb frontend-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myFrontEndOutbound \
    --lb-name myLoadBalancer \
    --public-ip-address myPublicIPOutbound

19: 公共 IP 前缀

  • 命名为“myFrontEndOutbound”。
  • 在“CreatePubLBQS-rg”资源组中。
  • 与公共 IP 前缀 myPublicIPPrefixOutbound 关联。
  • 与负载均衡器 myLoadBalancer 关联。

az network lb frontend-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myFrontEndOutbound \
    --lb-name myLoadBalancer \
    --public-ip-prefix myPublicIPPrefixOutbound

20:创建出站池

使用 az network lb address create 创建新的出站池:

  • 命名为“myBackEndPoolOutbound”。
  • 在“CreatePubLBQS-rg”资源组中。
  • 与负载均衡器 myLoadBalancer 关联。

az network lb address-pool create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myBackendPoolOutbound

21:创建出站规则

  • 命名为“myOutboundRule”。
  • 在“CreatePubLBQS-rg”资源组中。
  • 与负载均衡器 myLoadBalancer 关联
  • 与前端 myFrontEndOutbound 关联。
  • 协议为“所有”。
  • 空闲超时时间为 15。
  • 出站端口为 10000 个。
  • 与后端池 myBackEndPoolOutbound 关联

az network lb outbound-rule create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myOutboundRule \
    --frontend-ip-configs myFrontEndOutbound \
    --protocol All \
    --idle-timeout 15 \
    --outbound-ports 10000 \
    --address-pool myBackEndPoolOutbound

22:向出站池添加虚拟机

使用 az network nic ip-config address-pool add 将虚拟机添加到出站池:

  • 在后端地址池“myBackEndPoolOutbound”中。
  • 在“CreatePubLBQS-rg”资源组中。
  • 与负载均衡器 myLoadBalancer 关联

    az network nic ip-config address-pool add \
     --address-pool myBackendPoolOutbound \
     --ip-config-name ipconfig1 \
     --nic-name myNicVM1 \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
同样的方法,添加myNicVM2, myNicVM3 到出站池。

23:安装 IIS

使用 az vm extension set 将 IIS 安装在虚拟机上,并将默认网站设置为计算机名。

     az vm extension set \
       --publisher Microsoft.Compute \
       --version 1.8 \
       --name CustomScriptExtension \
       --vm-name myVM1 \
       --resource-group CreatePubLBQS-rg \
       --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
 

同样的方法,设置一下 myVM2, myVM3

24: 测试负载均衡器:

若要获取负载均衡器的公共 IP 地址,请使用 az network public-ip show

复制该公共 IP 地址,并将其粘贴到浏览器的地址栏

az network public-ip show \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --query ipAddress \
    --output tsv

最后还是要感谢一下官方文档:

https://docs.microsoft.com/zh-cn/azure/load-balancer/quickstart-load-balancer-standard-public-cli?tabs=option-1-create-load-balancer-standard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值