Instalowanie i aktualizowanie aplikacji w zestawach skalowania maszyn wirtualnych

Ukończone

Podczas wdrażania aplikacji w zestawie skalowania potrzebny jest mechanizm, który stale aktualizuje aplikację we wszystkich wystąpieniach w zestawie skalowania. Ten wynik można osiągnąć przy użyciu niestandardowego rozszerzenia skryptu.

W scenariuszu firmy kurierskiej konieczne jest szybkie wdrażanie aktualizacji aplikacji przy jednoczesnym zminimalizowaniu zakłóceń dla użytkowników końcowych. Niestandardowe rozszerzenie skryptu jest idealnym rozwiązaniem.

W tej lekcji dowiesz się, jak za pomocą niestandardowego rozszerzenia skryptu zaktualizować aplikację uruchamianą w zestawie skalowania.

Co to jest rozszerzenie niestandardowego skryptu platformy Azure?

Rozszerzenie niestandardowego skryptu platformy Azure służy do pobierania i uruchamiania skryptu na maszynie wirtualnej platformy Azure. Może zautomatyzować te same zadania na wszystkich maszynach wirtualnych w zestawie skalowania.

Przechowuj swoje skrypty niestandardowe w usłudze Azure Storage lub GitHub. Aby dodać skrypt do maszyny wirtualnej, możesz użyć witryny Azure Portal. Aby uruchamiać skrypty niestandardowe w ramach wdrożenia z szablonem, połącz niestandardowe rozszerzenie skryptu z szablonami usługi Azure Resource Manager.

Instalowanie aplikacji w zestawie skalowania przy użyciu niestandardowego rozszerzenia skryptu

Aby użyć niestandardowego rozszerzenia skryptu z interfejsem wiersza polecenia platformy Azure, utwórz plik konfiguracji, który definiuje pliki do pobrania i polecenia do uruchomienia. Plik jest w formacie JSON.

Poniższy przykład przedstawia konfigurację niestandardowego skryptu, która pobiera aplikację z repozytorium w usłudze GitHub i instaluje ją w wystąpieniu hosta, uruchamiając skrypt o nazwie custom_application_v1.sh:

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

Aby wdrożyć tę konfigurację w zestawie skalowania, użyj niestandardowego rozszerzenia skryptu. Poniższy kod przedstawia sposób tworzenia niestandardowego rozszerzenia skryptu dla zestawu skalowania maszyn wirtualnych przy użyciu interfejsu wiersza polecenia platformy Azure. To polecenie powoduje zainstalowanie nowej aplikacji na maszynach wirtualnych w zestawie skalowania:

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

Aktualizowanie aplikacji w zestawie skalowania przy użyciu niestandardowego rozszerzenia skryptu

Za pomocą niestandardowego rozszerzenia skryptu można zaktualizować istniejącą aplikację w zestawie skalowania maszyn wirtualnych. Odwołujesz się do zaktualizowanego skryptu wdrażania, a następnie ponownie zastosuj rozszerzenie do zestawu skalowania. Na przykład następujący kod JSON przedstawia konfigurację, która pobiera nową wersję aplikacji i instaluje ją:

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

Możesz użyć tego samego az vmss extension set polecenia pokazanego wcześniej, aby wdrożyć zaktualizowaną aplikację, ale tym razem odwołujesz się do nowego pliku konfiguracji:

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

Maszyny wirtualne są aktualizowane zgodnie z zasadami uaktualniania zestawu skalowania. Te zasady są tworzone podczas pierwszego tworzenia zestawu skalowania. Zasady uaktualniania mogą działać w jednym z następujących trzech trybów:

  • Automatyczne: zestaw skalowania nie definiuje, kiedy maszyny wirtualne są uaktualniane. Wszystkie mogą być aktualizowane w tym samym czasie, co powoduje niedostępność usługi.
  • Stopniowe: zestaw skalowania wdraża aktualizację w partiach na maszynach wirtualnych w zestawie skalowania. Opcjonalne wstrzymanie może zminimalizować ryzyko niedostępności usługi lub wyeliminować je. W tym trybie maszyny w zestawie skalowania mogą przez krótki czas używać różnych wersji aplikacji. Ten tryb wymaga dodania sondy kondycji do zestawu skalowania lub zastosowania rozszerzenia kondycji aplikacji do zestawu skalowania.
  • Ręczne: istniejące maszyny wirtualne w zestawie skalowania nie są aktualizowane. Wszystkie zmiany należy wykonać ręcznie. Ten tryb jest domyślny.

Aby określić tryb zasad uaktualniania podczas aprowizacji zestawu skalowania maszyn wirtualnych, możesz użyć --upgrade-policy-mode opcji . Następujący kod przykładowy używa interfejsu wiersza polecenia platformy Azure:

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