虛擬機規(guī)模集是一種 Azure 計算資源儿咱,可用于部署和管理一組相同的 VM。 由于所有 VM 的配置都相同场晶,因此無需對 VM 進行任何預(yù)先配置混埠。 這樣就可以更方便地構(gòu)建面向大型計算、大數(shù)據(jù)诗轻、容器化工作負荷的大規(guī)模服務(wù)钳宪。
對于需要擴大和縮小計算資源的應(yīng)用程序,縮放操作在容錯域和更新域之間進行隱式平衡扳炬。 有關(guān)規(guī)模集的更多介紹吏颖,請參閱Azure 博客公告。
創(chuàng)建和管理規(guī)模集
可以在Azure 門戶中創(chuàng)建規(guī)模集恨樟,方法是:選擇“新建”侦高,然后在搜索欄中鍵入“規(guī)模”厌杜。 結(jié)果中會列出“虛擬機規(guī)模集”奉呛。 從這里,可以填寫必填字段夯尽,自定義和部署規(guī)模集瞧壮。
也可以使用 JSON 模板與REST API來定義和部署規(guī)模集,就像定義和部署單個 Azure Resource Manager VM 一樣匙握。 因此咆槽,可以使用任何標準的 Azure Resource Manager 部署方法。 有關(guān)模板的詳細信息圈纺,請參閱創(chuàng)作 Azure Resource Manager 模板秦忿。
可在Azure 快速入門模板 GitHub 存儲庫中找到一組虛擬機規(guī)模集的示例模板。 (查找標題中含有vmss的模板蛾娶。)
以“快速啟動”模板為例灯谣,每個模板的自述文件中的“部署到 Azure”按鈕都會鏈接到門戶部署功能。 如果要部署規(guī)模集蛔琅,請單擊該按鈕胎许,并填寫門戶中所需的任何參數(shù)。
擴大和縮小規(guī)模集
若要在 Azure 門戶中更改規(guī)模集的容量罗售,可單擊“設(shè)置”下的“縮放”部分辜窑。
若要在命令行中更改規(guī)模集容量,請在Azure CLI中使用scale命令寨躁。 例如穆碎,使用以下命令可將規(guī)模集設(shè)置為 10 個 VM 的容量:
Note
在 Azure 中國區(qū)使用 Azure CLI 2.0 之前,請先運行az cloud set -n AzureChinaCloud來改變云環(huán)境职恳。如果想切回國際版 Azure所禀,請再次運行az cloud set -n AzureCloud谜悟。
bash復(fù)制
az vmss scale -g resourcegroupname -n scalesetname --new-capacity 10
若要通過 PowerShell 在規(guī)模集中設(shè)置 VM 數(shù),請使用Update-AzureRmVmss命令:
PowerShell復(fù)制
$vmss=Get-AzureRmVmss-ResourceGroupNameresourcegroupname-VMScaleSetNamescalesetname$vmss.Sku.Capacity =10Update-AzureRmVmss-ResourceGroupNameresourcegroupname-Namescalesetname-VirtualMachineScaleSet$vmss
若要通過 Azure Resource Manager 模板增加或減少規(guī)模集中的虛擬機數(shù)北秽,請更改capacity屬性并重新部署模板。
若要重新部署 Azure Resource Manager 模板以更改容量最筒,可以定義一個小得多的模板贺氓,只包括SKU屬性數(shù)據(jù)包和更新的容量。下面是一個示例床蜘。
監(jiān)視規(guī)模集
Azure 門戶列出規(guī)模集并顯示其屬性辙培。 門戶還支持管理操作。 可以針對規(guī)模集和規(guī)模集中的單個 VM 執(zhí)行這些操作邢锯。 該門戶還提供了一個可自定義的資源使用情況圖扬蕊。
規(guī)模集方案
本部分列出了一些典型的規(guī)模集方案。 一些高級 Azure 服務(wù)(如批處理丹擎、Service Fabric 和容器服務(wù))使用這些方案尾抑。
使用 RDP 或 SSH 連接到規(guī)模集實例:在虛擬網(wǎng)絡(luò)中創(chuàng)建規(guī)模集,默認情況下不為規(guī)模集中的單個 VM 分配公共 IP 地址蒂培。 此策略避免了將獨立的公共 IP 地址分配給計算網(wǎng)格中的所有節(jié)點所需的支出和管理開銷再愈。 如果確實需要通過直接的外部連接來連接到規(guī)模集 VM,則可將規(guī)模集配置為自動將公共 IP 地址分配到新的 VM护戳。 也可從虛擬網(wǎng)絡(luò)中可以為其分配公共 IP 地址的其他資源(例如翎冲,負載均衡器和獨立虛擬機)連接到這些 VM。
使用 NAT 規(guī)則連接到 VM:可以創(chuàng)建一個公共 IP 地址媳荒,并將其分配給負載均衡器抗悍,然后定義入站 NAT 池。 這些操作將 IP 地址上的端口映射到規(guī)模集中 VM 上的端口钳枕。 例如:
源Source Port目標Destination Port
公共 IP端口 50000vmss_0端口 22
公共 IP端口 50001vmss_1端口 22
公共 IP端口 50002vmss_2端口 22
此示例中定義了 NAT 規(guī)則缴渊,以便通過單個公共 IP 地址實現(xiàn)與規(guī)模集中每個 VM 的 SSH 連接。
此示例使用 RDP 和 Windows 實現(xiàn)相同的目的鱼炒。
使用“jumpbox”連接到 VM:如果在同一個虛擬網(wǎng)絡(luò)中創(chuàng)建一個規(guī)模集和一個獨立 VM疟暖,則該獨立 VM 和規(guī)模集 VM 能夠使用其由虛擬網(wǎng)絡(luò)或子網(wǎng)定義的內(nèi)部 IP 地址彼此連接。 如果創(chuàng)建一個公共 IP 地址并將其分配給獨立 VM田柔,可以使用 RDP 或 SSH 連接到該獨立 VM俐巴。 然后,可從該虛擬機連接到規(guī)模集實例硬爆。 此時你可能會發(fā)現(xiàn)欣舵,與使用其默認配置中的公共 IP 地址的簡單獨立 VM 相比,簡單的規(guī)模集本質(zhì)上更安全缀磕。
例如缘圈,此模板使用一個獨立的 VM 部署簡單的規(guī)模集劣光。
負載均衡到規(guī)模集實例:如果想要使用輪循機制方法向 VM 的計算群集交付工作,可以使用第 4 層負載均衡規(guī)則對 Azure 負載均衡器進行相應(yīng)的配置糟把。 可以定義探測绢涡,通過使用指定的協(xié)議、間隔和請求路徑對端口執(zhí)行 ping 操作來驗證應(yīng)用程序是否正在運行遣疯。Azure 應(yīng)用程序網(wǎng)關(guān)也支持規(guī)模集雄可,以及第 7 層和更復(fù)雜的負載均衡方案。
此示例創(chuàng)建運行 Apache Web 服務(wù)器的規(guī)模集缠犀,并使用負載均衡器來均衡每個 VM 接收的負載数苫。 (查看 Microsoft.Network/loadBalancers 資源類型以及 virtualMachineScaleSet 中的 networkProfile 和 extensionProfile。)
此 Linux 示例和此 Windows 示例使用應(yīng)用程序網(wǎng)關(guān)辨液。
在 PaaS 群集管理器中將規(guī)模集部署為計算群集:規(guī)模集有時描述為下一代輔助角色虐急。 這是有效的描述妖碉,但也可能導(dǎo)致將規(guī)模集功能與 Azure 云服務(wù)功能混淆蚯窥。 在某種意義上,規(guī)模集提供真正的輔助角色或輔助角色資源挽封。 規(guī)模集是通用計算資源燎悍,獨立于平臺/運行時赏殃、可自定義且可集成到 Azure Resource Manager IaaS 中。
云服務(wù)輔助角色雖然在平臺/運行時支持方面受到限制(僅限 Windows 平臺映像)间涵, 但它也包括多項服務(wù)仁热,如 VIP 交換,可配置的升級設(shè)置勾哩,以及特定于運行時/應(yīng)用部署的設(shè)置抗蠢。 這些服務(wù)尚未在規(guī)模集中提供,或者由 Azure Service Fabric 等其他更高級別 PaaS 服務(wù)提供思劳。 可以將規(guī)模集視為支持 PaaS 的基礎(chǔ)結(jié)構(gòu)迅矛。 PaaS 解決方案(例如Service Fabric)基于該基礎(chǔ)結(jié)構(gòu)。
規(guī)模集性能和縮放指南
一個規(guī)模集最多支持 1,000 個 VM潜叛。 如果創(chuàng)建和上傳自己的自定義 VM 映像秽褒,則該限制為 300。 如需使用大型規(guī)模集時的注意事項威兜,請參閱使用大型虛擬機規(guī)模集销斟。
無需預(yù)先創(chuàng)建 Azure 存儲帳戶即可使用規(guī)模集。 規(guī)模集支持 Azure 托管磁盤椒舵,因此不需擔(dān)心因單個存儲帳戶磁盤數(shù)不足而造成的性能問題蚂踊。 有關(guān)詳細信息,請參閱Azure 虛擬機規(guī)模集和托管磁盤笔宿。
可以考慮使用 Azure 高級存儲而不是 Azure 存儲犁钟,以便加快 VM 預(yù)配速度棱诱、提高 VM 預(yù)配時間的可預(yù)測性,以及改進 I/O 性能涝动。
可以創(chuàng)建的 VM 數(shù)受到在其中進行部署的區(qū)域中核心配額的限制迈勋。 即使目前用于 Azure 云服務(wù)的核心數(shù)上限已較高,也仍可能需要聯(lián)系客戶支持來提高計算配額限制醋粟。 若要查詢配額靡菇,請運行以下 Azure CLI 命令:azure vm list-usage。 或者昔穴,運行以下 PowerShell 命令:Get-AzureRmVMUsage。
有關(guān)規(guī)模集的常見問題
問:可在規(guī)模集中包含多少個 VM提前?
答:一個規(guī)模集可以包含 0 到 1,000 個基于平臺映像的 VM吗货,或者 0 到 300 個基于自定義映像的 VM。
問:規(guī)模集是否支持數(shù)據(jù)磁盤狈网?
答:是的宙搬。 規(guī)模集可以定義適用于集中所有 VM 的附加數(shù)據(jù)磁盤配置。 有關(guān)詳細信息拓哺,請參閱Azure scale sets and attached data disks(Azure 規(guī)模集和附加的數(shù)據(jù)磁盤)勇垛。 可用于存儲數(shù)據(jù)的其他選項包括:
Azure 文件(SMB 共享驅(qū)動器)
OS 驅(qū)動器
臨時驅(qū)動器(本地,不是以 Azure 存儲為基礎(chǔ))
Azure 數(shù)據(jù)服務(wù)(例如 Azure 表士鸥、Azure Blob)
外部數(shù)據(jù)服務(wù)(例如遠程數(shù)據(jù)庫)
問:哪些 Azure 區(qū)域支持規(guī)模集闲孤?
答:所有區(qū)域都支持規(guī)模集。
問:如何使用自定義映像創(chuàng)建規(guī)模集烤礁?
答:根據(jù)自定義映像 VHD 創(chuàng)建托管磁盤讼积,并在規(guī)模集模板中引用該磁盤。下面是一個示例脚仔。
問:如果我將規(guī)模集容量從 20 減少到 15勤众,將刪除哪些 VM?
答:將從跨更新域和容錯域的規(guī)模集中均勻地刪除虛擬機鲤脏,以最大限度地提高可用性们颜。 首先刪除 ID 最大的 VM。
問:如果將容量從 15 增加到 18猎醇,會發(fā)生什么情況窥突?
答:如果將容量增加到 18,則創(chuàng)建 3 個新 VM硫嘶。 每增加容量一次波岛,VM 實例 ID 就會從以前的最高值(例如 20、21音半、22)遞增则拷。 容錯域與和更新域中的 VM 是均衡的贡蓖。
問:在一個規(guī)模集中使用多個擴展時,是否可以強制規(guī)定執(zhí)行序列煌茬?
答:不能直接強制執(zhí)行斥铺,但對于 customScript 擴展,腳本可以等待另一個擴展來完成坛善。 在Extension Sequencing in Azure VM Scale Sets(Azure VM 規(guī)模集中的擴展序列)博客文章中可以獲取有關(guān)擴展序列的其他指導(dǎo)晾蜘。
問:規(guī)模集是否適用于 Azure 可用性集?
答:是的眠屎。 規(guī)模集是包含 5 個容錯域和 5 個更新域的隱式可用性集剔交。 規(guī)模集如果包含 100 個以上的 VM,則會跨多個位置組改衩,等效于多個可用性集岖常。 有關(guān)位置組的詳細信息,請參閱使用大型虛擬機規(guī)模集葫督。 由 VM 組成的可用性集可以與由 VM 組成的規(guī)模集位于相同的虛擬網(wǎng)絡(luò)中竭鞍。 常見的配置是將控件節(jié)點 VM(經(jīng)常需要獨特的配置)放在可用性集中,將數(shù)據(jù)節(jié)點放在規(guī)模集中橄镜。
可在Azure 虛擬機規(guī)模集常見問題中找到有關(guān)規(guī)模集的更多常見問題解答偎快。