將已連結至可用性設定組中 VM 的所有公用 IP 位址從基本升級為標準
重要
基本 SKU 公用 IP 將於 2025 年 9 月 30 日淘汰。 如需詳細資訊,請參閱官方公告。 如果您目前使用基本 SKU 公用 IP,請務必在淘汰日期之前升級至標準 SKU 公用 IP。 本文將協助您完成升級流程。
如需淘汰基本 SKU 公用 IP 和標準 SKU 公用 IP 權益的詳細資訊,請參閱這裡
升級概觀
此指令碼會將已連結至可用性設定組中虛擬機器 (VM) 的任何公用 IP 位址從基本升級為標準 SKU。 為了執行升級,公用 IP 位址配置方法會先設定為靜態,然後才和每個 VM 解除關聯。 解除關聯之後,公用 IP SKU 會升級為標準,然後 IP 會和原始 VM 重新建立關聯,直到所有 IP 都升級為止。
由於公用 IP 配置在和 VM 中斷連結之前設定為「靜態」,因此即使發生指令碼失敗,IP 位址在升級流程期間也不會變更。 模組會先仔細檢查公用 IP 配置方法是否為「靜態」,然後才會將公用 IP 與 VM 中斷連結。
模組會將所有升級活動記錄到名為 AvSetPublicIPUpgrade.log
的檔案,於執行模組的相同位置建立 (預設)。
限制/不支援的案例
具有與 Load Balancer 相關聯的網路介面的 VM:因為與 VM 相關聯的 Load Balancer 和公用 IP SKU 必須相符,因此,當 VM 的網路介面也透過後端集區或 NAT 集區成員資格建立關聯時,就無法升級與 VM 相關聯的執行個體層級公用 IP 位址。 使用指令碼將基本負載平衡器升級至標準 SKU,以同時升級負載平衡器和公用 IP。
沒有網路安全性群組的 VM:具有要升級 IP 的 VM 必須有與具有公用 IP 或直接使用 NIC 的每個 IP 設定子網路相關聯的網路安全性群組 (NSG)。 這是因為標準 SKU 公用 IP「預設為安全」,這表示必須在 NSG 明確允許連線到 VM 的任何公用 IP 流量。 基本 SKU 公用 IP 預設會允許任何流量。 在沒有 NSG 的情況下升級公用 IP SKU 會導致輸入網際網路流量流向先前基本 SKU 允許的公用 IP。 請參閱:公用 IP SKU
下載指令碼
從 PowerShell 資源庫下載移轉指令碼。
Install-Module -Name AzureAvSetBasicPublicIPUpgrade -Scope CurrentUser -Repository PSGallery -Force
使用模組
使用
Select-AzSubscription
來選取可用性設定組所在的 Azure 訂用帳戶Select-AzSubscription -Subscription <SubscriptionId>
尋找具有您要升級的已連結基本公用 IP 的可用性設定組。 記錄其名稱和資源群組名稱。
檢查模組參數:
- AvailabilitySetName [string] 必要 - 此參數是您可用性設定組的名稱。
- ResourceGroupName [string] 必要 - 此參數是可用性設定組的資源群組,其中包含您要升級的已連結基本公用 IP。
使用下列範例或
Get-Help Start-AzAvSetPublicIPUpgrade
作為指引來執行升級。
指令碼的範例用法
升級單一可用性設定組中的 VM,並將可用性設定組名稱和資源群組名稱以參數傳遞。
Start-AzAvSetPublicIPUpgrade -availabilitySetName 'myAvSet' -resourceGroupName 'myRG'
評估單一可用性設定組中的 VM,而不進行任何變更
Start-AzAvSetPublicIPUpgrade -availabilitySetName 'myAvSet' -resourceGroupName 'myRG' -WhatIf
嘗試升級使用者可存取的每個可用性設定組中的 VM。 會跳過已經升級但沒有公用 IP 或沒有 NSG 的 VM。
Get-AzAvailabilitySet -resourceGroupName 'myRG' | Start-AzAvSetPublicIPUpgrade -skipVMMissingNSG
從失敗的移轉復原,傳遞要復原的可用性設定組的名稱和資源群組,以及復原記錄檔。
Start-AzAvSetPublicIPUpgrade -RecoverFromFile ./AvSetPublicIPUpgrade_Recovery_2020-01-01-00-00.csv -AvailabilitySetName myAvSet -ResourceGroup rg-myrg
從失敗的移轉復原
如果移轉因為暫時性問題而失敗,例如網路中斷或用戶端系統問題,則可以重試移轉,以設定 VM 和公用 IP 成為目標狀態。 在執行時,指令碼會輸出復原記錄檔,用來確保 VM 已正確重新設定。 檢閱在執行指令碼所在的位置中建立的記錄檔 AvSetPublicIPUpgrade.log
。
若要從失敗的升級復原,請使用 -recoverFromFile
參數將復原記錄檔路徑傳遞至指令碼,並識別要使用 -AvailabilitySetName
參數復原的可用性設定組,如本範例所示。
Start-VMPublicIPUpgrade -RecoverFromFile ./AvSetPublicIPUpgrade_Recovery_2020-01-01-00-00.csv -AvailabilitySetName myAvSet -ResourceGroupName rg-myrg
常見問題
移轉需要多久的時間,以及我的 VM 在使用其公用 IP 時無法存取多久的時間?
升級 VM 的公用 IP 所需的時間取決於與 VM 相關聯的公用 IP 和網路介面數目。 在測試中,具有單一 NIC 和公用 IP 的 VM需要 1 到 2 分鐘才能升級。 VM 上的每個 NIC 都會再增加大約一分鐘,且每個公用 IP 會各增加幾秒。
我可以復原至基本 SKU 公用 IP 嗎?
無法將公用 IP 位址從標準降級為基本。
我可以在執行之前先測試移轉嗎?
若未完成動作,就無法評估升級公用 IP。 不過,此指令碼包含 -WhatIf
參數,它會檢查您的可用性設定組是否支援升級,並逐步執行步驟而不採取動作。
指令碼是否支援區域性基本 SKU 公用 IP?
是,將區域性基本 SKU 公用 IP 升級至區域性標準 SKU 公用 IP 的程序完全相同,而且可在指令碼中運作。