Uaktualnianie publicznych adresów IP dołączonych do maszyny wirtualnej z warstwy Podstawowa do warstwy Standardowa

Ważne

30 września 2025 r. publiczne adresy IP jednostek SKU w warstwie Podstawowa zostaną wycofane. Więcej informacji znajdziesz w oficjalnym ogłoszeniu. Jeśli obecnie używasz publicznych adresów IP jednostki SKU w warstwie Podstawowa, pamiętaj o uaktualnieniu do publicznych adresów IP jednostki SKU w warstwie Standardowa przed datą wycofania. Ten artykuł pomoże Ci przejść przez proces uaktualniania.

Aby uzyskać więcej informacji na temat wycofywania publicznych adresów IP jednostki SKU w warstwie Podstawowa i korzyści z publicznych adresów IP jednostki SKU w warstwie Standardowa, zobacz tutaj

Omówienie uaktualnienia

Ten skrypt uaktualnia wszystkie publiczne adresy IP dołączone do maszyny wirtualnej z jednostki SKU w warstwie Podstawowa do Standardowa. Aby przeprowadzić uaktualnienie, metoda alokacji publicznego adresu IP jest ustawiona na statyczną przed odłączaniem od maszyny wirtualnej. Po usunięciu skojarzenia jednostka SKU publicznego adresu IP zostanie uaktualniona do warstwy Standardowa, a następnie adres IP zostanie ponownie skojarzony z maszyną wirtualną.

Ponieważ alokacja publicznego adresu IP jest ustawiona na "Statyczny" przed odłączeniem od maszyny wirtualnej, adres IP nie zmieni się podczas procesu uaktualniania, nawet w przypadku niepowodzenia skryptu. Moduł sprawdza dwukrotnie, czy metoda alokacji publicznego adresu IP jest "Statyczna" przed odłączenie publicznego adresu IP z maszyny wirtualnej.

Moduł rejestruje wszystkie działania uaktualniania do pliku o nazwie PublicIPUpgrade.log, utworzonego w tej samej lokalizacji, w której moduł został wykonany (domyślnie).

Ograniczenia/ nieobsługiwane scenariusze

  • Maszyny wirtualne z kartami sieciowymi skojarzonymi z modułem równoważenia obciążenia: ponieważ moduł równoważenia obciążenia i jednostki SKU publicznych adresów IP skojarzonych z maszyną wirtualną muszą być zgodne, nie można uaktualnić publicznych adresów IP na poziomie wystąpienia skojarzonych z maszyną wirtualną, gdy karty sieciowe maszyny wirtualnej są również skojarzone z modułem równoważenia obciążenia za pośrednictwem członkostwa w puli zaplecza lub puli translatora adresów sieciowych. Użyj skryptów Uaktualnij podstawowy moduł równoważenia obciążenia do jednostki SKU w warstwie Standardowa, aby uaktualnić zarówno usługę Load Balancer, jak i publiczne adresy IP w tym samym czasie.

  • Maszyny wirtualne bez sieciowej grupy zabezpieczeń: maszyny wirtualne z adresami IP do uaktualnienia muszą mieć sieciową grupę zabezpieczeń skojarzona z podsiecią każdej konfiguracji adresu IP z publicznym adresem IP lub bezpośrednio z kartą sieciową. Dzieje się tak, ponieważ publiczne adresy IP jednostki SKU w warstwie Standardowa są domyślnie bezpieczne, co oznacza, że każdy ruch do publicznego adresu IP musi być jawnie dozwolony w sieciowej grupie zabezpieczeń, aby uzyskać dostęp do maszyny wirtualnej. Publiczne adresy IP jednostek SKU w warstwie Podstawowa domyślnie zezwalają na ruch. Uaktualnienie publicznych jednostek SKU adresów IP bez sieciowej grupy zabezpieczeń spowodowałoby przychodzący ruch internetowy do publicznego adresu IP, który był wcześniej dozwolony z zablokowaną jednostką SKU w warstwie Podstawowa po migracji. Zobacz: Jednostki SKU publicznych adresów IP

  • Zestawy skalowania maszyn wirtualnych z konfiguracjami publicznych adresów IP: jeśli masz zestaw skalowania maszyn wirtualnych (jednolity model) z konfiguracjami publicznych adresów IP na wystąpienie, pamiętaj, że te konfiguracje nie są zasobami publicznego adresu IP i jako takie nie można uaktualnić. Zamiast tego można usunąć konfigurację podstawowego adresu IP i użyć właściwości jednostki SKU, aby określić, że konfiguracje adresów IP w warstwie Standardowa są wymagane dla każdego wystąpienia zestawu skalowania maszyn wirtualnych, jak pokazano tutaj.

Wymagania wstępne

  • Instalowanie najnowszej wersji programu PowerShell
  • Upewnij się, że masz zainstalowany najnowszy moduł Az programu PowerShell (i zainstaluj najnowszy moduł Az programu PowerShell, jeśli nie)

Pobieranie skryptu

Pobierz skrypt migracji z Galeria programu PowerShell.

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

Korzystanie z modułu

  1. Użyj Connect-AzAccount polecenia , aby nawiązać połączenie z wymaganą dzierżawą firmy Microsoft Entra i subskrypcją platformy Azure

    PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
    
  2. Znajdź maszynę wirtualną z dołączonymi podstawowymi publicznymi adresami IP, które chcesz uaktualnić. Zarejestruj swoją nazwę i nazwę grupy zasobów.

  3. Sprawdź parametry modułu:

    • VmName [ciąg] Wymagane — ten parametr jest nazwą maszyny wirtualnej.
    • Wymagany parametr ResourceGroupName [ciąg] — ten parametr jest grupą zasobów maszyny wirtualnej z dołączonymi podstawowymi publicznymi adresami IP, które chcesz uaktualnić.
  4. Uruchom polecenie Uaktualnij.

Przykładowe zastosowania skryptu

Aby uaktualnić pojedynczą maszynę wirtualną, przekaż nazwę maszyny wirtualnej i nazwę grupy zasobów jako parametry.

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

Aby ocenić uaktualnienie pojedynczej maszyny wirtualnej, bez wprowadzania żadnych zmian dodaj parametr -WhatIf.

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

Aby uaktualnić wszystkie maszyny wirtualne w grupie zasobów, pomiń maszyny wirtualne, które nie mają sieciowych grup zabezpieczeń.

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

Odzyskiwanie po nieudanej migracji

Jeśli migracja nie powiedzie się z powodu przejściowego problemu, takiego jak awaria sieci lub problem z systemem klienta, migracja może zostać ponownie uruchomiona, aby skonfigurować maszynę wirtualną i publiczne adresy IP w stanie celu. Podczas wykonywania skrypt generuje plik dziennika odzyskiwania, który jest używany do zapewnienia prawidłowego ponownego skonfigurowania maszyny wirtualnej. Przejrzyj plik PublicIPUpgrade.log dziennika utworzony w lokalizacji, w której został wykonany skrypt.

Aby odzyskać dane po nieudanym uaktualnieniu, przekaż ścieżkę pliku dziennika odzyskiwania do skryptu za pomocą -recoverFromFile parametru i i i zidentyfikuj maszynę wirtualną do odzyskania -VMName przy użyciu parametrów i -VMResourceGroup lub -VMResourceID , jak pokazano w tym przykładzie.

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

Często zadawane pytania

Jak długo będzie trwać migracja i jak długo moja maszyna wirtualna będzie niedostępna w publicznym adresie IP?

Czas potrzebny na uaktualnienie publicznych adresów IP maszyny wirtualnej zależy od liczby publicznych adresów IP i interfejsów sieciowych skojarzonych z maszyną wirtualną. Podczas testowania uaktualnienie maszyny wirtualnej z pojedynczą kartą sieciową i publicznym adresem IP trwa od 1 do 2 minut. Każda karta sieciowa na maszynie wirtualnej dodaje około kolejnej minuty, a każdy publiczny adres IP dodaje kilka sekund.

Czy mogę przywrócić publiczny adres IP jednostki SKU w warstwie Podstawowa?

Nie można obniżyć poziomu publicznego adresu IP z warstwy Standardowa na Podstawowa.

Czy mogę przetestować migrację przed wykonaniem?

Nie ma możliwości oceny uaktualnienia publicznego adresu IP bez ukończenia akcji. Jednak ten skrypt zawiera -whatif parametr, który sprawdza, czy maszyna wirtualna będzie obsługiwać uaktualnienie i przechodzi przez kroki bez podejmowania akcji.

Czy skrypt obsługuje publiczne adresy IP jednostek SKU strefowych w warstwie Podstawowa?

Tak, proces uaktualniania publicznego adresu IP jednostki SKU strefowej w warstwie Zonal do publicznego adresu IP jednostki SKU w warstwie Standardowa jest identyczny i działa w skrypcie.

Używanie usługi Resource Graph do wyświetlania listy maszyn wirtualnych z publicznymi adresami IP wymagającymi uaktualnienia

Wykonywanie zapytań dotyczących wyświetlania listy maszyn wirtualnych z publicznymi adresami IP jednostki SKU w warstwie Podstawowa

To zapytanie zwraca listę identyfikatorów maszyn wirtualnych z dołączonymi publicznymi adresami IP jednostki SKU w warstwie Podstawowa.

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"

Następne kroki