Wdrażanie aplikacji w zestawach skalowania maszyn wirtualnych

Uwaga

W tym dokumencie opisano zestawy skalowania maszyn wirtualnych uruchomione w trybie jednolitej aranżacji. Zalecamy używanie elastycznej orkiestracji dla nowych obciążeń. Aby uzyskać więcej informacji, zobacz Orchestration modes for Virtual Machine Scale Sets in Azure (Tryby orkiestracji dla zestawów skalowania maszyn wirtualnych na platformie Azure).

Aby uruchamiać aplikacje na wystąpieniach maszyn wirtualnych w zestawie skalowania, musisz najpierw zainstalować składniki aplikacji i wymagane pliki. W tym artykule przedstawiono sposoby tworzenia niestandardowego obrazu maszyny wirtualnej dla wystąpień w zestawie skalowania lub automatycznego uruchamiania skryptów instalacji w istniejących wystąpieniach maszyn wirtualnych. Dowiesz się również, jak zarządzać aktualizacjami aplikacji lub systemu operacyjnego w zestawie skalowania.

Tworzenie niestandardowego obrazu maszyny wirtualnej

Jeśli używasz jednego z obrazów platformy Azure do tworzenia wystąpień w zestawie skalowania, nie zainstalowano ani nie skonfigurowano dodatkowego oprogramowania. Instalację tych składników można zautomatyzować, jednak zwiększa to czas potrzebny na aprowizowanie wystąpień maszyn wirtualnych w zestawach skalowania. W przypadku zastosowania wielu zmian konfiguracji w wystąpieniach maszyn wirtualnych istnieje obciążenie związane z zarządzaniem tymi skryptami konfiguracji i zadaniami.

Aby skrócić zarządzanie konfiguracją i czas aprowizacji maszyny wirtualnej, możesz utworzyć niestandardowy obraz maszyny wirtualnej, który jest gotowy do uruchomienia aplikacji natychmiast po aprowizacji wystąpienia w zestawie skalowania. Aby uzyskać więcej informacji na temat tworzenia i używania niestandardowego obrazu maszyny wirtualnej z zestawem skalowania, zobacz następujące samouczki:

Instalowanie aplikacji przy użyciu rozszerzenia niestandardowego skryptu

Rozszerzenie niestandardowego skryptu pobiera i wykonuje skrypty na maszynach wirtualnych platformy Azure. To rozszerzenie jest przydatne w przypadku konfiguracji po wdrożeniu, instalowania oprogramowania lub każdego innego zadania związanego z konfiguracją lub zarządzaniem. Skrypty można pobrać z usługi Azure Storage lub GitHub bądź można je dostarczyć do witryny Azure Portal w czasie wykonywania rozszerzenia. Aby uzyskać więcej informacji na temat sposobu instalowania aplikacji przy użyciu rozszerzenia niestandardowego skryptu, zobacz następujące samouczki:

Instalowanie aplikacji na maszynie wirtualnej z systemem Windows przy użyciu rozszerzenia DSC programu PowerShell

PowerShell Desired State Configuration (DSC) to platforma zarządzania służąca do definiowania konfiguracji maszyn docelowych. Konfiguracje DSC definiują, co należy zainstalować na maszynie i jak skonfigurować hosta. Aparat lokalnego programu Configuration Manager (LCM) działa na każdym węźle docelowym, który przetwarza żądane akcje na podstawie wypychanych konfiguracji.

Rozszerzenie DSC programu PowerShell umożliwia dostosowywanie wystąpień maszyn wirtualnych w zestawie skalowania za pomocą programu PowerShell. Poniższy przykład:

Rozszerzenie DSC jest stosowane do wystąpień maszyn wirtualnych myScaleSet w grupie zasobów o nazwie myResourceGroup. Wprowadź własne nazwy w następujący sposób:

# Define the script for your Desired Configuration to download and run
$dscConfig = @{
  "wmfVersion" = "latest";
  "configuration" = @{
    "url" = "https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip";
    "script" = "configure-http.ps1";
    "function" = "WebsiteTest";
  };
}

# Get information about the scale set
$vmss = Get-AzVmss `
                -ResourceGroupName "myResourceGroup" `
                -VMScaleSetName "myScaleSet"

# Add the Desired State Configuration extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
    -VirtualMachineScaleSet $vmss `
    -Publisher Microsoft.Powershell `
    -Type DSC `
    -TypeHandlerVersion 2.24 `
    -Name "DSC" `
    -Setting $dscConfig

# Update the scale set and apply the Desired State Configuration extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet"  `
    -VirtualMachineScaleSet $vmss

Jeśli zasady uaktualniania w zestawie skalowania są ręczne, zaktualizuj wystąpienia maszyn wirtualnych za pomocą polecenia Update-AzVmssInstance. To polecenie cmdlet stosuje zaktualizowaną konfigurację zestawu skalowania do wystąpień maszyn wirtualnych i instaluje aplikację.

Instalowanie aplikacji na maszynie wirtualnej z systemem Linux przy użyciu pakietu cloud-init

Cloud-init to powszechnie używana metoda dostosowywania maszyny wirtualnej z systemem Linux podczas jej pierwszego rozruchu. Za pomocą pakietu cloud-init można instalować pakiety i zapisywać pliki lub konfigurować użytkowników i zabezpieczenia. Pakiet cloud-init jest uruchamiany w trakcie początkowego rozruchu, więc do zastosowania konfiguracji nie są wymagane żadne dodatkowe kroki ani agenci.

Pakiet cloud-init działa również w różnych dystrybucjach. Przykładowo nie używa się poleceń apt-get install lub yum install do zainstalowania pakietu. Zamiast tego możesz zdefiniować listę pakietów do zainstalowania. Pakiet cloud-init automatycznie używa natywnego narzędzia do zarządzania pakietami dla wybranej dystrybucji.

Aby uzyskać więcej informacji, w tym przykładowy plik cloud-init.txt , zobacz Dostosowywanie maszyn wirtualnych platformy Azure przy użyciu pakietu cloud-init.

Aby utworzyć zestaw skalowania i użyć pliku cloud-init, dodaj --custom-data parametr do polecenia az vmss create i określ nazwę pliku cloud-init. Poniższy przykład tworzy zestaw skalowania o nazwie myScaleSet w grupie myResourceGroup i konfiguruje wystąpienia maszyn wirtualnych przy użyciu pliku o nazwie cloud-init.txt. Wprowadź własne nazwy w następujący sposób:

Ważne

Od listopada 2023 r. zestawy skalowania maszyn wirtualnych utworzone przy użyciu programu PowerShell i interfejsu wiersza polecenia platformy Azure będą domyślnie ustawiać tryb elastycznej orkiestracji, jeśli nie określono trybu aranżacji. Aby uzyskać więcej informacji na temat tej zmiany i akcji, które należy wykonać, zobacz Zmiana powodująca niezgodność dla klientów programu PowerShell/interfejsu wiersza polecenia usługi VMSS — Microsoft Community Hub

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  -–orchestration-mode uniform \
  --upgrade-policy-mode automatic \
  --custom-data cloud-init.txt \
  --admin-username azureuser \
  --generate-ssh-keys

Instalowanie aplikacji za pomocą aktualizacji systemu operacyjnego

Gdy są dostępne nowe wersje systemu operacyjnego, można użyć lub skompilować nowy obraz niestandardowy i wdrożyć uaktualnienia systemu operacyjnego do zestawu skalowania. Każde wystąpienie maszyny wirtualnej jest uaktualniane do najnowszego określonego obrazu. Możesz użyć obrazu niestandardowego ze wstępnie zainstalowaną aplikacją, rozszerzeniem niestandardowego skryptu lub rozszerzenia DSC programu PowerShell, aby aplikacja mogła być automatycznie dostępna podczas uaktualniania. Może być konieczne zaplanowanie konserwacji aplikacji podczas wykonywania tego procesu, aby upewnić się, że nie ma problemów ze zgodnością wersji.

Jeśli używasz niestandardowego obrazu maszyny wirtualnej ze wstępnie zainstalowaną aplikacją, możesz zintegrować aktualizacje aplikacji z potokiem wdrażania w celu skompilowania nowych obrazów i wdrożenia uaktualnień systemu operacyjnego w zestawie skalowania. Takie podejście umożliwia potokowi pobieranie najnowszych kompilacji aplikacji, tworzenie i weryfikowanie obrazu maszyny wirtualnej, a następnie uaktualnianie wystąpień maszyn wirtualnych w zestawie skalowania. Aby uruchomić potok wdrażania, który kompiluje i wdraża aktualizacje aplikacji na niestandardowych obrazach maszyn wirtualnych, możesz utworzyć obraz packera i wdrożyć go za pomocą usług Azure DevOps Services lub użyć innej platformy, takiej jak Spinnaker lub Jenkins.

Następne kroki

Podczas kompilowania i wdrażania aplikacji w zestawach skalowania możesz przejrzeć omówienie projektu zestawu skalowania. Aby uzyskać więcej informacji na temat zarządzania zestawem skalowania, zobacz Zarządzanie zestawem skalowania przy użyciu programu PowerShell.