在Global的Azure上,新的Portal和ARM已經正式釋出。將來傳統的portal和ASM將逐漸淡出。
China Azure將在今年下半年推出新的Portal管理介面和ARM功能(即IaaS v2)。本文將通過Azure CLI命令列的方式在ARM模式下,建立VM和負載均衡。
在ASM模式下,我們經常使用Endpoint和負載均衡SLB的功能。同樣在ARM模式下,SLB也是一個非常重要的功能。但在ARM下和ASM的最重要的不同是:LoadBalancer不再是關聯到VM上的屬性了。就是說,VM可以沒有公網IP,可以沒有負載均衡對外提供服務。
這種部署模式更加符合企業應用的部署模式。在企業應用中,只有前端的展現層才會有與外部網路的連線,而其他應用層、資料庫層等都不允許與外界溝通。
通過ARM部署的VM,就具有這種特性。
如圖中所示:
負載均衡把Web請求分發到加入了負載均衡的VM上。
下面將一步一步的建立負載均衡的各個元件和VM。
1.建立Resource Group:
azure group create hwlb eastasia
2.在Resource Group中建立儲存賬戶
azure storage account create -g hwlb -l eastasia --type LRS hweastasia
3.在Resource Group中建立Vnet
azure network vnet create hwlb hwlbvnet eastasia -a 10.0.0.0/16
4.在Vnet中建立Subnet
azure network vnet subnet create hwlb hwlbvnet hwlbsubnet-1 -a 10.0.0.0/24
5.建立Public-IP
azure network public-ip create -g hwlb -n hwlbpip -l eastasia -d hwlbpip -a static -i 4
6.建立LoadBalancer
azure network lb create hwlb hwlb eastasia
7.定義LoadBalancer的前端IP和剛剛定義的Public-IP繫結
azure network lb frontend-ip create hwlb hwlb hwlbfndip -i hwlbpip
8.建立後端IP地址池(此時沒有VM加入)
azure network lb address-pool create hwlb hwlb hwlbbndip
9.定義這個LoadBalancer的NAT規則
azure network lb inbound-nat-rule create -g hwlb -l hwlb -n ssh1 -p tcp -f 22122 -b 22 azure network lb inbound-nat-rule create -g hwlb -l hwlb -n ssh2 -p tcp -f 22322 -b 22
10.建立LoadBalancer的負載均衡規則
azure network lb rule create hwlb hwlb lbrule -p tcp -f 80 -b 80 -t hwlbfndip -o hwlbbndip
11.建立LoadBalancer的健康檢查規則
azure network lb probe create -g hwlb -l hwlb -n healthprobe -p "tcp" -o 80 -i 15 -c 4
12.檢查建立的負載均衡
azure network lb show hwlb hwlb
至此,負載均衡已經建立完畢。下面將建立VM。
13.建立兩個NIC,將NAT規則應用到兩個網路卡上
azure network nic create -g hwlb -n hwlbnic1-be --subnet-name hwlbsubnet-1 --subnet-vnet-name hwlbvnet -d "/subscriptions/xxxx/resourceGroups/hwlb/providers/Microsoft.Network/loadBalancers/hwlb/backendAddressPools/hwlbbndip" -e "/subscriptions/xxxx/resourceGroups/hwlb/providers/Microsoft.Network/loadBalancers/hwlb/inboundNatRules/ssh1" eastasia azure network nic create -g hwlb -n hwlbnic2-be --subnet-name hwlbsubnet-1 --subnet-vnet-name hwlbvnet -d "/subscriptions/xxxx/resourceGroups/hwlb/providers/Microsoft.Network/loadBalancers/hwlb/backendAddressPools/hwlbbndip" -e "/subscriptions/xxxx/resourceGroups/hwlb/providers/Microsoft.Network/loadBalancers/hwlb/inboundNatRules/ssh2" eastasia
14.建立兩臺VM
azure vm create --resource-group hwlb --name hwlbweb1 --location eastasia --vnet-name hwlbvnet --vnet-subnet-name hwlbsubnet-1 --nic-name hwlbnic1-be --availset-name hwlb-avset --storage-account-name hweastasia -u hengwei -p xxxx -z Standard_A1 --os-type Linux --image-urn openlogic:CentOS:6.5:6.5.20150904 azure vm create --resource-group hwlb --name hwlbweb2 --location eastasia --vnet-name hwlbvnet --vnet-subnet-name hwlbsubnet-1 --nic-name hwlbnic2-be --availset-name hwlb-avset --storage-account-name hweastasia -u hengwei -p xxxx -z Standard_A1 --os-type Linux --image-urn openlogic:CentOS:6.5:6.5.20150904
15.定義LoadBalancer的Distribution模式
在ASM中的SLB有3中Distribution Mode,分別是Default(5-tuple)、sourceIP(2-tuple)、sourceIP Protocol(3-tuple)。為實現Session Sticky,我們會選擇sourceIP的分佈模式。具體命令如下:
azure network lb rule set -d sourceIP hwlb hwlb lbrule
此命令需要最新版的Azure CLI-0.9.15。如果版本不夠,請升級。
在ARM的環境下,LoadBalancer的實現方式與ASM的有類似,但要比ASM好。