Upgrade veřejných IP adres připojených k virtuálnímu počítači z úrovně Basic na Standard

Důležité

30. září 2025 budou veřejné IP adresy skladové položky Basic vyřazeny. Další informace najdete v oficiálním oznámení. Pokud aktuálně používáte veřejné IP adresy skladové položky Basic, nezapomeňte před datem vyřazení upgradovat na veřejné IP adresy skladové položky Standard. Tento článek vás provede procesem upgradu.

Další informace o vyřazení veřejných IP adres skladové položky Basic a výhod veřejných IP adres skladových položek úrovně Standard najdete tady.

Přehled upgradu

Tento skript upgraduje všechny veřejné IP adresy připojené k virtuálnímu počítači z úrovně Basic na skladovou položku Standard. Aby bylo možné provést upgrade, je metoda přidělování veřejných IP adres nastavená na statickou před zrušením přidružení k virtuálnímu počítači. Po zrušení přidružení se skladová položka veřejné IP adresy upgraduje na standard a pak se IP adresa znovu přidružuje k virtuálnímu počítači.

Vzhledem k tomu, že přidělení veřejné IP adresy je před odpojením od virtuálního počítače nastavené na Statickou, IP adresa se během procesu upgradu nezmění, a to ani v případě selhání skriptu. Modul pečlivě zkontroluje, jestli je metoda přidělování veřejných IP adres statická před odpojením veřejné IP adresy z virtuálního počítače.

Modul zaznamená veškerou aktivitu upgradu na soubor s názvem PublicIPUpgrade.log, vytvořený ve stejném umístění, kde byl modul spuštěn (ve výchozím nastavení).

Omezení / Nepodporované scénáře

  • Virtuální počítače s síťovými kartami přidruženými k Nástroji pro vyrovnávání zatížení: Vzhledem k tomu, že se musí shodovat skladové položky load Balanceru a veřejné IP adresy přidružené k virtuálnímu počítači, není možné upgradovat veřejné IP adresy na úrovni instance, pokud jsou síťové karty virtuálního počítače přidružené také k nástroji pro vyrovnávání zatížení, a to buď prostřednictvím back-endového fondu nebo členství ve fondu NAT. Pomocí skriptů Upgradujte Load Balancer úrovně Basic na skladovou položku Standard a upgradujte load Balancer i veřejné IP adresy současně.

  • Virtuální počítače bez skupiny zabezpečení sítě: Virtuální počítače s IP adresami, které se mají upgradovat, musí mít přidruženou skupinu zabezpečení sítě (NSG) přidruženou buď k podsíti každé konfigurace PROTOKOLU IP s veřejnou IP adresou, nebo přímo s síťovým rozhraním. Je to proto, že veřejné IP adresy standardní skladové položky jsou ve výchozím nastavení "zabezpečené", což znamená, že veškerý provoz do veřejné IP adresy musí být explicitně povolený v NSG, aby se mohl připojit k virtuálnímu počítači. Veřejné IP adresy skladové položky úrovně Basic umožňují ve výchozím nastavení jakýkoli provoz. Upgrade skladových položek veřejných IP adres bez skupiny zabezpečení sítě by vedlo k tomu, že příchozí internetový provoz do veřejné IP adresy byl dříve povolen s blokovanou skladovou jednotkou Basic po migraci. Viz: Skladové položky veřejných IP adres

  • Škálovací sady virtuálních počítačů s konfiguracemi veřejných IP adres: Pokud máte škálovací sadu virtuálních počítačů (jednotný model) s konfiguracemi veřejných IP adres pro každou instanci, mějte na paměti, že tyto konfigurace nejsou prostředky veřejné IP adresy a proto není možné je upgradovat. Místo toho můžete odebrat konfiguraci základní IP adresy a pomocí vlastnosti skladové položky určit, že pro každou instanci škálovací sady virtuálních počítačů jsou vyžadovány standardní konfigurace IP, jak je znázorněno zde.

Předpoklady

  • Instalace nejnovější verze PowerShellu
  • Ujistěte se, jestli máte nainstalovaný nejnovější modul Az PowerShellu (a pokud ne, nainstalujte nejnovější modul Az PowerShellu).

Stažení skriptu

Stáhněte skript pro migraci z Galerie prostředí PowerShell.

PS C:\> Install-Module -Name AzureVMPublicIPUpgrade -Scope CurrentUser -Repository PSGallery -Force

Použití modulu

  1. Slouží Connect-AzAccount k připojení k požadovanému tenantovi Microsoft Entra a předplatnému Azure.

    PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
    
  2. Vyhledejte virtuální počítač s připojenými veřejnými IP adresami úrovně Basic, které chcete upgradovat. Poznamenejte si název skupiny prostředků a název skupiny prostředků.

  3. Prozkoumejte parametry modulu:

    • VMName [string] Povinný argument – tento parametr je název vašeho virtuálního počítače.
    • ResourceGroupName [řetězec] Povinný argument – tento parametr je skupina prostředků pro váš virtuální počítač s připojenými veřejnými IP adresami úrovně Basic, které chcete upgradovat.
  4. Spusťte příkaz Upgrade.

Příklad použití skriptu

Pokud chcete upgradovat jeden virtuální počítač, předejte název virtuálního počítače a název skupiny prostředků jako parametry.

    Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG'

Pokud chcete vyhodnotit upgrade jednoho virtuálního počítače bez provedení změn, přidejte parametr -WhatIf.

    Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG' -WhatIf

Pokud chcete upgradovat všechny virtuální počítače ve skupině prostředků, přeskočení virtuálních počítačů, které nemají skupiny zabezpečení sítě.

    Get-AzVM -ResourceGroupName 'myRG' | Start-VMPublicIPUpgrade -skipVMMissingNSG

Obnovení z neúspěšné migrace

Pokud migrace selže kvůli přechodnému problému, jako je výpadek sítě nebo problém s klientským systémem, je možné migraci znovu spustit a nakonfigurovat virtuální počítač a veřejné IP adresy v cílovém stavu. Při spuštění skript vypíše soubor protokolu obnovení, který slouží k zajištění správného překonfigurování virtuálního počítače. Zkontrolujte soubor PublicIPUpgrade.log protokolu vytvořený v umístění, kde byl skript proveden.

Pokud se chcete zotavit z neúspěšného upgradu, předejte do skriptu cestu k souboru protokolu obnovení s parametrem -recoverFromFile a identifikujte virtuální počítač, který se má obnovit pomocí -VMName parametrů a a -VMResourceGroup nebo -VMResourceID jak je znázorněno v tomto příkladu.

    Start-VMPublicIPUpgrade -RecoverFromFile ./PublicIPUpgrade_Recovery_2020-01-01-00-00.csv -VMName myVM -VMResourceGroup -rg-myrg

Časté dotazy

Jak dlouho bude migrace trvat a jak dlouho bude můj virtuální počítač nedostupný na jeho veřejné IP adrese?

Doba potřebnou k upgradu veřejných IP adres virtuálního počítače závisí na počtu veřejných IP adres a síťových rozhraní přidružených k virtuálnímu počítači. Při testování trvá upgrade virtuálního počítače s jednou síťovou kartou a veřejnou IP adresou mezi 1 a 2 minutami. Každá síťová karta na virtuálním počítači přidá přibližně další minutu a každá veřejná IP adresa přidá několik sekund.

Můžu se vrátit k veřejné IP adrese skladové položky Basic?

Veřejnou IP adresu není možné downgradovat ze standardu na Basic.

Můžu před provedením otestovat migraci?

Neexistuje způsob, jak vyhodnotit upgrade veřejné IP adresy bez dokončení akce. Tento skript ale obsahuje -whatif parametr, který zkontroluje, že váš virtuální počítač bude podporovat upgrade, a provede kroky bez provedení akce.

Podporuje skript veřejné IP adresy skladové položky úrovně Zonal Basic?

Ano, proces upgradu veřejné IP adresy skladové položky úrovně Zonal Basic na veřejnou IP adresu skladové položky úrovně Zonal Standard je stejný a funguje ve skriptu.

Zobrazení seznamu virtuálních počítačů s veřejnými IP adresami vyžadujícími upgrade pomocí Resource Graphu

Dotaz na výpis virtuálních počítačů s veřejnými IP adresami skladové položky Basic

Tento dotaz vrátí seznam ID virtuálních počítačů s připojenými veřejnými IP adresami skladové položky Basic.

Resources
| where type =~ 'microsoft.compute/virtualmachines'
| project vmId = tolower(id), vmNics = properties.networkProfile.networkInterfaces
| join (
  Resources |
  where type =~ 'microsoft.network/networkinterfaces' |
  project nicVMId = tolower(tostring(properties.virtualMachine.id)), allVMNicID = tolower(id), nicIPConfigs = properties.ipConfigurations)
  on $left.vmId == $right.nicVMId
| join (
  Resources
  | where type =~ 'microsoft.network/publicipaddresses' and isnotnull(properties.ipConfiguration.id)
  | where sku.name == 'Basic' // exclude to find all VMs with Public IPs
  | project pipId = id, pipSku = sku.name, pipAssociatedNicId = tolower(tostring(split(properties.ipConfiguration.id, '/ipConfigurations/')[0])))
  on $left.allVMNicID == $right.pipAssociatedNicId
| project vmId, pipId, pipSku
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' | project vmId = tolower(id), vmNics = properties.networkProfile.networkInterfaces | join (Resources | where type =~ 'microsoft.network/networkinterfaces' | project nicVMId = tolower(tostring(properties.virtualMachine.id)), allVMNicID = tolower(id), nicIPConfigs = properties.ipConfigurations) on \$left.vmId == \$right.nicVMId | join ( Resources | where type =~ 'microsoft.network/publicipaddresses' and isnotnull(properties.ipConfiguration.id) | where sku.name == 'Basic' | project pipId = id, pipSku = sku.name, pipAssociatedNicId = tolower(tostring(split(properties.ipConfiguration.id, '/ipConfigurations/')[0]))) on \$left.allVMNicID == \$right.pipAssociatedNicId | project vmId, pipId, pipSku"

Další kroky