VM'ye eklenmiş genel IP adreslerini Temel'den Standart'a yükseltme
Önemli
30 Eylül 2025'te Temel SKU genel IP'leri kullanımdan kaldırılacaktır. Daha fazla bilgi için resmi duyuruya bakın. Şu anda Temel SKU genel IP'lerini kullanıyorsanız, kullanımdan kaldırma tarihinden önce Standart SKU genel IP'lerine yükseltmeyi unutmayın. Bu makale, yükseltme işleminde size yol gösterir.
Temel SKU Genel IP'lerinin kullanımdan kaldırılması ve Standart SKU Genel IP'lerinin avantajları hakkında daha fazla bilgi için buraya bakın
Yükseltmeye genel bakış
Bu betik, VM'ye eklenen tüm Genel IP Adreslerini Temel SKU'dan Standart SKU'ya yükselter. Yükseltmeyi gerçekleştirmek için Genel IP Adresi ayırma yöntemi VM ile ilişkilendirilmeden önce statik olarak ayarlanır. İlişkisi kaldırıldıktan sonra Genel IP SKU'su Standart'a yükseltilir, ardından IP VM ile yeniden ilişkilendirilir.
Vm'den ayrılmadan önce Genel IP ayırma 'Statik' olarak ayarlandığından, bir betik hatası durumunda bile yükseltme işlemi sırasında IP adresi değişmez. Modül, Genel IP ayırma yöntemini VM'den ayırmadan önce Genel IP ayırma yönteminin 'Statik' olup olmadığını iki kez denetler.
Modül, tüm yükseltme etkinliğini, modülün yürütüldüğü konumda (varsayılan olarak) oluşturulan adlı PublicIPUpgrade.log
bir dosyaya günlüğe kaydeder.
Kısıtlamalar/ Desteklenmeyen Senaryolar
Yük Dengeleyici ile ilişkilendirilmiş NIC'lere sahip VM'ler: Bir VM ile ilişkilendirilmiş Load Balancer ve Genel IP SKU'larının eşleşmesi gerektiğinden, VM'nin NIC'leri arka uç havuzu veya NAT Havuzu üyeliği aracılığıyla da bir Load Balancer ile ilişkilendirildiğinde vm ile ilişkili örnek düzeyi Genel IP adreslerini yükseltmek mümkün değildir. Hem Load Balancer'ı hem de Genel IP'leri aynı anda yükseltmek için Temel Yük Dengeleyiciyi Standart SKU'ya Yükselt betiklerini kullanın.
Ağ Güvenlik Grubu olmayan VM'ler: Yükseltilecek IP'leri olan VM'lerde, genel IP ile her IP yapılandırmasının alt ağıyla veya doğrudan NIC ile ilişkilendirilmiş bir Ağ Güvenlik Grubu (NSG) olmalıdır. Bunun nedeni Standart SKU Genel IP'lerinin "varsayılan olarak güvenli" olmasıdır. Bu, Genel IP'ye yönelik trafiğin VM'ye ulaşması için bir NSG'de açıkça izin verilmelidir. Temel SKU Genel IP'leri varsayılan olarak tüm trafiğe izin verir. NSG olmadan Genel IP SKU'larının yükseltilmesi, geçiş sonrasında Temel SKU'nun engellenmesiyle önceden izin verilen Genel IP'ye gelen İnternet trafiğine neden olur. Bkz. Genel IP SKU'ları
Genel IP yapılandırmalarıyla Sanal Makine Ölçek Kümeleri: Örnek başına genel IP yapılandırmalarına sahip bir sanal makine ölçek kümeniz (tekdüzen model) varsa, bu yapılandırmaların Genel IP kaynakları olmadığını ve yükseltilemeyeceğini unutmayın. Bunun yerine Temel IP yapılandırmasını kaldırabilir ve SKU özelliğini kullanarak burada gösterildiği gibi her sanal makine ölçek kümesi örneği için Standart IP yapılandırmalarının gerekli olduğunu belirtebilirsiniz.
Önkoşullar
- PowerShell'in en son sürümünü yükleme
- En son Az PowerShell modülünün yüklü olup olmadığından emin olun (ve yüklü değilse en son Az PowerShell modülünü yükleyin)
Betiği indirme
geçiş betiğini PowerShell Galerisi indirin.
PS C:\> Install-Module -Name AzureVMPublicIPUpgrade -Scope CurrentUser -Repository PSGallery -Force
Modülü kullanma
Gerekli Microsoft Entra kiracısına ve Azure aboneliğine bağlanmak için kullanın
Connect-AzAccount
PS C:\> Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId>
Yükseltmek istediğiniz ekli Temel Genel IP'leri içeren VM'yi bulun. Adını ve kaynak grubu adını kaydedin.
Modül parametrelerini inceleyin:
- VMName [string] Gerekli - Bu parametre VM'nizin adıdır.
- ResourceGroupName [string] Gerekli - Bu parametre, yükseltmek istediğiniz Temel Genel IP'lerin eklendiği VM'nizin kaynak grubudur.
Yükselt komutunu çalıştırın.
Betiğin örnek kullanımları
Tek bir VM'yi yükseltmek için VM adını ve kaynak grubu adını parametre olarak geçirin.
Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG'
Herhangi bir değişiklik yapmadan tek bir VM'yi yükseltmeyi değerlendirmek için -WhatIf parametresini ekleyin.
Start-VMPublicIPUpgrade -VMName 'myVM' -ResourceGroupName 'myRG' -WhatIf
Bir kaynak grubundaki tüm VM'leri yükseltmek için, Ağ Güvenlik Grupları olmayan VM'leri atlayın.
Get-AzVM -ResourceGroupName 'myRG' | Start-VMPublicIPUpgrade -skipVMMissingNSG
Başarısız bir geçişten kurtarma
Ağ kesintisi veya istemci sistemi sorunu gibi geçici bir sorun nedeniyle geçiş başarısız olursa, vm'yi ve Genel IP'leri hedef durumunda yapılandırmak için geçiş yeniden çalıştırılabilir. Yürütme sırasında betik, VM'nin düzgün bir şekilde yeniden yapılandırıldığından emin olmak için kullanılan bir kurtarma günlüğü dosyası oluşturur. Betiğin yürütüldüğü konumda oluşturulan günlük dosyasını PublicIPUpgrade.log
gözden geçirin.
Başarısız bir yükseltmeden kurtarmak için, kurtarma günlüğü dosya yolunu parametresiyle -recoverFromFile
betike geçirin ve bu örnekte gösterildiği gibi ve -VMResourceGroup
veya -VMResourceID
parametreleriyle -VMName
kurtarılması gereken VM'yi belirleyin.
Start-VMPublicIPUpgrade -RecoverFromFile ./PublicIPUpgrade_Recovery_2020-01-01-00-00.csv -VMName myVM -VMResourceGroup -rg-myrg
Sık sorulan sorular
Geçiş ne kadar sürer ve SANAL makineme Genel IP'sinde ne kadar süreyle erişilemez olacak?
Vm'nin Genel IP'lerini yükseltmek için gereken süre, VM ile ilişkilendirilmiş Genel IP'lerin ve Ağ Arabirimlerinin sayısına bağlıdır. Testte, tek bir NIC ve Genel IP'ye sahip bir VM'nin yükselt gelmesi 1 ila 2 dakika arasında sürer. SANAL makinedeki her NIC yaklaşık bir dakika daha ekler ve her Genel IP'nin her biri birkaç saniye ekler.
Temel SKU Genel IP'sine geri dönebilir miyim?
Genel IP adresini Standart'tan Temel'e düşürmek mümkün değildir.
Yürütmeden önce geçişi test edebilir miyim?
Eylemi tamamlamadan Genel IP'yi yükseltmeyi değerlendirmenin hiçbir yolu yoktur. Ancak bu betik, VM'nizin yükseltmeyi destekleyip desteklemediğini denetleyen ve işlem yapmadan adım adım ilerleten bir -whatif
parametre içerir.
Betik, Bölgesel Temel SKU Genel IP'lerini destekliyor mu?
Evet, Bölgesel Temel SKU Genel IP'sini Bölgesel Standart SKU Genel IP'ye yükseltme işlemi aynıdır ve betikte çalışır.
Yükseltme gerektiren Genel IP'lere sahip VM'leri listelemek için Kaynak Grafı kullanın
Temel SKU genel IP adresleriyle sanal makineleri listelemek için sorgulama
Bu sorgu, Temel SKU genel IP adreslerinin eklendiği sanal makine kimliklerinin listesini döndürür.
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"