Instalace a aktualizace aplikací v Virtual Machine Scale Sets

Dokončeno

Při nasazování aplikace napříč škálovací sadou potřebujete mechanismus, který aplikaci konzistentně aktualizuje napříč všemi instancemi ve škálovací sadě. Tohoto výsledku můžete dosáhnout pomocí rozšíření vlastních skriptů.

V tomto scénáři přepravní firmy potřebujete rychlý způsob, jak zavést aktualizace aplikace při minimálním přerušení práce koncových uživatelů. Ideální řešením je rozšíření vlastních skriptů.

V této lekci se dozvíte, jak pomocí rozšíření vlastních skriptů aktualizovat aplikaci provozovanou ve škálovací sadě.

Co je rozšíření vlastních skriptů Azure?

Rozšíření vlastních skriptů Azure umožňuje stažení a spuštění skriptu na virtuálním počítači Azure. Může automatizovat stejné úlohy na všech virtuálních počítačích ve škálovací sadě.

Vlastní skripty uložte do Azure Storage nebo na GitHub. K přidání jednoho skriptu na virtuální počítač můžete použít Azure Portal. Pokud chcete spouštět vlastní skripty jako součást nasazení pomocí šablon, zkombinujte rozšíření vlastních skriptů s šablonami Azure Resource Manageru.

Instalace aplikace do škálovací sady pomocí rozšíření vlastních skriptů

Pokud chcete s Azure CLI použít rozšíření vlastních skriptů, vytvoříte konfigurační soubor, který definuje soubory, které se mají získat, a příkazy, které se mají spustit. Tento soubor je ve formátu JSON.

Následující příklad ukazuje konfiguraci vlastního skriptu, který aplikaci stáhne z úložiště v GitHubu a nainstaluje ji na instanci hostitele spuštěním skriptu s názvem custom_application_v1.sh:

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

K nasazení této konfigurace ve škálovací sadě použijete rozšíření vlastních skriptů. Následující kód ukazuje, jak vytvořit rozšíření vlastních skriptů pro škálovací sadu virtuálních počítačů pomocí Azure CLI. Tento příkaz nainstaluje novou aplikaci na virtuální počítače ve škálovací sadě:

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

Aktualizace aplikace ve škálovací sadě pomocí rozšíření vlastních skriptů

Pomocí rozšíření vlastních skriptů můžete aktualizovat existující aplikaci ve škálovací sadě virtuálních počítačů. Odkazujete na aktualizovaný skript nasazení a pak rozšíření znovu použijete na škálovací sadu. Následující kód JSON ukazuje příklad konfigurace, která načte novou verzi aplikace a nainstaluje ji:

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

K nasazení aktualizované aplikace můžete použít stejný az vmss extension set příkaz, který jste zobrazili dříve, ale tentokrát budete odkazovat na nový konfigurační soubor:

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

Virtuální počítače se aktualizují podle zásad upgradování škálovací sady. Tuto zásadu zadáte při prvním vytvoření škálovací sady. Zásady upgradování můžou mít jeden z následujících tří režimů:

  • Automatický: Škálovací sada nedefinuje, kdy se virtuální počítače upgradují. Všechny se můžou aktualizovat současně, což způsobí výpadek služby.
  • Se zajištěním provozu: Škálovací sada zavádí aktualizaci na virtuální počítače ve škálovací sadě v dávkách. Volitelné pozastavení může minimalizovat nebo eliminovat výpadek služby. V tomto režimu můžou na počítačích ve škálovací sadě po krátkou dobu běžet rozdílné verze aplikace. Tento režim vyžaduje, abyste buď do škálovací sady přidali sondu stavu, nebo u škálovací sady použili rozšíření stavu aplikace.
  • Ruční: Existující virtuální počítače ve škálovací sadě se neaktualizují. Všechny změny je nutné provést ručně. Tento režim je výchozí.

Pokud chcete určit režim zásad upgradu při zřizování škálovací sady virtuálních počítačů, můžete použít možnost upgrade-policy-mode . Následující příklad kód používá Azure CLI:

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