Samouczek: tworzenie i używanie obrazu niestandardowego dla zestawów skalowania maszyn wirtualnych za pomocą programu Azure PowerShell

Podczas tworzenia zestawu skalowania należy wskazać obraz używany do wdrożenia wystąpień maszyn wirtualnych. Aby zmniejszyć liczbę zadań wykonywanych po wdrożeniu wystąpień maszyn wirtualnych, można użyć niestandardowego obrazu maszyny wirtualnej. Niestandardowy obraz maszyny wirtualnej obejmuje wszystkie wymagane instalacje i konfiguracje aplikacji. Wszystkie wystąpienia maszyn wirtualnych utworzone w zestawie skalowania używają niestandardowego obrazu maszyny wirtualnej i są gotowe do obsługi ruchu aplikacji. Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Tworzenie galerii zasobów obliczeniowych platformy Azure
  • Tworzenie definicji obrazu
  • Tworzenie wersji obrazu
  • Tworzenie zestawu skalowania na podstawie obrazu
  • Udostępnianie galerii obrazów

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Uruchamianie usługi Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również uruchomić usługę Cloud Shell w oddzielnej karcie przeglądarki, przechodząc do strony https://shell.azure.com/powershell. Wybierz przycisk Kopiuj, aby skopiować bloki kodu, wklej je do usługi Cloud Shell, a następnie naciśnij klawisz Enter, aby je uruchomić.

Tworzenie i konfigurowanie źródłowej maszyny wirtualnej

Najpierw utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup, a następnie utwórz maszynę wirtualną za pomocą polecenia New-AzVM. Ta maszyna wirtualna jest następnie używana jako źródło obrazu. Poniższy przykład obejmuje tworzenie maszyny wirtualnej myVM w grupie zasobów myResourceGroup:

New-AzResourceGroup -Name 'myResourceGroup' -Location 'EastUS'

New-AzVm `
   -ResourceGroupName 'myResourceGroup' `
   -Name 'myVM' `
   -Location 'East US' `
   -VirtualNetworkName 'myVnet' `
   -SubnetName 'mySubnet' `
   -SecurityGroupName 'myNetworkSecurityGroup' `
   -PublicIpAddressName 'myPublicIpAddress' `
   -OpenPorts 80,3389

Przechowywanie zmiennej maszyny wirtualnej

Możesz wyświetlić listę maszyn wirtualnych, które są dostępne w grupie zasobów przy użyciu polecenia Get-AzVM. Gdy znasz nazwę maszyny wirtualnej i grupę zasobów, możesz użyć Get-AzVM jej ponownie, aby pobrać obiekt maszyny wirtualnej i zapisać go w zmiennej do późniejszego użycia. Ten przykład pobiera maszynę wirtualną o nazwie myVM z grupy zasobów "myResourceGroup" i przypisuje ją do zmiennej $vm.

$sourceVM = Get-AzVM `
   -Name myVM `
   -ResourceGroupName myResourceGroup

Galeria obrazów jest podstawowym zasobem używanym do włączania udostępniania obrazów. Dozwolone znaki dla nazwy galerii to wielkie lub małe litery, cyfry, kropki i kropki. Nazwa galerii nie może zawierać kreski. Nazwy galerii muszą być unikatowe w ramach subskrypcji.

Utwórz galerię obrazów przy użyciu polecenia New-AzGallery. Poniższy przykład tworzy galerię o nazwie myGallery w grupie zasobów myGalleryRG .

$resourceGroup = New-AzResourceGroup `
   -Name 'myGalleryRG' `
   -Location 'EastUS'

$gallery = New-AzGallery `
   -GalleryName 'myGallery' `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $resourceGroup.Location `
   -Description 'Azure Compute Gallery for my organization'	

Tworzenie definicji obrazu

Definicje obrazów tworzą logiczne grupowanie obrazów. Są one używane do zarządzania informacjami o wersjach obrazów, które są w nich tworzone. Nazwy definicji obrazów mogą składać się z wielkich lub małych liter, cyfr, kropek, kreski i kropek. Aby uzyskać więcej informacji na temat wartości, które można określić dla definicji obrazu, zobacz Definicje obrazów.

Utwórz definicję obrazu przy użyciu polecenia New-AzGalleryImageDefinition. W tym przykładzie obraz galerii nosi nazwę myGalleryImage i jest tworzony dla wyspecjalizowanego obrazu.

$galleryImage = New-AzGalleryImageDefinition `
   -GalleryName $gallery.Name `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $gallery.Location `
   -Name 'myImageDefinition' `
   -OsState specialized `
   -OsType Windows `
   -Publisher 'myPublisher' `
   -Offer 'myOffer' `
   -Sku 'mySKU'

Tworzenie wersji obrazu

Utwórz wersję obrazu na podstawie maszyny wirtualnej przy użyciu polecenia New-AzGalleryImageVersion.

Dozwolone znaki dla wersji obrazu to liczby i kropki. Liczby muszą należeć do zakresu 32-bitowej liczby całkowitej. Format: MajorVersion.Wersja pomocnicza.Stosowanie poprawek.

W tym przykładzie wersja obrazu to 1.0.0 i jest replikowana do centrów danych Wschodnie stany USA i Południowo-środkowe stany USA . Podczas wybierania regionów docelowych na potrzeby replikacji należy uwzględnić region źródłowy jako docelowy dla replikacji.

Aby utworzyć wersję obrazu na podstawie maszyny wirtualnej, użyj polecenia $vm.Id.ToString() dla elementu -Source.

$region1 = @{Name='South Central US';ReplicaCount=1}
$region2 = @{Name='East US';ReplicaCount=2}
$targetRegions = @($region1,$region2)

New-AzGalleryImageVersion `
   -GalleryImageDefinitionName $galleryImage.Name`
   -GalleryImageVersionName '1.0.0' `
   -GalleryName $gallery.Name `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $resourceGroup.Location `
   -TargetRegion $targetRegions  `
   -Source $sourceVM.Id.ToString() `
   -PublishingProfileEndOfLifeDate '2023-12-01'

Replikacja obrazu do wszystkich regionów docelowych może zająć trochę czasu.

Tworzenie zestawu skalowania na podstawie obrazu

Utwórz zestaw skalowania za pomocą polecenia New-AzVmss z parametrem -ImageName umożliwiającym zdefiniowanie niestandardowego obrazu maszyny wirtualnej utworzonego w poprzednim kroku. Musisz również utworzyć moduł równoważenia obciążenia, który umożliwia kierowanie ruchu do poszczególnych wystąpień maszyn wirtualnych. Moduł równoważenia obciążenia zawiera reguły, które pozwalają kierować ruchem na porcie TCP 80 oraz korzystać z ruchu pulpitu zdalnego na porcie TCP 3389 i komunikacji zdalnej programu PowerShell na porcie TCP 5985. Po wyświetleniu monitu podaj własne odpowiednie poświadczenia administracyjne dla wystąpień maszyn wirtualnych w zestawie skalowania:

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

# Define variables for the scale set
$resourceGroupName = "myScaleSet"
$scaleSetName = "myScaleSet"
$location = "East US"

# Create a resource group
New-AzResourceGroup -ResourceGroupName $resourceGroupName -Location $location

# Create a configuration 
$vmssConfig = New-AzVmssConfig `
   -Location $location `
   -OrchestrationMode Flexible `
   -SkuCapacity 2 `
   -SkuName "Standard_D2s_v3"

# Reference the image version
Set-AzVmssStorageProfile $vmssConfig `
  -OsDiskCreateOption "FromImage" `
  -ImageReferenceId $galleryImage.Id

# Create the scale set 
New-AzVmss `
  -ResourceGroupName $resourceGroupName `
  -Name $scaleSetName `
  -VirtualMachineScaleSet $vmssConfig

Utworzenie i skonfigurowanie wszystkich zasobów zestawu skalowania i maszyn wirtualnych trwa kilka minut.

Zalecamy udostępnienie dostępu na poziomie galerii obrazów. Użyj adresu e-mail i polecenia cmdlet Get-AzADUser , aby uzyskać identyfikator obiektu dla użytkownika, a następnie użyj polecenia New-AzRoleAssignment , aby udzielić im dostępu do galerii. Zastąp przykładowy adres e-mail w alinne_montes@contoso.com tym przykładzie własnymi informacjami.

# Get the object ID for the user
$user = Get-AzADUser -StartsWith alinne_montes@contoso.com
# Grant access to the user for our gallery
New-AzRoleAssignment `
   -ObjectId $user.Id `
   -RoleDefinitionName Reader `
   -ResourceName $gallery.Name `
   -ResourceType Microsoft.Compute/galleries `
   -ResourceGroupName $resourceGroup.ResourceGroupName

Czyszczenie zasobów

Gdy grupa zasobów nie będzie już potrzebna, możesz usunąć grupę zasobów i wszystkie powiązane zasoby za pomocą polecenia cmdlet Remove-AzResourceGroup :

# Delete the gallery 
Remove-AzResourceGroup -Name myGalleryRG

# Delete the scale set resource group
Remove-AzResourceGroup -Name myResoureceGroup

Następne kroki

W tym samouczku omówiono tworzenie niestandardowego obrazu maszyny wirtualnej i używanie go z zestawami skalowania za pośrednictwem programu Azure PowerShell:

  • Tworzenie galerii zasobów obliczeniowych platformy Azure
  • Tworzenie definicji obrazu
  • Tworzenie wersji obrazu
  • Tworzenie zestawu skalowania na podstawie obrazu
  • Udostępnianie galerii obrazów

Przejdź do następnego samouczka, aby dowiedzieć się, jak wdrożyć aplikacje w zestawie skalowania.