Öğretici: Azure CLI ile Sanal Makine Ölçek Kümeleri için özel görüntü oluşturma ve kullanma

Ölçek kümesi oluşturduğunuzda, sanal makine örnekleri dağıtılırken kullanılacak bir görüntü belirtirsiniz. Sanal makine örnekleri dağıtıldıktan sonraki görev sayısını azaltmak için özel bir sanal makine görüntüsünü kullanabilirsiniz. Bu özel sanal makine görüntüsü, gerekli uygulama yüklemelerini veya yapılandırmalarını içerir. Ölçek kümesinde oluşturulan tüm sanal makine örnekleri, özel sanal makine görüntüsünü kullanır ve uygulama trafiğinizi sunmaya hazır olur. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Azure İşlem Galerisi oluşturma
  • Özelleştirilmiş görüntü tanımı oluşturma
  • Görüntü sürümü oluşturma
  • Özelleştirilmiş bir görüntüden ölçek kümesi oluşturma
  • Resim galerisini paylaşma

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • 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. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısı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'nın 2.4.0 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

Genel bakış

Azure İşlem Galerisi, kuruluşunuz genelinde özel görüntü paylaşımını kolaylaştırır. Özel görüntüler market görüntüleri gibidir, ancak bunları kendiniz oluşturursunuz. Özel görüntüler, uygulamaları, uygulama yapılandırmalarını ve diğer işletim sistemi yapılandırmalarını önceden yükleme gibi yapılandırmaları önyüklemek için kullanılabilir.

Azure İşlem Galerisi, özel VM görüntülerinizi başkalarıyla paylaşmanızı sağlar. Paylaşmak istediğiniz resimleri, hangi bölgelerde kullanılabilir hale getirmek istediğinizi ve kimlerle paylaşmak istediğinizi seçin.

Kaynak sanal makine oluşturma ve yapılandırma

İlk olarak, az group create ile bir kaynak grubu oluşturun ve sonra az vm create ile bir sanal makine oluşturun. Bu VM daha sonra görüntünün kaynağı olarak kullanılır.

Aşağıdaki örnek, myResourceGroup adlı kaynak grubunda myVM adlı Linux tabanlı bir VM oluşturur.

export RANDOM_ID=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_ID"
export REGION="eastus"
export MY_VM_NAME="myVM"

az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

az vm create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_VM_NAME \
  --image debian11 \
  --admin-username azureuser \
  --generate-ssh-keys

İpucu

VM'nizin kimliği az vm create komutunun çıkışında gösterilir. Bu öğreticinin ilerleyen bölümlerinde kullanabilmek için bunu kopyalayıp güvenli bir konumda depolayın.

Görüntü galerisi, görüntü paylaşımını etkinleştirmek için kullanılan birincil kaynaktır.

Galeri adları için izin verilen karakterler büyük veya küçük harfler, basamaklar, noktalar ve noktalardır. Galeri adı tire içeremez. Galeri adları aboneliğinizde benzersiz olmalıdır.

az sig create komutunu kullanarak bir görüntü galerisi oluşturun.

Aşağıdaki örnekte:

  • Doğu ABD'de bulunan myGalleryRG adlı galeri için bir kaynak grubu oluşturursunuz.
  • Galerinin adı myGallery'dir.
export MY_GALLERY_RG_NAME="myGalleryRG$RANDOM_ID"
export MY_GALLERY_NAME="myGallery$RANDOM_ID"

az group create --name $MY_GALLERY_RG_NAME --location $REGION
az sig create --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME

Görüntü tanımı oluşturma

Görüntü tanımları, görüntüler için mantıksal bir gruplandırma oluşturur. Bunlar, kendilerinde oluşturulan görüntü sürümleri hakkındaki bilgileri yönetmek için kullanılır.

Resim tanımı adları büyük veya küçük harflerden, basamaklardan, noktalardan, kısa çizgilerden ve noktalardan oluşabilir.

Görüntü tanımınızın doğru türde olduğundan emin olun:

  • Durum - VM'yi genelleştirdiyseniz (Windows için Sysprep veya Linux için waagent -deprovision kullanarak), kullanarak --os-state generalizedgenelleştirilmiş bir görüntü tanımı oluşturmanız gerekir. Vm'yi mevcut kullanıcı hesaplarını kaldırmadan kullanmak istiyorsanız, kullanarak --os-state specializedözel bir görüntü tanımı oluşturun.
  • Güvenlik türü - Yeni Azure VM'leri, varsayılan olarak Yapılandırılmış Güvenilir Başlatma ile oluşturulur. Bu öğretici, görüntü tanımı ve ölçek kümesi oluşturulurken Güvenilen Başlatma yapılandırmasını yansıtan sonraki kod örneklerini içerir. Güvenilir Başlatma etkin olmayan bir VM ile görüntü oluşturuyorsanız, bu kaynakların ikisini de oluştururken doğru güvenlik türünü yansıttığınıza emin olun. Güvenilen Başlatma hakkında daha fazla bilgi için bkz . Azure sanal makineleri için Güvenilen Başlatma.

Görüntü tanımı için belirtebileceğiniz değerler hakkında daha fazla bilgi için bkz . Görüntü tanımları.

az sig image-definition create komutunu kullanarak galeride bir görüntü tanımı oluşturun.

Aşağıdaki örnekte, görüntü tanımı şöyledir:

  • myImageDefinition olarak adlandırılmıştır.
  • Özelleştirilmiş bir Linux işletim sistemi görüntüsü için yapılandırıldı. Windows işletim sistemi kullanarak görüntülere yönelik bir tanım oluşturmak için kullanın --os-type Windows.
  • Güvenilen Başlatma için yapılandırıldı.
export MY_IMAGE_DEF_NAME="myImageDefinition$RANDOM_ID"
MY_PUBLISHER_NAME="myPublisher$RANDOM_ID"

az sig image-definition create \
   --resource-group $MY_GALLERY_RG_NAME \
   --gallery-name $MY_GALLERY_NAME \
   --gallery-image-definition $MY_IMAGE_DEF_NAME \
   --publisher $MY_PUBLISHER_NAME \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized \
   --features SecurityType=TrustedLaunch

İpucu

Görüntü tanımınızın kimliği komutun çıkışında gösterilir. Bu öğreticinin ilerleyen bölümlerinde kullanabilmek için bunu kopyalayıp güvenli bir konumda depolayın.

Görüntü sürümünü oluşturma

az image gallery create-image-version komutunu kullanarak VM'den bir görüntü sürümü oluşturun.

Resim sürümü için izin verilen karakterler sayı ve noktadır. Sayılar 32 bitlik bir tamsayı aralığında olmalıdır. Biçim: MajorVersion.MinorVersion.Düzeltme eki.

Aşağıdaki örnekte:

  • Görüntünün sürümü 1.0.0'dır.
  • Orta Güney ABD bölgesinde bir çoğaltma ve Doğu ABD bölgesinde bir çoğaltma oluşturuyoruz. Çoğaltma bölgeleri, kaynak VM'nin bulunduğu bölgeyi içermelidir.
  • --virtual-machine , daha önce oluşturduğumuz VM'nin kimliğidir.
export MY_VM_ID=$(az vm show --name $MY_VM_NAME --resource-group $MY_RESOURCE_GROUP_NAME --query "id" --output tsv)

az sig image-version create \
   --resource-group $MY_GALLERY_RG_NAME \
   --gallery-name $MY_GALLERY_NAME \
   --gallery-image-definition $MY_IMAGE_DEF_NAME \
   --gallery-image-version 1.0.0 \
   --target-regions "southcentralus=1" "eastus=1" \
   --virtual-machine $MY_VM_ID

Not

Başka bir görüntü sürümü oluşturmak için aynı görüntüyü kullanabilmeniz için önce görüntü sürümünün derlenmesini ve çoğaltılmasının tamamen bitmesini beklemeniz gerekir.

Ayrıca, görüntü sürümünü oluştururken ekleyerek --storage-account-type premium_lrsveya Bölge Yedekli Depolama'yı ekleyerek --storage-account-type standard_zrs görüntünüzü Premium depolama alanında depolayabilirsiniz.

Görüntüden ölçek kümesi oluşturma

kullanarak az vmss createbir ölçek kümesi oluşturursunuz. Özelleştirilmiş bir kaynak VM kullanıyorsanız, özel bir görüntü olduğunu belirtmek için parametresini ekleyin --specialized .

Ölçek kümesi örneklerini oluşturmak için için --image görüntü tanımı kimliğini kullandığınızda, görüntünün kullanılabilir en son sürümünü kullanan bir ölçek kümesi oluşturursunuz. Görüntünün belirli bir sürümünü istiyorsanız, öğesini tanımlarken görüntü sürümü kimliğini eklediğinizden --imageemin olun.

  • En son görüntü örneği: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage

  • Belirli bir görüntü örneği: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0

Aşağıdaki örnekte ölçek kümesi şöyledir:

  • myScaleSet olarak adlandırdım
  • myImageDefinition görüntüsünün en son sürümünü kullanma.
  • Güvenilen Başlatma için yapılandırıldı.
export MY_IMAGE_DEF_ID=$(az sig image-definition show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --gallery-image-definition $MY_IMAGE_DEF_NAME --query "id" --output tsv)
export MY_SCALE_SET_RG_NAME="myResourceGroup$RANDOM_ID"
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_ID"

az group create --name $MY_SCALE_SET_RG_NAME --location eastus

az vmss create \
   --resource-group $MY_SCALE_SET_RG_NAME \
   --name $MY_SCALE_SET_NAME \
   --orchestration-mode flexible \
   --image $MY_IMAGE_DEF_ID \
   --specialized \
   --security-type TrustedLaunch

Tüm ölçek kümesi kaynaklarının ve VM'lerin oluşturulup yapılandırılması birkaç dakika sürer.

Azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak abonelikler arasında görüntü paylaşabilir ve bunları galeri, görüntü tanımı veya görüntü sürümü düzeylerinde paylaşabilirsiniz. Bir görüntü sürümü üzerinde okuma izni olan tüm kullanıcılar, abonelikler arasında bile görüntü sürümünü kullanarak vm dağıtabilir.

Galeri düzeyinde diğer kullanıcılarla paylaşmanızı öneririz.

Aşağıdaki örnek:

  • az sig show kullanarak galerinin nesne kimliğini alır.
  • az role assignment create komutunu kullanarak galeriye erişim sağlar.
    • Atamanın kapsamı olarak nesne kimliğini kullanır.
    • Tanıtım amacıyla atanan olarak oturum açmış kullanıcının kimliğini kullanır. Test veya üretim kodunuzda bu kodu kullandığınızda, atananı bu görüntüye erişmek istediğiniz kişileri yansıtacak şekilde güncelleştirdiğinizden emin olun. Azure RBAC kullanarak kaynakları paylaşma hakkında daha fazla bilgi için bkz . Azure CLI kullanarak Azure rol atamaları ekleme veya kaldırma. , bir kullanıcıya paylaşılan görüntü galerisine erişim vermek için az role assignment create komutunu kullanarak bir e-posta adresiyle birlikte.
export MY_GALLERY_ID=$(az sig show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --query "id" --output tsv)
export CALLER_ID=$(az ad signed-in-user show --query id -o tsv)

az role assignment create \
   --role "Reader" \
   --assignee $CALLER_ID \
   --scope $MY_GALLERY_ID

Kaynakları temizleme

Ölçek kümenizi ve ek kaynaklarınızı kaldırmak için az group delete komutunu kullanarak kaynak grubunu ve bu kaynak grubunun tüm kaynaklarını silin. --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.

Sonraki adımlar

Bu öğreticide, Azure CLI ile ölçek kümeleriniz için özel sanal makine görüntüsü oluşturma ve kullanma işleminin nasıl yapılacağını öğrendiniz:

  • Azure İşlem Galerisi oluşturma
  • Özelleştirilmiş görüntü tanımı oluşturma
  • Görüntü sürümü oluşturma
  • Özelleştirilmiş bir görüntüden ölçek kümesi oluşturma
  • Resim galerisini paylaşma

Uygulamaların ölçek kümenize nasıl dağıtılacağını öğrenmek için sonraki öğreticiye ilerleyin.