Udostępnij za pośrednictwem


Samouczek: tworzenie i używanie obrazu niestandardowego dla zestawów skalowania maszyn wirtualnych za pomocą interfejsu wiersza polecenia platformy Azure

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 wyspecjalizowanej definicji obrazu
  • Tworzenie wersji obrazu
  • Tworzenie zestawu skalowania na podstawie wyspecjalizowanego obrazu
  • Udostępnianie galerii obrazów

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

Wymagania wstępne

  • Ten artykuł wymaga wersji 2.4.0 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Omówienie

Galeria zasobów obliczeniowych platformy Azure upraszcza udostępnianie obrazów niestandardowych w całej organizacji. Obrazy niestandardowe są podobne do obrazów z platformy handlowej, ale tworzy się je samodzielnie. Obrazy niestandardowe mogą służyć do ładowania początkowego konfiguracji, na przykład do wstępnego ładowania aplikacji, konfiguracji aplikacji i innych konfiguracji systemu operacyjnego.

Galeria obliczeń platformy Azure umożliwia udostępnianie niestandardowych obrazów maszyn wirtualnych innym osobom. Wybierz obrazy, które chcesz udostępnić, a w których regionach chcesz je udostępnić, oraz do kogo chcesz je udostępnić.

Tworzenie i konfigurowanie źródłowej maszyny wirtualnej

Najpierw utwórz grupę zasobów za pomocą polecenia az group create, a następnie utwórz maszynę wirtualną za pomocą polecenia az vm create. Ta maszyna wirtualna jest następnie używana jako źródło obrazu.

Poniższy przykład tworzy maszynę wirtualną opartą na systemie Linux o nazwie myVM w grupie zasobów o nazwie myResourceGroup.

export RANDOM_ID=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_ID"
export REGION="eastus"
export MY_VM_NAME="myVM"

az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

az vm create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_VM_NAME \
  --image debian11 \
  --admin-username azureuser \
  --generate-ssh-keys

Napiwek

Identyfikator maszyny wirtualnej jest wyświetlany w danych wyjściowych polecenia az vm create. Skopiuj i zapisz je w bezpiecznej lokalizacji, aby można było jej użyć w dalszej części tego samouczka.

Galeria obrazów jest podstawowym zasobem używanym do włączania udostępniania obrazów.

Dozwolone znaki nazw 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 az sig create.

W poniższym przykładzie:

  • Utworzysz grupę zasobów dla galerii o nazwie myGalleryRG znajdującą się w regionie Wschodnie stany USA.
  • Galeria nosi nazwę myGallery.
export MY_GALLERY_RG_NAME="myGalleryRG$RANDOM_ID"
export MY_GALLERY_NAME="myGallery$RANDOM_ID"

az group create --name $MY_GALLERY_RG_NAME --location $REGION
az sig create --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME

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.

Upewnij się, że definicja obrazu jest właściwym typem:

  • Stan — jeśli uogólniono maszynę wirtualną (przy użyciu narzędzia Sysprep dla systemu Windows lub waagent -deprovision dla systemu Linux), należy utworzyć uogólnioną definicję obrazu przy użyciu polecenia --os-state generalized. Jeśli chcesz użyć maszyny wirtualnej bez usuwania istniejących kont użytkowników, utwórz wyspecjalizowaną definicję obrazu przy użyciu polecenia --os-state specialized.
  • Typ zabezpieczeń — nowe maszyny wirtualne platformy Azure są domyślnie tworzone przy użyciu skonfigurowanego zaufanego uruchamiania. Ten samouczek zawiera kolejne przykłady kodu odzwierciedlające konfigurację zaufanego uruchamiania podczas tworzenia definicji obrazu i zestawu skalowania. Jeśli tworzysz obraz z maszyną wirtualną, która nie ma włączonego zaufanego uruchamiania, pamiętaj o odzwierciedleniu prawidłowego typu zabezpieczeń podczas tworzenia obu tych zasobów. Aby uzyskać więcej informacji na temat zaufanego uruchamiania, zobacz Zaufane uruchamianie maszyn wirtualnych platformy Azure.

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 w galerii przy użyciu polecenia az sig image-definition create.

W poniższym przykładzie definicja obrazu to:

  • Nazwana myImageDefinition.
  • Skonfigurowany dla wyspecjalizowanego obrazu systemu operacyjnego Linux. Aby utworzyć definicję obrazów przy użyciu systemu operacyjnego Windows, użyj polecenia --os-type Windows.
  • Skonfigurowane na potrzeby zaufanego uruchamiania.
export MY_IMAGE_DEF_NAME="myImageDefinition$RANDOM_ID"
MY_PUBLISHER_NAME="myPublisher$RANDOM_ID"

az sig image-definition create \
   --resource-group $MY_GALLERY_RG_NAME \
   --gallery-name $MY_GALLERY_NAME \
   --gallery-image-definition $MY_IMAGE_DEF_NAME \
   --publisher $MY_PUBLISHER_NAME \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized \
   --features SecurityType=TrustedLaunch

Napiwek

Identyfikator definicji obrazu jest wyświetlany w danych wyjściowych polecenia . Skopiuj i zapisz je w bezpiecznej lokalizacji, aby można było jej użyć w dalszej części tego samouczka.

Tworzenie wersji obrazu

Utwórz wersję obrazu z maszyny wirtualnej przy użyciu polecenia az image gallery create-image-version.

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 poniższym przykładzie:

  • Wersja obrazu to 1.0.0.
  • Tworzymy jedną replikę w regionie Południowo-środkowe stany USA i jedną replikę w regionie Wschodnie stany USA . Regiony replikacji muszą obejmować region, w którym znajduje się źródłowa maszyna wirtualna.
  • --virtual-machine to identyfikator utworzonej wcześniej maszyny wirtualnej.
export MY_VM_ID=$(az vm show --name $MY_VM_NAME --resource-group $MY_RESOURCE_GROUP_NAME --query "id" --output tsv)

az sig image-version create \
   --resource-group $MY_GALLERY_RG_NAME \
   --gallery-name $MY_GALLERY_NAME \
   --gallery-image-definition $MY_IMAGE_DEF_NAME \
   --gallery-image-version 1.0.0 \
   --target-regions "southcentralus=1" "eastus=1" \
   --virtual-machine $MY_VM_ID

Uwaga

Musisz poczekać, aż wersja obrazu zostanie całkowicie skompilowana i zreplikowana, zanim będzie można użyć tego samego obrazu, aby utworzyć inną wersję obrazu.

Obraz można również przechowywać w usłudze Premium Storage, dodając --storage-account-type premium_lrsmagazyn strefowo nadmiarowy , dodając --storage-account-type standard_zrs go podczas tworzenia wersji obrazu.

Tworzenie zestawu skalowania na podstawie obrazu

Zestaw skalowania można utworzyć przy użyciu polecenia az vmss create. Jeśli używasz wyspecjalizowanej źródłowej maszyny wirtualnej, dodaj --specialized parametr , aby wskazać, że jest to wyspecjalizowany obraz.

Gdy używasz identyfikatora definicji obrazu do --image tworzenia wystąpień zestawu skalowania, należy utworzyć zestaw skalowania, który używa najnowszej dostępnej wersji obrazu. Jeśli chcesz mieć określoną wersję obrazu, upewnij się, że podczas definiowania elementu --imagenależy uwzględnić identyfikator wersji obrazu.

  • Najnowszy przykład obrazu: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage

  • Przykład konkretnego obrazu: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0

W poniższym przykładzie zestaw skalowania to:

  • Nazwane myScaleSet
  • Przy użyciu najnowszej wersji obrazu myImageDefinition .
  • Skonfigurowane na potrzeby zaufanego uruchamiania.
export MY_IMAGE_DEF_ID=$(az sig image-definition show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --gallery-image-definition $MY_IMAGE_DEF_NAME --query "id" --output tsv)
export MY_SCALE_SET_RG_NAME="myResourceGroup$RANDOM_ID"
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_ID"

az group create --name $MY_SCALE_SET_RG_NAME --location eastus

az vmss create \
   --resource-group $MY_SCALE_SET_RG_NAME \
   --name $MY_SCALE_SET_NAME \
   --orchestration-mode flexible \
   --image $MY_IMAGE_DEF_ID \
   --specialized \
   --security-type TrustedLaunch

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

Obrazy można udostępniać w różnych subskrypcjach przy użyciu kontroli dostępu opartej na rolach (RBAC) platformy Azure i udostępniać je na poziomach galerii, definicji obrazu lub wersji obrazu. Każdy użytkownik z uprawnieniem do odczytu do wersji obrazu, nawet w ramach subskrypcji, może wdrożyć maszynę wirtualną przy użyciu wersji obrazu.

Zalecamy udostępnienie innym użytkownikom na poziomie galerii.

Poniższy przykład:

  • Pobiera identyfikator obiektu galerii przy użyciu polecenia az sig show.
  • Zapewnia dostęp do galerii przy użyciu polecenia az role assignment create.
    • Używa identyfikatora obiektu jako zakresu przypisania.
    • Używa identyfikatora zalogowany użytkownika jako osoba przypisana do celów demonstracyjnych. Jeśli używasz tego kodu w kodzie testowym lub produkcyjnym, pamiętaj o zaktualizowaniu osoby przydzielonej, aby odzwierciedlić, kto ma mieć dostęp do tego obrazu. Aby uzyskać więcej informacji na temat udostępniania zasobów przy użyciu kontroli dostępu opartej na rolach platformy Azure, zobacz Dodawanie lub usuwanie przypisań ról platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure. , wraz z adresem e-mail za pomocą polecenia az role assignment create , aby udzielić użytkownikowi dostępu do galerii obrazów udostępnionych.
export MY_GALLERY_ID=$(az sig show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --query "id" --output tsv)
export CALLER_ID=$(az ad signed-in-user show --query id -o tsv)

az role assignment create \
   --role "Reader" \
   --assignee $CALLER_ID \
   --scope $MY_GALLERY_ID

Czyszczenie zasobów

Aby pozbyć się zestawu skalowania i dodatkowych zasobów, usuń grupę zasobów wraz z całą zawartością za pomocą polecenia az group delete. Parametr --no-wait zwraca kontrolę do wiersza polecenia bez oczekiwania na zakończenie operacji. Parametr --yes potwierdza, że chcesz usunąć zasoby bez wyświetlania dodatkowego monitu.

Następne kroki

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

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

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