Öğretici: Azure PowerShell ile sanal makine ölçek kümesi oluşturma ve yönetme
Uygulama: ✔️ Linux VM'leri ✔️ Windows VM'ler ✔️ Tekdüz ölçek kümeleri
Sanal makine ölçek kümesi, birbiriyle aynı ve otomatik olarak ölçeklendirilen sanal makine kümesi dağıtmanızı ve yönetmenizi sağlar. Sanal makine ölçek kümesinin yaşam döngüsü boyunca bir veya daha fazla yönetim görevi çalıştırmanız gerekebilir. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:
- Sanal makine ölçek kümesi oluşturma ve sanal makine ölçek kümesine bağlanma
- VM görüntülerini seçme ve kullanma
- Belirli sanal makine örneği boyutlarını görüntüleme ve kullanma
- Ölçek kümesini el ile ölçeklendirme
- Genel ölçek kümesi yönetim görevlerini gerçekleştirme
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure Cloud Shell kullanma
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell’i barındırır. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell’in önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell’i başlatmak için:
| Seçenek | Örnek/Bağlantı |
|---|---|
| Kod bloğunun sağ üst köşesindeki Deneyin’i seçin. Deneyin seçeneği belirlendiğinde, kod otomatik olarak Cloud Shell’e kopyalanmaz. | ![]() |
| Cloud Shell’i tarayıcınızda açmak için https://shell.azure.com bölümüne gidin veya Cloud Shell’i Başlat düğmesini seçin. | ![]() |
| Azure portalın sağ üst köşesindeki menü çubuğunda yer alan Cloud Shell düğmesini seçin. | ![]() |
Azure Cloud Shell’de bu makaledeki kodu çalıştırmak için:
Cloud Shell’i başlatın.
Kodu kopyalamak için kod bloğunda Kopyala düğmesini seçin.
Windows ve Linux sisteminde Ctrl+Shift+V tuşlarını kullanarak veya macOS’de Cmd+Shift+V tuşlarını kullanarak kodu Cloud Shell oturumuna yapıştırın.
Kodu çalıştırmak için Enter tuşuna basın.
Kaynak grubu oluşturma
Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Sanal makine ölçek kümesinden önce kaynak grubu oluşturulmalıdır. New-AzResourceGroup komutuyla bir kaynak grubu oluşturun. Bu örnekte EastUS bölgesinde myResourceGroup adlı bir kaynak grubu oluşturulur.
New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"
Bu öğreticide bir ölçek kümesi oluşturduğunuzda veya değiştirdiğinizde kaynak grubu adı belirtilir.
Ölçek kümesi oluşturma
İlk olarak, VM örnekleri için Get-Credential ile bir yönetici kullanıcı adı ve parola ayarlayın:
$cred = Get-Credential
Şimdi New-AzVmss ile bir sanal makine ölçek kümesi oluşturun. Her bir sanal makine örneklerine trafiği dağıtmak için bir yük dengeleyici de oluşturulur. Yük dengeleyici hem TCP bağlantı noktası 80 üzerinden trafiği dağıtmak hem de TCP bağlantı noktası 3389 üzerinden uzak masaüstü trafiğine hem de TCP bağlantı noktası 5985 üzerinden PowerShell uzaktan iletişimine olanak tanımak için kurallar içerir:
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-Location "EastUS" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-Credential $cred
Tüm ölçek kümesi kaynaklarının ve sanal makine örneklerinin oluşturulup yapılandırılması birkaç dakika sürer.
Önemli
Ölçek kümenize bağlanamıyorsanız , -SecurityGroupName "mySecurityGroup" parametresini ekleyerek bir Ağ Güvenlik Grubu oluşturmanız gerekir.
Bir ölçek kümesindeki sanal makine örneklerini görüntüleme
Bir ölçek kümesinde VM örneklerinin listesini görüntülemek için Get-AzVmssVM'yi aşağıdaki gibi kullanın:
Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Aşağıdaki örnek çıktı, ölçek kümesindeki iki sanal makine örneğini göstermektedir:
ResourceGroupName Name Location Sku InstanceID ProvisioningState
----------------- ---- -------- --- ---------- -----------------
MYRESOURCEGROUP myScaleSet_0 eastus Standard_DS1_v2 0 Succeeded
MYRESOURCEGROUP myScaleSet_1 eastus Standard_DS1_v2 1 Succeeded
Belirli bir VM örneği hakkında ek bilgileri görüntülemek için -InstanceId Get-AzVmssVM parametresini ekleyin. Aşağıdaki örnekte, 1 sanal makine örneğiyle ilgili bilgiler görüntülenmektedir:
Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"
Bağlantı bilgilerini listeleme
Tek tek sanal makine örneklerine trafiği yönlendiren yük dengeleyiciye genel bir IP adresi atanır. Varsayılan olarak, belirtilen bir bağlantı noktasındaki her bir sanal makineye uzaktan bağlantı trafiğini ileten Azure Load Balancer’a Ağ Adresi Çevirisi (NAT) kuralları eklenir. Bir ölçek kümesindeki sanal makine örneklerine bağlanmak için, atanan bir genel IP adresine ve bağlantı noktası numarasına uzaktan bağlantı oluşturursunuz.
Bir ölçek kümesinde SANAL makine örneklerine bağlanmak için NAT bağlantı noktalarını listele, önce Get-AzLoadBalancerile yük dengeleyici nesnesini al. Ardından Get-AzLoadBalancerInboundNatRuleConfigile gelen NAT kurallarını görüntüden yükleyin:
# Get the load balancer object
$lb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup" -Name "myLoadBalancer"
# View the list of inbound NAT rules
Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort
Aşağıdaki örnek çıktıda, yük dengeleyicinin genel IP adresi, örnek adı ve NAT kurallarının trafiği ilettiği bağlantı noktası numarası gösterilmektedir:
Name Protocol FrontendPort BackendPort
---- -------- ------------ -----------
myScaleSet3389.0 Tcp 50001 3389
myScaleSet5985.0 Tcp 51001 5985
myScaleSet3389.1 Tcp 50002 3389
myScaleSet5985.1 Tcp 51002 5985
Kuralın Adı, önceki bir Get-AzVmssVM komutunda gösterildiği gibi VM örneğinin adıyla hizalanır. Örneğin, sanal makine örneği 0'a bağlanmak için myScaleSet3389.0 kullanır ve 50001 numaralı bağlantı noktasına bağlanırsınız. Sanal makine örneği 1'e bağlanmak için, myScaleSet3389.1'den gelen değeri kullanın ve 50002 numaralı bağlantı noktasına bağlanın. PowerShell uzaktan iletişimini kullanmak için, TCP bağlantı noktası 5985 için uygun sanal makine örneği kuralına bağlanırsınız.
Get-AzPublicIpAddressile yük dengeleyicinin genel IP adresini görüntüleme:
Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" -Name "myPublicIPAddress" | Select IpAddress
Örnek çıktı:
IpAddress
---------
52.168.121.216
İlk sanal makine örneğinize bir uzak bağlantı oluşturun. Önceki komutlarda gösterildiği gibi, gerekli sanal makine örneği için genel IP adresinizi ve bağlantı noktası numaranızı belirtin. İstendiğinde, ölçek kümesi oluşturulduğunda kullanılan kimlik bilgilerini girin (örnek komutlarda varsayılan olarak azureuser ve P @ ssw0rd!). Azure Cloud Shell kullanıyorsanız, bu adımı yerel PowerShell isteminden veya Uzak Masaüstü İstemcisinden gerçekleştirin. Aşağıdaki örnek sanal makine örneği 1'e bağlanır:
mstsc /v 52.168.121.216:50001
Sanal makine örneğinde oturum açtıktan sonra, gerektiğinde bazı el ile yapılandırma değişiklikleri gerçekleştirebilirsiniz. Şimdilik, uzak bağlantıyı kapatın.
Sanal makine örneği görüntülerini anlama
Azure Market, VM örnekleri oluşturmak için kullanılan birçok görüntü içerir. Kullanılabilir yayımcıların listesini görmek için Get-AzVMImagePublisher komutunu kullanın.
Get-AzVMImagePublisher -Location "EastUS"
Bir yayımcının görüntü listesini görüntülemek için Get-AzVMImageSku kullanın. Görüntü listesi -PublisherName veya -Offer kullanılarak da filtrelenebilir. Aşağıdaki örnekte liste, yayımcı adı MicrosoftWindowsServer olan ve WindowsServer ile eşleşen bir teklifi bulunan tüm görüntüler için filtrelenmiştir:
Get-AzVMImageSku -Location "EastUS" -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer"
Aşağıdaki örneğin çıkışı, tüm kullanılabilir Windows Server görüntülerini gösterir:
Skus Offer PublisherName Location
---- ----- ------------- --------
2008-R2-SP1 WindowsServer MicrosoftWindowsServer eastus
2008-R2-SP1-smalldisk WindowsServer MicrosoftWindowsServer eastus
2012-Datacenter WindowsServer MicrosoftWindowsServer eastus
2012-Datacenter-smalldisk WindowsServer MicrosoftWindowsServer eastus
2012-R2-Datacenter WindowsServer MicrosoftWindowsServer eastus
2012-R2-Datacenter-smalldisk WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-Server-Core WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-Server-Core-smalldisk WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-smalldisk WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-with-Containers WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-with-RDSH WindowsServer MicrosoftWindowsServer eastus
2016-Nano-Server WindowsServer MicrosoftWindowsServer eastus
Öğreticinin başında bir ölçek kümesi oluşturduğunuzda, sanal makine örnekleri için varsayılan bir Windows Server 2016 DataCenter sanal makine görüntüsü sağlanmıştır. Get-AzVMImageSkuçıkışına göre farklı bir VM görüntüsü belirtebilirsiniz. Aşağıdaki örnek, MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest sanal makine görüntüsünü belirtmek için -ImageName parametresiyle bir ölçek kümesi oluşturabilir. Tüm ölçek kümesi kaynaklarının ve sanal makine örneklerinin oluşturulup yapılandırılması birkaç dakika süreceğinden, aşağıdaki ölçek kümesini dağıtmanız gerekmez:
New-AzVmss `
-ResourceGroupName "myResourceGroup2" `
-Location "EastUS" `
-VMScaleSetName "myScaleSet2" `
-VirtualNetworkName "myVnet2" `
-SubnetName "mySubnet2" `
-PublicIpAddressName "myPublicIPAddress2" `
-LoadBalancerName "myLoadBalancer2" `
-UpgradePolicyMode "Automatic" `
-ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
-Credential $cred
Önemli
En son görüntü sürümünün kullanılması önerilir. Dağıtım zamanında kullanılabilir bir görüntünün en son sürümünü kullanmak için 'latest' belirtin. 'Latest' kullansanız bile, yeni bir sürüm kullanılabilir olsa bile vm görüntüsü dağıtım zamanından sonra otomatik olarak güncelleştirilecek değildir.
Sanal makine örneği boyutlarını anlama
Sanal makine örneğinin boyutu veya SKU, sanal makine örneği tarafından kullanılabilen CPU, GPU ve bellek gibi işlem kaynaklarının miktarını belirler. Ölçek kümesindeki sanal makine örneklerinin beklenen iş yüküne uygun olarak boyutlandırılması gerekir.
Sanal makine örneği boyutları
Aşağıdaki tabloda genel sanal makine boyutları, kullanım durumlarına göre kategorilere ayrılmıştır.
| Tür | Ortak boyutlar | Açıklama |
|---|---|---|
| Genel amaçlı | Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 | Dengeli CPU/bellek. Küçük ve orta ölçekli uygulama ve veri çözümlerini geliştirmek/test etmek için idealdir. |
| İşlem için iyileştirilmiş | Fs, F | Yüksek CPU/bellek. Orta düzey trafiğe sahip uygulamalar, ağ gereçleri ve toplu işlemler için idealdir. |
| Bellek için iyileştirilmiş | Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D | Yüksek bellek/çekirdek. İlişkisel veritabanı, orta veya büyük boyutlu önbellekler ve bellek içi analiz için idealdir. |
| Depolama için iyileştirilmiş | Ls | Yüksek disk aktarım hızı ve GÇ. Büyük Veri, SQL ve NoSQL veritabanları için ideal. |
| GPU | NV, NC | Ağır grafik işlemleri ile video düzenleme işlemleri için özel olarak hedeflenen VM’ler. |
| Yüksek performans | H, A8-11 | İşleme düzeyi yüksek olan isteğe bağlı ağ arabirimleri (RDMA) içeren VM’lerimiz, şimdiye kadarki en güçlü CPU ile sunuluyor. |
Kullanılabilir sanal makine örneği boyutlarını bulma
Belirli bir bölgede kullanılabilen VM örneği boyutlarının listesini görmek için Get-AzVMSize komutunu kullanın.
Get-AzVMSize -Location "EastUS"
Çıktı, her sanal makine boyutuna atanan kaynakları gösteren, aşağıdaki sıkıştırılmış örneğe benzer:
Name NumberOfCores MemoryInMB MaxDataDiskCount OSDiskSizeInMB ResourceDiskSizeInMB
---- ------------- ---------- ---------------- -------------- --------------------
Standard_DS1_v2 1 3584 4 1047552 7168
Standard_DS2_v2 2 7168 8 1047552 14336
[...]
Standard_A0 1 768 1 1047552 20480
Standard_A1 1 1792 2 1047552 71680
[...]
Standard_F1 1 2048 4 1047552 16384
Standard_F2 2 4096 8 1047552 32768
[...]
Standard_NV6 6 57344 24 1047552 389120
Standard_NV12 12 114688 48 1047552 696320
Öğreticinin başında bir ölçek kümesi oluşturduğunuzda, sanal makine örnekleri için varsayılan bir Standard_DS1_v2 sanal makine SKU’su sağlanmıştır. Get-AzVMSizeçıkışına göre farklı bir VM örneği boyutu belirtsiniz. Aşağıdaki örnek, Standard_F1 bir sanal makine örneği boyutu belirtmek için -VmSize parametresiyle bir ölçek kümesi oluşturur. Tüm ölçek kümesi kaynaklarının ve sanal makine örneklerinin oluşturulup yapılandırılması birkaç dakika süreceğinden, aşağıdaki ölçek kümesini dağıtmanız gerekmez:
New-AzVmss `
-ResourceGroupName "myResourceGroup3" `
-Location "EastUS" `
-VMScaleSetName "myScaleSet3" `
-VirtualNetworkName "myVnet3" `
-SubnetName "mySubnet3" `
-PublicIpAddressName "myPublicIPAddress3" `
-LoadBalancerName "myLoadBalancer3" `
-UpgradePolicyMode "Automatic" `
-VmSize "Standard_F1" `
-Credential $cred
Ölçek kümesinin kapasitesini değiştirme
Ölçek kümesi oluşturduğunuzda iki sanal makine örneği istediniz. Ölçek kümesindeki sanal makine örneği sayısını artırmak veya azaltmak için kapasiteyi el ile değiştirebilirsiniz. Ölçek kümesi, gerektiği sayıda sanal makine örneği oluşturur veya kaldırır ve sonra trafiği dağıtmak için yük dengeleyiciyi yapılandırır.
İlk olarak Get-AzVmssile bir ölçek kümesi nesnesi oluşturun ve için yeni bir değer sku.capacity belirtin. Kapasite değişikliğini uygulamak için Update-AzVmss kullanın. Aşağıdaki örnek, ölçek kümenizdeki sanal makine sayısını 3 olarak ayarlar:
# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss
Ölçek kümenizin kapasitesinin güncelleştirilmesi birkaç dakika sürer. Ölçek kümesinde artık sahip olduğunuz örnek sayısını görmek için Get-AzVmss kullanın:
Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Aşağıdaki örnek çıkış, ölçek kümesi kapasitesinin şimdi 3 olduğunu gösterir:
Sku :
Name : Standard_DS2
Tier : Standard
Capacity : 3
Genel yönetim görevleri
Artık bir ölçek kümesi oluşturabilir, bağlantı bilgilerini listeleyebilir ve sanal makine örneklerine bağlanabilirsiniz. Sanal makine örnekleriniz için farklı bir OS görüntüsünü nasıl kullanabileceğinizi veya örnek sayısını nasıl el ile ölçeklendirebileceğinizi öğrendiniz. Günlük yönetim işlemleriniz kapsamında, ölçek kümenizdeki sanal makine örneklerini durdurmanız, başlatmanız veya yeniden başlatmanız gerekebilir.
Bir ölçek kümesindeki sanal makine örneklerini durdurma ve serbest bırakma
Ölçek kümesinde bir veya daha fazla VM'i durdurmak için Stop-AzVmss kullanın. -InstanceId parametresi, durdurulacak bir veya daha fazla sanal makine belirtmenize olanak sağlar. Örnek kimliği belirtmezseniz, ölçek kümesindeki tüm sanal makineler durdurulur. Aşağıdaki örnek, 1 örneğini durdurur:
Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"
Varsayılan olarak, durdurulan sanal makineler serbest bırakılır ve bunlar için işlem ücreti alınmaz. Durdurulan sanal makinenin sağlama durumunda kalmasını istiyorsanız, önceki komuta -StayProvisioned parametresini ekleyin. Sağlama durumunda tutulan durdurulmuş sanal makineler için normal işlem ücreti alınır.
Bir ölçek kümesindeki sanal makine örneklerini başlatma
Bir ölçek kümesinde bir veya daha fazla VM başlatmak için Start-AzVmss kullanın. -InstanceId parametresi, başlatılacak bir veya daha fazla sanal makine belirtmenize olanak sağlar. Örnek kimliği belirtmezseniz, ölçek kümesindeki tüm sanal makineler başlatılır. Aşağıdaki örnek, 1 örneğini başlatır:
Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"
Bir ölçek kümesindeki sanal makine örneklerini yeniden başlatma
Ölçek kümesinde bir veya daha fazla VM'i yeniden başlatmak için Retart-AzVmss kullanın. -InstanceId parametresi, yeniden başlatılacak bir veya daha fazla sanal makine belirtmenize olanak sağlar. Örnek kimliği belirtmezseniz, ölçek kümesindeki tüm sanal makineler yeniden başlatılır. Aşağıdaki örnek, 1 örneğini yeniden başlatır:
Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"
Kaynakları temizleme
Bir kaynak grubunu sildiğinizde, o kaynak grubunun içindeki sanal makine örnekleri, sanal ağ ve diskler gibi tüm kaynaklar da silinir. -Force parametresi kaynakları ek bir komut istemi olmadan silmek istediğinizi onaylar. -AsJob parametresi işlemin tamamlanmasını beklemeden denetimi komut istemine döndürür.
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
Sonraki adımlar
Bu öğreticide, Azure PowerShell ile bazı temel ölçek kümesi oluşturma ve yönetme görevlerinin nasıl gerçekleştirileceğini öğrendiniz:
- Sanal makine ölçek kümesi oluşturma ve sanal makine ölçek kümesine bağlanma
- VM görüntülerini seçme ve kullanma
- Belirli VM boyutlarını görüntüleme ve kullanma
- Ölçek kümesini el ile ölçeklendirme
- Genel ölçek kümesi yönetim görevlerini gerçekleştirme
Ölçek kümesi diskleri hakkında bilgi edinmek için sonraki öğreticiye ilerleyin.


