Öğretici: Azure CLI 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.

Önkoşullar

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu makale, Azure CLI'nin 2.0.29 veya sonraki bir sürümünü gerektirir. Bu Azure Cloud Shell, en son sürüm zaten yüklüdür.

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. az group create komutuyla bir kaynak grubu oluşturun. Bu örnekte, eastus bölgesinde myResourceGroup adlı bir kaynak grubu oluşturulur.

az group create --name 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

az vmss create komutuyla bir sanal makine ölçek kümesi oluşturun. Aşağıdaki örnek, myScaleSet adlı bir ölçek kümesi oluşturur ve yoksa SSH anahtarları oluşturur:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys

Tüm ölçek kümesi kaynaklarının ve sanal makine örneklerinin oluşturulup yapılandırılması birkaç dakika sürer. Her bir sanal makine örneklerine trafiği dağıtmak için bir yük dengeleyici de oluşturulur.

Bir ölçek kümesindeki sanal makine örneklerini görüntüleme

Bir ölçek kümesindeki sanal makine örneklerinin listesini görüntülemek için az vmss list-instances komutunu şu şekilde kullanın:

az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table

Aşağıdaki örnek çıktı, ölçek kümesindeki iki sanal makine örneğini göstermektedir:

  InstanceId  LatestModelApplied    Location    Name          ProvisioningState    ResourceGroup    VmId
------------  --------------------  ----------  ------------  -------------------  ---------------  ------------------------------------
           1  True                  eastus      myScaleSet_1  Succeeded            MYRESOURCEGROUP  c059be0c-37a2-497a-b111-41272641533c
           3  True                  eastus      myScaleSet_3  Succeeded            MYRESOURCEGROUP  ec19e7a7-a4cd-4b24-9670-438f4876c1f9

Çıktıdaki ilk sütunda bir InstanceId gösterilmektedir. Belirli bir sanal makine örneği hakkında ek bilgi görüntülemek için az vmss get-instance-view komutuna --instance-id parametresini ekleyin. Aşağıdaki örnekte, 1 sanal makine örneğiyle ilgili bilgiler görüntülenmektedir:

az vmss get-instance-view \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --instance-id 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ümesindeki sanal makine örneklerine bağlanacak bağlantı noktalarını ve adresi listelemek için az vmss list-instance-connection-info komutunu kullanın:

az vmss list-instance-connection-info \
  --resource-group myResourceGroup \
  --name myScaleSet

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:

{
  "instance 1": "13.92.224.66:50001",
  "instance 3": "13.92.224.66:50003"
}

Birinci sanal makine örneğinizde SSH oturumu açın. Önceki komutta gösterildiği gibi, -p parametresiyle genel IP adresinizi ve bağlantı noktası numaranızı belirtin:

ssh azureuser@13.92.224.66 -p 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 SSH oturumunu normal şekilde kapatın:

exit

Sanal makine örneği görüntülerini anlama

Öğreticinin başında bir ölçek kümesi oluşturduğunuzda, sanal makine örnekleri için UbuntuLTS öğesinin --image öğesi belirtildi. Azure Market sanal makine örneği oluşturmak için kullanılan birçok görüntü içerir. Yaygın olarak kullanılan görüntülerin bir listesini görmek için, az vm image list komutunu kullanın.

az vm image list --output table

Aşağıdaki örnek çıktıda, Azure’daki en yaygın sanal makine görüntüleri gösterilmektedir. Bir ölçek kümesi oluştururken şu genel görüntülerden birini belirtmek için UrnAlias kullanılabilir.

Offer          Publisher               Sku                 Urn                                                             UrnAlias             Version
-------------  ----------------------  ------------------  --------------------------------------------------------------  -------------------  ---------
CentOS         OpenLogic               7.3                 OpenLogic:CentOS:7.3:latest                                     CentOS               latest
CoreOS         CoreOS                  Stable              CoreOS:CoreOS:Stable:latest                                     CoreOS               latest
Debian         credativ                8                   credativ:Debian:8:latest                                        Debian               latest
openSUSE-Leap  SUSE                    42.2                SUSE:openSUSE-Leap:42.2:latest                                  openSUSE-Leap        latest
RHEL           RedHat                  7.3                 RedHat:RHEL:7.3:latest                                          RHEL                 latest
SLES           SUSE                    12-SP2              SUSE:SLES:12-SP2:latest                                         SLES                 latest
UbuntuServer   Canonical               16.04-LTS           Canonical:UbuntuServer:16.04-LTS:latest                         UbuntuLTS            latest
WindowsServer  MicrosoftWindowsServer  2016-Datacenter     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest     Win2016Datacenter    latest
WindowsServer  MicrosoftWindowsServer  2012-R2-Datacenter  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest  Win2012R2Datacenter  latest
WindowsServer  MicrosoftWindowsServer  2012-Datacenter     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest     Win2012Datacenter    latest
WindowsServer  MicrosoftWindowsServer  2008-R2-SP1         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest         Win2008R2SP1         latest

Tam listeyi görüntülemek için --all bağımsız değişkenini ekleyin. Görüntü listesi --publisher veya –-offer kullanılarak da filtrelenebilir. Aşağıdaki örnekte liste, CentOS ile eşleşen teklife sahip tüm görüntüler için filtrelenmiştir:

az vm image list --offer CentOS --all --output table

Aşağıdaki sıkıştırılmış çıktıda, kullanılabilir CentOS 7.3 görüntülerinden bazıları gösterilmektedir:

Offer    Publisher   Sku   Urn                                 Version
-------  ----------  ----  ----------------------------------  -------------
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20161221   7.3.20161221
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170421   7.3.20170421
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170517   7.3.20170517
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170612   7.3.20170612
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170707   7.3.20170707
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170925   7.3.20170925

Belirli bir görüntüyü kullanan bir ölçek kümesini dağıtmak için Urn sütunundaki değeri kullanın. Görüntüyü belirttiğinizde, görüntü sürümü sayısı en yeni ile değiştirilerek dağıtımın en yeni sürümü seçilebilir. Aşağıdaki örnekte, bir CentOS 7.3 görüntüsünün son sürümünü belirtmek için --image bağımsız değişkeni kullanılmıştır.

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

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:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSetCentOS \
  --image OpenLogic:CentOS:7.3:latest \
  --admin-user azureuser \
  --generate-ssh-keys

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 sanal makine örneği boyutlarının listesini görmek için, az vm list-sizes komutunu kullanın.

az vm list-sizes --location eastus --output table

Çıktı, her sanal makine boyutuna atanan kaynakları gösteren, aşağıdaki sıkıştırılmış örneğe benzer:

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
                 4          3584  Standard_DS1_v2                       1           1047552                    7168
                 8          7168  Standard_DS2_v2                       2           1047552                   14336
[...]
                 1           768  Standard_A0                           1           1047552                   20480
                 2          1792  Standard_A1                           1           1047552                   71680
[...]
                 4          2048  Standard_F1                           1           1047552                   16384
                 8          4096  Standard_F2                           2           1047552                   32768
[...]
                24         57344  Standard_NV6                          6           1047552                   38912
                48        114688  Standard_NV12                        12           1047552                  696320

Belirli bir sanal makine örneği boyutu ile ölçek kümesi oluşturma

Öğreticinin başında bir ölçek kümesi oluşturduğunuzda, sanal makine örnekleri için varsayılan bir Standard_D1_v2 sanal makine SKU’su sağlanmıştır. az vm list-sizes içindeki çıktıyı temel alarak farklı bir sanal makine örneği belirtebilirsiniz. Aşağıdaki örnek, Standard_F1 bir sanal makine örneği boyutu belirtmek için --vm-sku 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:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSetF1Sku \
  --image UbuntuLTS \
  --vm-sku Standard_F1 \
  --admin-user azureuser \
  --generate-ssh-keys

Ölçek kümesinin kapasitesini değiştirme

Öğreticinin başında bir ölçek kümesi oluşturduğunuzda varsayılan olarak iki sanal makine örneği dağıtılmıştı. Bir ölçek kümesiyle oluşturulan örnek sayısını değiştirmek için az vmss create ile --instance-count parametresini belirtebilirsiniz. Mevcut ölçek kümenizdeki 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.

Ölçek kümesindeki sanal makine örneği sayısını elle artırmak veya azaltmak için az vmss scale komutunu kullanın. Aşağıdaki örnek, ölçek kümenizdeki sanal makine sayısını 3 olarak ayarlar:

az vmss scale \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --new-capacity 3

Ölçek kümenizin kapasitesinin güncelleştirilmesi birkaç dakika sürer. Ölçek kümesinde şu anda yer alan örneklerin sayısını görmek için az vmss show komutunu kullanın ve sku.capacity üzerinde bir sorgu çalıştırın:

az vmss show \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --query [sku.capacity] \
    --output table

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

Bir ölçek kümesindeki bir veya daha fazla sanal makine örneğini durdurmak için az vmss stop komutunu kullanın. --instance-ids parametresi, durdurulacak bir veya daha fazla sanal makine örneğini belirtmenize olanak sağlar. Bir örnek kimliği belirtmezseniz, ölçek kümesindeki tüm sanal makine örnekleri durdurulur. Aşağıdaki örnek, 1 örneğini durdurur:

az vmss stop --resource-group myResourceGroup --name myScaleSet --instance-ids 1

Durdurulan sanal makine örnekleri ayrılmış şekilde kalır ve işlem ücretleri uygulanmaya devam eder. Bunun yerine, sanal makine örneklerinin serbest bırakılmasını ve yalnızca depolama ücreti uygulanmasını istiyorsanız az vmss deallocate komutunu kullanın. Aşağıdaki örnek, 1 örneğini durdurur ve serbest bırakır:

az vmss deallocate --resource-group myResourceGroup --name myScaleSet --instance-ids 1

Bir ölçek kümesindeki sanal makine örneklerini başlatma

Bir ölçek kümesindeki bir veya daha fazla sanal makine örneğini başlatmak için az vmss start komutunu kullanın. --instance-ids parametresi, başlatılacak bir veya daha fazla sanal makine örneğini belirtmenize olanak sağlar. Bir örnek kimliği belirtmezseniz, ölçek kümesindeki tüm sanal makine örnekleri başlatılır. Aşağıdaki örnek, 1 örneğini başlatır:

az vmss start --resource-group myResourceGroup --name myScaleSet --instance-ids 1

Bir ölçek kümesindeki sanal makine örneklerini yeniden başlatma

Bir ölçek kümesindeki bir veya daha fazla sanal makine örneğini yeniden başlatmak için az vmss restart komutunu kullanın. --instance-ids parametresi, yeniden başlatılacak bir veya daha fazla sanal makine örneğini belirtmenize olanak sağlar. Bir örnek kimliği belirtmezseniz, ölçek kümesindeki tüm sanal makine örnekleri yeniden başlatılır. Aşağıdaki örnek, 1 örneğini yeniden başlatır:

az vmss restart --resource-group myResourceGroup --name myScaleSet --instance-ids 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. --no-wait parametresi işlemin tamamlanmasını beklemeden denetimi komut istemine döndürür. --yes parametresi kaynakları ek bir komut istemi olmadan silmek istediğinizi onaylar.

az group delete --name myResourceGroup --no-wait --yes

Sonraki adımlar

Bu öğreticide, Azure CLI 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.