Öğ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. Azure Cloud Shell için Deneyin örneği
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. Cloud Shell’i yeni bir pencerede başlatma
Azure portalın sağ üst köşesindeki menü çubuğunda yer alan Cloud Shell düğmesini seçin. Azure portaldaki Cloud Shell düğmesi

Azure Cloud Shell’de bu makaledeki kodu çalıştırmak için:

  1. Cloud Shell’i başlatın.

  2. Kodu kopyalamak için kod bloğunda Kopyala düğmesini seçin.

  3. 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.

  4. 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.