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

Azure’a dağıtın

Ö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 hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

  • 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ında kullanılmasına izin verilen karakterler büyük veya küçük harfler, rakamlar ve noktalardır. Galeri adı tire işareti 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üvenli Başlatma olarak 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 rakamlar ve nokta işaretidir. 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ü 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, imaj sürümünü oluştururken --storage-account-type premium_lrs ekleyerek imajınızı Premium depolamada veya --storage-account-type standard_zrs ekleyerek Bölge Yedekli Depolama üzerinde 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üvenilir 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:

  • Galerinin nesne kimliğini az sig show kullanarak 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, atama yapılan kişi olarak oturum açmış kullanıcının kullanıcı kimliğini kullanır. Bu kodu test veya üretim kodunuzda kullandığınızda, atanan kişiyi bu görüntüye kimlerin erişebilmesini istediğinizi yansıtacak şekilde güncellediğ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 e-posta adresiyle birlikte, bir kullanıcıya paylaşılan görüntü galerisine erişim vermek için az role assignment create komutunu kullanarak.
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.