Sanal Makine Ölçek Kümeleri'da uygulamaları yükleme ve güncelleştirme

Tamamlandı

Bir uygulamayı ölçek kümesinde dağıttığınızda, uygulamanızı ölçek kümesindeki tüm örnekler arasında tutarlı bir şekilde güncelleştiren bir mekanizmaya ihtiyacınız vardır. Özel bir betik uzantısı kullanarak bu sonuca ulaşabilirsiniz.

Kargo şirketi senaryosunda güncelleştirmeleri uygulamaya hızla dağıtmanın bir yolunu bulmanız ve son kullanıcıların yaşadığı kesintiyi en aza indirmeniz gerekiyor. Bir Özel betik uzantısı ideal bir çözümdür.

Bu ünitede özel betik uzantısını kullanarak ölçek kümesinde çalıştırılan uygulamayı güncelleştirmeyi öğreneceksiniz.

Azure özel betik uzantısı nedir?

Azure özel betik uzantısı Azure VM'nizde bir betiği indirir ve çalıştırır. Ölçek kümesindeki tüm VM'lerde aynı görevleri otomatik hale getirebilir.

Özel betiklerinizi Azure Depolama’da veya GitHub’da depolayın. VM'ye birini eklemek için Azure portalını kullanabilirsiniz. Şablonlu dağıtımın bir parçası olarak özel betikleri çalıştırmak için özel betik uzantısını Azure Resource Manager şablonlarıyla birleştirin.

Özel betik uzantısını kullanarak ölçek kümesi genelinde bir uygulama yükleme

Azure CLI ile özel betik uzantısı kullanmak için, alınacak dosyaları ve çalıştırılacak komutları tanımlayan bir yapılandırma dosyası oluşturacaksınız. Bu dosya JSON biçimindedir.

Aşağıdaki örnekte, GitHub’daki depodan bir uygulama indiren ve custom_application_v1.sh adlı betiği çalıştırarak uygulamayı konak örneğine yükleyen bir özel betik yapılandırması gösterilir:

# yourConfigV1.json 
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v1.sh"],
  "commandToExecute": "./custom_application_v1.sh"
}

Bu yapılandırmayı ölçek kümesinde dağıtmak için özel bir betik uzantısı kullanacaksınız. Aşağıdaki kod, Azure CLI kullanarak Sanal Makine Ölçek Kümesi için özel betik uzantısının nasıl oluşturulacağını gösterir. Bu komut yeni uygulamayı ölçek kümesindeki VM'lere yükler:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name yourScaleSet \
  --settings @yourConfigV1.json

Özel betik uzantısını kullanarak ölçek kümesi genelinde bir uygulamayı güncelleştirme

Sanal Makine Ölçek Kümesi genelinde mevcut bir uygulamayı güncelleştirmek için özel bir betik uzantısı kullanabilirsiniz. Güncelleştirilmiş bir dağıtım betiğine başvuracak ve ardından uzantıyı ölçek kümenize yeniden uygulayın. Örneğin aşağıdaki JSON kodu uygulamanın yeni sürümünü getiren ve yükleyen bir yapılandırma gösterir:

# yourConfigV2.json
{
  "fileUris": ["https://raw.githubusercontent.com/yourrepo/master/custom_application_v2.sh"],
  "commandToExecute": "./custom_application_v2.sh"
}

Güncelleştirilmiş uygulamayı dağıtmak için daha önce gösterilen komutun aynısını az vmss extension set kullanabilirsiniz, ancak bu kez yeni yapılandırma dosyasına başvuracaksınız:

az vmss extension set \
    --publisher Microsoft.Azure.Extensions \
    --version 2.0 \
    --name CustomScript \
    --resource-group yourResourceGroup \
    --vmss-name yourScaleSet \
    --settings @yourConfigV2.json

VM'ler ölçek kümesinin yükseltme ilkesine göre güncelleştirilir. Ölçek kümesini ilk oluşturduğunuzda bu ilkeyi belirteceksiniz. Yükseltme ilkesinin modu aşağıdaki üç moddan biri olabilir:

  • Otomatik: Ölçek kümesi VM'lerin ne zaman yükseltileceğini tanımlamaz. Sanal makinelerin tümü aynı anda güncelleştirilebilir ve bu da hizmet kesintisine neden olur.
  • Dağıtım: Ölçek kümesi güncelleştirmeyi ölçek kümesindeki VM'lere toplu olarak dağıtır. İsteğe bağlı bir duraklatma hizmet kesintisini en aza indirebilir veya ortadan kaldırabilir. Bu modda ölçek kümesindeki makineler kısa bir süre için uygulamanın farklı sürümlerini çalıştırabilir. Bu mod ölçek kümesine bir sistem durumu araştırması eklemenizi veya uygulama sistem durumu uzantısı uygulamanızı gerektirir.
  • El ile: Ölçek kümesindeki mevcut VM'ler güncelleştirilmez. Tüm değişiklikler el ile yapılmalıdır. Bu varsayılan moddur.

Sanal Makine Ölçek Kümesi sağladığınızda yükseltme ilkesi modunu belirtmek için seçeneğini kullanabilirsiniz upgrade-policy-mode . Aşağıdaki kod örneğinde Azure CLI kullanılır:

az vmss create \
  --resource-group MyResourceGroup \
  --name MyScaleSet \
  --image Ubuntu2204 \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys