Udostępnij za pośrednictwem


Wdrażanie maszyn wirtualnych typu spot platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Korzystanie z maszyn wirtualnych typu spot platformy Azure umożliwia korzystanie z nieużywanej pojemności przy znacznych oszczędnościach. W dowolnym momencie, gdy platforma Azure potrzebuje pojemności z powrotem, infrastruktura platformy Azure eksmituje maszyny wirtualne typu spot platformy Azure. W związku z tym maszyny wirtualne typu spot platformy Azure doskonale nadają się do obsługi obciążeń, które mogą obsługiwać przerwy, takie jak zadania przetwarzania wsadowego, środowiska deweloperskie/testowe, duże obciążenia obliczeniowe i nie tylko.

Cennik maszyn wirtualnych typu Spot platformy Azure jest zmienny na podstawie regionu i jednostki SKU. Aby uzyskać więcej informacji, zobacz Cennik maszyn wirtualnych dla systemów Linux i Windows.

Możesz ustawić maksymalną cenę, którą chcesz zapłacić, za godzinę dla maszyny wirtualnej. Maksymalna cena maszyny wirtualnej typu spot platformy Azure można ustawić w dolarach amerykańskich (USD), używając maksymalnie 5 miejsc dziesiętnych. Na przykład wartość 0.98765 to maksymalna cena 0,98765 USD za godzinę. Jeśli ustawisz maksymalną cenę na -1wartość , maszyna wirtualna zostanie wykluczona na podstawie ceny. Cena maszyny wirtualnej jest bieżącą ceną maszyny wirtualnej typu spot platformy Azure lub ceną standardowej maszyny wirtualnej, która kiedykolwiek jest mniejsza, o ile jest dostępna pojemność i limit przydziału. Aby uzyskać więcej informacji na temat ustawiania maksymalnej ceny, zobacz Azure Spot Virtual Machines — cennik.

Proces tworzenia maszyny wirtualnej typu spot platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure jest taki sam jak w artykule Szybki start. Wystarczy dodać parametr "--priority Spot", ustawić --eviction-policy Deallocate wartość na (wartość domyślna) lub Delete, i podać maksymalną cenę lub -1.

Instalowanie interfejsu wiersza polecenia platformy Azure

Aby utworzyć maszyny wirtualne usługi Azure Spot, musisz uruchomić interfejs wiersza polecenia platformy Azure w wersji 2.0.74 lub nowszej. Aby odnaleźć wersję, uruchom polecenie az --version. Jeśli konieczna będzie instalacja lub uaktualnienie interfejsu, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Zaloguj się do platformy Azure przy użyciu polecenia az login.

az login

Tworzenie maszyny wirtualnej typu spot platformy Azure

W tym przykładzie pokazano, jak wdrożyć maszynę wirtualną typu spot platformy Azure z systemem Linux, która nie jest eksmitowana na podstawie ceny. Zasady eksmisji są ustawione na cofnięcie przydziału maszyny wirtualnej, aby można było ją uruchomić ponownie w późniejszym czasie. Jeśli chcesz usunąć maszynę wirtualną i dysk źródłowy podczas eksmitowania maszyny wirtualnej, ustaw wartość --eviction-policy Delete.

az group create -n mySpotGroup -l eastus
az vm create \
    --resource-group mySpotGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --priority Spot \
    --max-price -1 \
	--eviction-policy Deallocate

Po utworzeniu maszyny wirtualnej możesz wykonać zapytanie, aby wyświetlić maksymalną cenę rozliczeniową dla wszystkich maszyn wirtualnych w grupie zasobów.

az vm list \
   -g mySpotGroup \
   --query '[].{Name:name, MaxPrice:billingProfile.maxPrice}' \
   --output table

Symulowanie eksmisji

Możesz symulować eksmisję maszyny wirtualnej typu spot platformy Azure przy użyciu interfejsu wiersza polecenia REST, programu PowerShell lub interfejsu wiersza polecenia, aby sprawdzić, jak dobrze aplikacja reaguje na nagłe eksmisję.

W większości przypadków chcesz użyć maszyn wirtualnych interfejsu API REST — symulowanie eksmisji w celu ułatwienia zautomatyzowanego testowania aplikacji. W przypadku architektury REST oznacza, że Response Code: 204 symulowana eksmisja zakończyła się pomyślnie. Możesz połączyć symulowane eksmisje z usługą Zaplanowane zdarzenie, aby zautomatyzować sposób reagowania aplikacji podczas eksmitowania maszyny wirtualnej.

Aby zobaczyć zaplanowane zdarzenia w akcji, obejrzyj artykuł Azure Friday — Using Azure Scheduled Events to prepare for VM maintenance (Usługa Azure Friday — używanie zaplanowanych zdarzeń platformy Azure do przygotowania do konserwacji maszyny wirtualnej).

Szybki test

Aby uzyskać szybki test pokazujący, jak działa symulowana eksmisja, przeprowadźmy wykonywanie zapytań dotyczących zaplanowanej usługi zdarzeń, aby zobaczyć, jak wygląda podczas symulowania eksmisji przy użyciu interfejsu wiersza polecenia platformy Azure.

Usługa Zaplanowane zdarzenie jest włączona dla usługi przy pierwszym żądaniu zdarzeń.

Zdalnie do maszyny wirtualnej, a następnie otwórz wiersz polecenia.

W wierszu polecenia na maszynie wirtualnej wpisz:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

Ta pierwsza odpowiedź może potrwać do 2 minut. Od tej pory powinny wyświetlać dane wyjściowe niemal natychmiast.

Na komputerze z zainstalowanym interfejsem wiersza polecenia platformy Azure (takim jak maszyna lokalna) symuluj eksmisję przy użyciu polecenia az vm simulate-eviction. Zastąp własną nazwę grupy zasobów i nazwę maszyny wirtualnej.

az vm simulate-eviction --resource-group mySpotRG --name mySpot

Dane wyjściowe odpowiedzi mają Status: Succeeded wartość , jeśli żądanie zostało wykonane pomyślnie.

Szybko wróć do połączenia zdalnego z maszyną wirtualną typu spot i ponownie wykonaj zapytanie dotyczące punktu końcowego Zaplanowane zdarzenia. Powtórz następujące polecenie, dopóki nie uzyskasz danych wyjściowych zawierających więcej informacji:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

Gdy zaplanowana usługa zdarzeń otrzymuje powiadomienie o eksmisji, otrzymasz odpowiedź podobną do następujących danych wyjściowych:

{"DocumentIncarnation":1,"Events":[{"EventId":"A123BC45-1234-5678-AB90-ABCDEF123456","EventStatus":"Scheduled","EventType":"Preempt","ResourceType":"VirtualMachine","Resources":["myspotvm"],"NotBefore":"Tue, 16 Mar 2021 00:58:46 GMT","Description":"","EventSource":"Platform"}]}

Zobaczysz, że "EventType":"Preempt"zasób , a zasób to zasób "Resources":["myspotvm"]maszyny wirtualnej .

Możesz również zobaczyć warunek eksmisji maszyny wirtualnej, sprawdzając "NotBefore" wartość — maszyna wirtualna nie zostanie eksmitowana przed upływem określonego czasu, aby umożliwić aplikacji bezpieczne zamknięcie.

Następne kroki

Maszynę wirtualną typu spot platformy Azure można również utworzyć przy użyciu programu Azure PowerShell, portalu lub szablonu.

Wykonaj zapytanie dotyczące bieżących informacji o cenach detalicznych platformy Azure przy użyciu interfejsu API cen detalicznych platformy Azure, aby uzyskać informacje o maszynie wirtualnej typu spot platformy Azure. skuName Obie wartości meterName zawierają Spotwartość .

Jeśli wystąpi błąd, zobacz Kody błędów.