A virtuális géphez csatolt nyilvános IP-címek frissítése alapszintűről standardra

Fontos

2025. szeptember 30-án az alapszintű termékváltozat nyilvános IP-címeit kivonjuk. For more information, see the official announcement. Ha jelenleg alapszintű termékváltozatú nyilvános IP-címeket használ, a kivonási dátum előtt frissítsen standard termékváltozatú nyilvános IP-címekre. Ez a cikk végigvezeti a frissítési folyamaton.

Az alapszintű termékváltozat nyilvános IP-címeinek kivonásáról és a standard termékváltozatú nyilvános IP-címek előnyeiről itt talál további információt

Frissítés áttekintése

Ez a szkript frissíti a virtuális géphez csatolt nyilvános IP-címeket az alapszintűről a standard termékváltozatra. A frissítés végrehajtásához a nyilvános IP-cím kiosztási módszere statikusra van állítva, mielőtt leválasztanák a virtuális gépről. A társítás megszüntetése után a nyilvános IP-cím termékváltozata standardra frissül, majd az IP-cím újra lesz társítva a virtuális géppel.

Mivel a nyilvános IP-kiosztás "Statikus" értékre van állítva a virtuális gépről való leválasztás előtt, az IP-cím nem változik a frissítési folyamat során, még szkripthiba esetén sem. A modul kétszer ellenőrzi, hogy a nyilvános IP-foglalási módszer "Statikus"-e, mielőtt leválasztja a nyilvános IP-címet a virtuális gépről.

A modul naplózza az összes frissítési tevékenységet egy, a modul végrehajtásának helyén (alapértelmezés szerint) létrehozott fájlra PublicIPUpgrade.log.

Korlátozások/ Nem támogatott forgatókönyvek

  • Terheléselosztóhoz társított hálózati adapterekkel rendelkező virtuális gépek: Mivel a virtuális géphez társított Terheléselosztónak és nyilvános IP-termékváltozatoknak egyeznie kell, nem lehet frissíteni a virtuális géphez társított példányszintű nyilvános IP-címeket, ha a virtuális gép hálózati adapterei szintén terheléselosztóhoz vannak társítva, akár háttérkészleten, akár NAT-készlet tagságon keresztül. Az alapszintű Load Balancer frissítése standard termékváltozatra a szkriptekkel egyszerre frissítheti a Load Balancert és a nyilvános IP-címeket is.

  • Hálózati biztonsági csoport nélküli virtuális gépek: A frissíteni kívánt IP-címmel rendelkező virtuális gépekhez hálózati biztonsági csoport (NSG) kell tartoznia, amely az egyes IP-konfigurációk alhálózatához tartozik egy nyilvános IP-címmel, vagy közvetlenül a hálózati adapterrel. Ennek az az oka, hogy a standard termékváltozat nyilvános IP-címei alapértelmezés szerint "biztonságosak", ami azt jelenti, hogy a nyilvános IP-címre történő összes forgalmat explicit módon engedélyezni kell egy NSG-n a virtuális gép eléréséhez. Az alapszintű nyilvános termékváltozatok alapértelmezés szerint engedélyezik a forgalmat. A nyilvános IP-termékváltozatok NSG nélküli frissítése a korábban engedélyezett nyilvános IP-címre irányuló bejövő internetes forgalmat eredményezne, ha az alapszintű termékváltozat le lenne tiltva a migrálás után. Lásd: Nyilvános IP-termékváltozatok

  • Virtuálisgép-méretezési csoportok nyilvános IP-konfigurációkkal: Ha egy virtuálisgép-méretezési csoport (egységes modell) nyilvános IP-konfigurációkkal rendelkezik példányonként, vegye figyelembe, hogy ezek a konfigurációk nem nyilvános IP-erőforrások, ezért nem frissíthetők. Ehelyett eltávolíthatja az alapszintű IP-konfigurációt, és a termékváltozat tulajdonság használatával megadhatja, hogy a virtuálisgép-méretezési csoport egyes példányaihoz standard IP-konfigurációk szükségesek az itt látható módon.

Előfeltételek

  • A PowerShell legújabb verziójának telepítése
  • Győződjön meg arról, hogy telepítve van-e a legújabb Az PowerShell-modul (és ha nem, telepítse a legújabb Az PowerShell-modult )

A szkript letöltése

Töltse le a migrálási szkriptet a PowerShell-galéria.

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

A modul használata

  1. Csatlakozás Connect-AzAccount a szükséges Microsoft Entra-bérlőhöz és Azure-előfizetéshez

    PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
    
  2. Keresse meg a frissíteni kívánt, csatolt egyszerű nyilvános IP-címekkel rendelkező virtuális gépet. Jegyezze fel a nevét és az erőforráscsoport nevét.

  3. Vizsgálja meg a modul paramétereit:

    • VMName [string] Kötelező – Ez a paraméter a virtuális gép neve.
    • ResourceGroupName [string] Kötelező megadni – Ez a paraméter a frissíteni kívánt egyszerű nyilvános IP-címekkel rendelkező virtuális gép erőforráscsoportja.
  4. Futtassa a Frissítés parancsot.

Példa a szkript használatára

Egyetlen virtuális gép frissítéséhez adja meg a virtuális gép nevét és az erőforráscsoport nevét paraméterekként.

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

Ha egyetlen virtuális gép frissítését szeretné kiértékelni módosítás nélkül, adja hozzá a -WhatIf paramétert.

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

Egy erőforráscsoport összes virtuális gépének frissítéséhez hagyja ki a hálózati biztonsági csoportokkal nem rendelkező virtuális gépeket.

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

Helyreállítás sikertelen migrálásból

Ha a migrálás átmeneti probléma, például hálózati kimaradás vagy ügyfélrendszer-probléma miatt meghiúsul, az áttelepítés újra futtatható a virtuális gép és a nyilvános IP-címek célállapotban való konfigurálásához. A végrehajtáskor a szkript egy helyreállítási naplófájlt ad ki, amely biztosítja a virtuális gép megfelelő újrakonfigurálását. Tekintse át a szkript végrehajtásának helyén létrehozott naplófájlt PublicIPUpgrade.log .

Sikertelen frissítésből való helyreállításhoz adja át a helyreállítási naplófájl elérési útját a szkriptnek a -recoverFromFile paraméterrel, és azonosítsa a helyreállítani kívánt virtuális gépet az és -VMResourceID-VMResourceGroup a paraméterekkel, ahogyan az ebben a -VMName példában látható.

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

Common questions

Mennyi ideig tart a migrálás, és mennyi ideig lesz elérhetetlen a virtuális gépem a nyilvános IP-címén?

A virtuális gép nyilvános IP-címeinek frissítéséhez szükséges idő a virtuális géphez társított nyilvános IP-címek és hálózati adapterek számától függ. A tesztelés során egy egyetlen hálózati adapterrel és nyilvános IP-címmel rendelkező virtuális gép frissítése 1–2 percet vesz igénybe. A virtuális gép minden hálózati adaptere körülbelül egy percet ad hozzá, és minden nyilvános IP-cím hozzáad néhány másodpercet.

Visszaállíthatom az alapszintű termékváltozat nyilvános IP-címét?

Nem lehet leminősíteni egy nyilvános IP-címet Standardról Alapszintűre.

Tesztelhetem a migrálást a végrehajtás előtt?

A művelet végrehajtása nélkül nem lehet kiértékelni a nyilvános IP-cím frissítését. Ez a szkript azonban tartalmaz egy paramétert -whatif , amely ellenőrzi, hogy a virtuális gép támogatja-e a frissítést, és művelet nélkül végigvezeti a lépéseket.

Támogatja a szkript a Zonal Basic termékváltozat nyilvános IP-címeit?

Igen, a Zonal Basic termékváltozat nyilvános IP-címének Zonal Standard termékváltozat nyilvános IP-címre való frissítésének folyamata azonos, és a szkriptben működik.

A Resource Graph használatával listázhatja a frissítést igénylő nyilvános IP-címekkel rendelkező virtuális gépeket

Lekérdezés a nyilvános alapszintű termékváltozattal rendelkező virtuális gépek listázásához

Ez a lekérdezés a virtuálisgép-azonosítók listáját adja vissza, amelyhez egyszerű termékváltozat nyilvános IP-címek vannak csatolva.

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"

Következő lépések