Automatyczne uaktualnienia obrazów systemu operacyjnego zestawu skalowania maszyn wirtualnych platformy Azure

Uwaga

Wiele kroków wymienionych w tym dokumencie dotyczy zestawów skalowania maszyn wirtualnych przy użyciu trybu jednolitej aranżacji. Zalecamy używanie elastycznej orkiestracji dla nowych obciążeń. Aby uzyskać więcej informacji, zobacz Tryby orchesration dla zestawów skalowania maszyn wirtualnych na platformie Azure.

Włączenie automatycznych uaktualnień obrazów systemu operacyjnego w zestawie skalowania ułatwia bezpieczne i automatyczne uaktualnianie dysku systemu operacyjnego dla wszystkich wystąpień w zestawie skalowania.

Automatyczne uaktualnianie systemu operacyjnego ma następujące cechy:

  • Po skonfigurowaniu najnowszy obraz systemu operacyjnego opublikowany przez wydawców obrazów jest automatycznie stosowany do zestawu skalowania bez interwencji użytkownika.
  • Uaktualnia partie wystąpień w sposób kroczący za każdym razem, gdy nowy obraz jest publikowany przez wydawcę.
  • Integruje się z sondami kondycji aplikacji i rozszerzeniem Application Health.
  • Działa dla wszystkich rozmiarów maszyn wirtualnych oraz obrazów systemów Windows i Linux, w tym obrazów niestandardowych za pośrednictwem galerii obliczeń platformy Azure.
  • W dowolnym momencie możesz zrezygnować z automatycznych uaktualnień (uaktualnienia systemu operacyjnego można również zainicjować ręcznie).
  • Dysk systemu operacyjnego maszyny wirtualnej jest zastępowany nowym dyskiem systemu operacyjnego utworzonym przy użyciu najnowszej wersji obrazu. Skonfigurowane rozszerzenia i niestandardowe skrypty danych są uruchamiane, podczas gdy utrwalane dyski danych są zachowywane.
  • Sekwencjonowanie rozszerzeń jest obsługiwane.
  • Można włączyć w zestawie skalowania dowolnego rozmiaru.

Uwaga

Przed włączeniem automatycznych uaktualnień obrazów systemu operacyjnego zapoznaj się z sekcją wymagań tej dokumentacji.

Jak działa automatyczne uaktualnianie obrazu systemu operacyjnego?

Uaktualnienie działa przez zastąpienie dysku systemu operacyjnego maszyny wirtualnej nowym dyskiem utworzonym przy użyciu najnowszej wersji obrazu. Wszystkie skonfigurowane rozszerzenia i niestandardowe skrypty danych są uruchamiane na dysku systemu operacyjnego, podczas gdy dyski danych są zachowywane. Aby zminimalizować przestój aplikacji, uaktualnienia odbywają się w partiach bez więcej niż 20% uaktualnienia zestawu skalowania w dowolnym momencie.

Możesz zintegrować sondę kondycji aplikacji usługi Azure Load Balancer lub rozszerzenie Application Health, aby śledzić kondycję aplikacji po uaktualnieniu. Zalecamy włączenie pulsu aplikacji w celu zweryfikowania powodzenia uaktualnienia.

Aktualizacje Aktualizacje dostępności

Model dostępności dla platformy zorganizowanych aktualizacji opisanych poniżej zapewnia, że konfiguracje dostępności na platformie Azure są przestrzegane na wielu poziomach dostępności.

Między regionami:

  • Aktualizacja zostanie przeniesiona na platformę Azure globalnie w sposób etapowy, aby zapobiec niepowodzeniom wdrożeń obejmujących całą platformę Azure.
  • "Faza" może mieć co najmniej jeden region, a aktualizacja jest przenosina między fazami tylko wtedy, gdy kwalifikujące się maszyny wirtualne w poprzedniej fazie zostaną pomyślnie zaktualizowane.
  • Regiony sparowane geograficznie nie będą aktualizowane współbieżnie i nie mogą znajdować się w tej samej fazie regionalnej.
  • Powodzenie aktualizacji jest mierzone przez śledzenie kondycji po aktualizacji maszyny wirtualnej.

W obrębie regionu:

  • Maszyny wirtualne w różnych Strefy dostępności nie są aktualizowane współbieżnie przy użyciu tej samej aktualizacji.

W zestawie:

  • Wszystkie maszyny wirtualne w wspólnym zestawie skalowania nie są aktualizowane współbieżnie.
  • Maszyny wirtualne w typowym zestawie skalowania maszyn wirtualnych są grupowane w partiach i aktualizowane w granicach domeny aktualizacji zgodnie z poniższym opisem.

Proces aktualizacji zorganizowanych przez platformę jest wdrażany co miesiąc w celu wdrażania obsługiwanych uaktualnień obrazów platformy systemu operacyjnego. W przypadku obrazów niestandardowych za pośrednictwem galerii obliczeniowej platformy Azure uaktualnienie obrazu jest uruchamiane tylko dla określonego regionu świadczenia usługi Azure, gdy nowy obraz zostanie opublikowany i zreplikowany do regionu tego zestawu skalowania.

Uaktualnianie maszyn wirtualnych w zestawie skalowania

Region zestawu skalowania kwalifikuje się do uzyskania uaktualnień obrazów za pośrednictwem procesu dostępności dla obrazów platformy lub replikowania nowych niestandardowych wersji obrazów dla galerii obrazów udziału. Uaktualnienie obrazu jest następnie stosowane do pojedynczego zestawu skalowania w sposób wsadowy w następujący sposób:

  1. Przed rozpoczęciem procesu uaktualniania koordynator zapewni, że nie więcej niż 20% wystąpień w całym zestawie skalowania jest w złej kondycji (z jakiegokolwiek powodu).
  2. Orkiestrator uaktualniania identyfikuje partię wystąpień maszyn wirtualnych do uaktualnienia, a każda partia ma maksymalnie 20% całkowitej liczby wystąpień, z uwzględnieniem minimalnego rozmiaru partii jednej maszyny wirtualnej. Nie ma wymagań dotyczących minimalnego rozmiaru zestawu skalowania i zestawów skalowania z 5 lub mniejszą liczbą wystąpień będzie mieć 1 maszynę wirtualną na partię uaktualnienia (minimalny rozmiar partii).
  3. Dysk systemu operacyjnego każdej maszyny wirtualnej w wybranej partii uaktualnienia jest zastępowany nowym dyskiem systemu operacyjnego utworzonym na podstawie najnowszego obrazu. Wszystkie określone rozszerzenia i konfiguracje w modelu zestawu skalowania są stosowane do uaktualnionego wystąpienia.
  4. W przypadku zestawów skalowania ze skonfigurowanymi sondami kondycji aplikacji lub rozszerzeniem usługi Application Health uaktualnienie trwa do 5 minut, zanim wystąpienie stanie się w dobrej kondycji, zanim przejdzie do uaktualnienia następnej partii. Jeśli wystąpienie nie odzyska kondycji w ciągu 5 minut po uaktualnieniu, domyślnie poprzedni dysk systemu operacyjnego dla wystąpienia zostanie przywrócony.
  5. Orkiestrator uaktualniania śledzi również procent wystąpień, które stają się w złej kondycji po uaktualnieniu. Uaktualnienie zostanie zatrzymane, jeśli ponad 20% uaktualnionych wystąpień stanie się w złej kondycji podczas procesu uaktualniania.
  6. Powyższy proces będzie kontynuowany do momentu uaktualnienia wszystkich wystąpień w zestawie skalowania.

Orkiestrator uaktualniania systemu operacyjnego zestawu skalowania sprawdza ogólną kondycję zestawu skalowania przed uaktualnieniem każdej partii. Podczas uaktualniania partii mogą istnieć inne współbieżne zaplanowane lub nieplanowane działania konserwacyjne, które mogą mieć wpływ na kondycję wystąpień zestawu skalowania. W takich przypadkach, jeśli ponad 20% wystąpień zestawu skalowania stanie się w złej kondycji, uaktualnienie zestawu skalowania zostanie zatrzymane na końcu bieżącej partii.

Aby zmodyfikować ustawienia domyślne skojarzone z uaktualnieniami stopniowymi, zapoznaj się z zasadami uaktualniania stopniowego platformy Azure.

Uwaga

Automatyczne uaktualnianie systemu operacyjnego nie powoduje uaktualnienia jednostki SKU obrazu referencyjnego w zestawie skalowania. Aby zmienić jednostkę SKU (np. Ubuntu 18.04-LTS na 20.04-LTS), należy zaktualizować model zestawu skalowania bezpośrednio przy użyciu odpowiedniej jednostki SKU obrazu. Nie można zmienić wydawcy obrazów i oferty dla istniejącego zestawu skalowania.

Uaktualnianie obrazu systemu operacyjnego a obraz z obrazu reimage

Zarówno uaktualnienie obrazu systemu operacyjnego, jak i reimage to metody służące do aktualizowania maszyn wirtualnych w zestawie skalowania, ale obsługują różne cele i mają różne wpływ.

Uaktualnienie obrazu systemu operacyjnego obejmuje aktualizację bazowego obrazu systemu operacyjnego, który jest używany do tworzenia nowych wystąpień w zestawie skalowania. Podczas uaktualniania obrazu systemu operacyjnego platforma Azure utworzy nowe wystąpienia maszyn wirtualnych ze zaktualizowanym obrazem systemu operacyjnego i stopniowo zastępuje stare wystąpienia maszyn wirtualnych w zestawie skalowania nowymi wystąpieniami. Ten proces jest zwykle wykonywany na etapach w celu zapewnienia wysokiej dostępności. Uaktualnienia obrazów systemu operacyjnego to nie zakłócająca metoda stosowania aktualizacji lub zmian w bazowym systemie operacyjnym maszyn wirtualnych w zestawie skalowania. Nie ma to wpływu na istniejące wystąpienia maszyn wirtualnych, dopóki nie zostaną zastąpione nowymi wystąpieniami.

Ponowne tworzenie wystąpienia maszyny wirtualnej w zestawie skalowania jest bardziej natychmiastowym i zakłócającym działaniem. Po wybraniu ponownego obrazu wystąpienia maszyny wirtualnej platforma Azure zatrzyma wybrane wystąpienie maszyny wirtualnej, wykona operację ponownego obrazu, a następnie uruchom ponownie maszynę wirtualną przy użyciu tego samego obrazu systemu operacyjnego. Spowoduje to efektywne ponowne zainstalowanie systemu operacyjnego w tym konkretnym wystąpieniu maszyny wirtualnej. Ponowne tworzenie obrazów jest zwykle używane, gdy konieczne jest rozwiązywanie problemów lub resetowanie określonego wystąpienia maszyny wirtualnej z powodu problemów z tym wystąpieniem.

Kluczowe różnice:

  • Uaktualnienie obrazu systemu operacyjnego to proces stopniowy i nie zakłócający aktualizacji obrazu systemu operacyjnego dla całego zestawu skalowania maszyn wirtualnych w czasie, zapewniając minimalny wpływ na uruchomione obciążenia.
  • Reimage to bardziej natychmiastowa i destrukcyjna akcja, która ma wpływ tylko na wybrane wystąpienie maszyny wirtualnej, tymczasowo zatrzymując ją i ponownie instalując system operacyjny.

Kiedy należy użyć każdej metody:

  • Uaktualnij obraz systemu operacyjnego, jeśli chcesz zaktualizować obraz systemu operacyjnego dla całego zestawu skalowania przy zachowaniu wysokiej dostępności.
  • Użyj funkcji Reimage, jeśli musisz rozwiązać problemy lub zresetować określone wystąpienie maszyny wirtualnej w zestawie skalowania maszyn wirtualnych.

Ważne jest, aby starannie zaplanować i wybrać odpowiednią metodę na podstawie określonych wymagań, aby zminimalizować wszelkie zakłócenia w aplikacjach i usługach uruchomionych w zestawie skalowania maszyn wirtualnych.

Obsługiwane obrazy systemu operacyjnego

Obecnie obsługiwane są tylko niektóre obrazy platformy systemu operacyjnego. Obrazy niestandardowe są obsługiwane , jeśli zestaw skalowania używa niestandardowych obrazów za pośrednictwem galerii obliczeń platformy Azure.

Następujące jednostki SKU platformy są obecnie obsługiwane (a więcej jest dodawanych okresowo):

Publisher Oferta systemu operacyjnego SKU
Canonical UbuntuServer 18.04-LTS
Canonical UbuntuServer 18_04-LTS-Gen2
Canonical 0001-com-ubuntu-server-focal 20_04-LTS
Canonical 0001-com-ubuntu-server-focal 20_04-LTS-Gen2
Canonical 0001-com-ubuntu-server-jammy 22_04-LTS
Canonical 0001-com-ubuntu-server-jammy 22_04-LTS-Gen2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-1
MicrosoftCblMariner Cbl-Mariner 1-Gen2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-2
MicrosoftCblMariner Cbl-Mariner cbl-mariner-2-Gen2
MicrosoftSqlServer Sql2017-ws2019 przedsiębiorstwo
MicrosoftWindowsServer WindowsServer 2012-R2-Datacenter
MicrosoftWindowsServer WindowsServer 2016-Datacenter
MicrosoftWindowsServer WindowsServer 2016-Datacenter-gensecond
MicrosoftWindowsServer WindowsServer 2016-Datacenter-gs
MicrosoftWindowsServer WindowsServer 2016-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-Containers
MicrosoftWindowsServer WindowsServer 2016-Datacenter-with-containers-gs
MicrosoftWindowsServer WindowsServer 2019-Datacenter
MicrosoftWindowsServer WindowsServer 2019-Datacenter-Core
MicrosoftWindowsServer WindowsServer 2019-Datacenter-Core-with-Containers
MicrosoftWindowsServer WindowsServer 2019-Datacenter-gensecond
MicrosoftWindowsServer WindowsServer 2019-Datacenter-gs
MicrosoftWindowsServer WindowsServer 2019-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2019-Datacenter-with-Containers
MicrosoftWindowsServer WindowsServer 2019-Datacenter-with-Containers-gs
MicrosoftWindowsServer WindowsServer 2022-Datacenter
MicrosoftWindowsServer WindowsServer 2022-Datacenter-smalldisk
MicrosoftWindowsServer WindowsServer 2022-Datacenter-smalldisk-g2
MicrosoftWindowsServer WindowsServer 2022-Datacenter-core
MicrosoftWindowsServer WindowsServer 2022-Datacenter-core-smalldisk
MicrosoftWindowsServer WindowsServer 2022-Datacenter-g2
MicrosoftWindowsServer WindowsServer Datacenter-core-20h2-with-containers-smalldisk-gs
MicrosoftWindowsServer WindowsServer 2022-Datacenter-azure-edition
MicrosoftWindowsServer WindowsServer 2022-Datacenter-azure-edition-smalldisk

Wymagania dotyczące konfigurowania automatycznego uaktualniania obrazu systemu operacyjnego

  • Właściwość version obrazu musi być ustawiona na najnowszą.
  • Musi używać sond kondycji aplikacji lub rozszerzenia Application Health dla zestawów skalowania spoza usługi Service Fabric. Aby uzyskać informacje o wymaganiach usługi Service Fabric, zobacz Wymagania dotyczące usługi Service Fabric.
  • Użyj interfejsu API obliczeń w wersji 2018-10-01 lub nowszej.
  • Upewnij się, że zasoby zewnętrzne określone w modelu zestawu skalowania są dostępne i aktualizowane. Przykłady obejmują identyfikator URI sygnatury dostępu współdzielonego dla ładowania rozruchowego we właściwościach rozszerzenia maszyny wirtualnej, ładunku na koncie magazynu, odwołania do wpisów tajnych w modelu i nie tylko.
  • W przypadku zestawów skalowania korzystających z maszyn wirtualnych z systemem Windows, począwszy od interfejsu API obliczeniowego w wersji 2019-03-01, właściwość virtualMachineProfile.osProfile.windowsConfiguration.enableAutomatic Aktualizacje musi mieć wartość false w definicji modelu zestawu skalowania. Właściwość enableAutomatic Aktualizacje umożliwia stosowanie poprawek na maszynie wirtualnej, gdzie "Windows Update" stosuje poprawki systemu operacyjnego bez zastępowania dysku systemu operacyjnego. Po włączeniu automatycznych uaktualnień obrazów systemu operacyjnego w zestawie skalowania, co można zrobić, ustawiając wartość automaticOSUpgradePolicy.enableAutomaticOSUpgrade na true, dodatkowy proces stosowania poprawek za pośrednictwem usługi Windows Update nie jest wymagany.

Uwaga

Po zastąpieniu dysku systemu operacyjnego za pomocą obrazu lub uaktualnienia dołączone dyski danych mogą mieć ponownie przypisaną literę dysku. Aby zachować te same litery dysku dla dołączonych dysków, zaleca się użycie niestandardowego skryptu rozruchowego.

Wymagania dotyczące usługi Service Fabric

Jeśli używasz usługi Service Fabric, upewnij się, że spełnione są następujące warunki:

  • Poziom trwałości usługi Service Fabric to Silver lub Gold. Jeśli trwałość usługi Service Fabric jest brązowa, tylko typy węzłów bezstanowych obsługują automatyczne uaktualnienia obrazów systemu operacyjnego.
  • Rozszerzenie usługi Service Fabric w definicji modelu zestawu skalowania musi mieć wartość TypeHandlerVersion 1.1 lub nowszą.
  • Poziom trwałości powinien być taki sam w przypadku rozszerzenia klastra usługi Service Fabric i usługi Service Fabric w definicji modelu zestawu skalowania.
  • Dodatkowa sonda kondycji lub użycie rozszerzenia kondycji aplikacji nie jest wymagane w przypadku trwałości Silver lub Gold. Trwałość z brązu z typami węzłów tylko bezstanowymi wymaga dodatkowej sondy kondycji.
  • Właściwość virtualMachineProfile.osProfile.windowsConfiguration.enableAutomatic Aktualizacje właściwość musi mieć wartość false w definicji modelu zestawu skalowania. Właściwość enableAutomatic Aktualizacje umożliwia stosowanie poprawek na maszynie wirtualnej przy użyciu funkcji "Windows Update" i nie jest obsługiwana w zestawach skalowania usługi Service Fabric. Należy zamiast tego użyć właściwości automaticOSUpgradePolicy.enableAutomaticOSUpgrade .

Upewnij się, że ustawienia trwałości nie są niezgodne w klastrze usługi Service Fabric i rozszerzeniu usługi Service Fabric, ponieważ niezgodność spowoduje błędy uaktualniania. Poziomy trwałości można modyfikować zgodnie z wytycznymi opisanymi na tej stronie.

Automatyczne uaktualnianie obrazu systemu operacyjnego dla obrazów niestandardowych

Automatyczne uaktualnianie obrazów systemu operacyjnego jest obsługiwane w przypadku obrazów niestandardowych wdrożonych za pośrednictwem galerii obliczeń platformy Azure. Inne obrazy niestandardowe nie są obsługiwane w przypadku automatycznych uaktualnień obrazów systemu operacyjnego.

Dodatkowe wymagania dotyczące obrazów niestandardowych

  • Proces instalacji i konfiguracji automatycznego uaktualniania obrazu systemu operacyjnego jest taki sam dla wszystkich zestawów skalowania, jak opisano w sekcji konfiguracji tej strony.
  • Wystąpienia zestawów skalowania skonfigurowane na potrzeby automatycznych uaktualnień obrazów systemu operacyjnego zostaną uaktualnione do najnowszej wersji obrazu galerii obliczeń platformy Azure, gdy nowa wersja obrazu zostanie opublikowana i zreplikowana do regionu tego zestawu skalowania. Jeśli nowy obraz nie jest replikowany do regionu, w którym jest wdrażana skala, wystąpienia zestawu skalowania nie zostaną uaktualnione do najnowszej wersji. Replikacja obrazów regionalnych umożliwia kontrolowanie wdrożenia nowego obrazu dla zestawów skalowania.
  • Nowa wersja obrazu nie powinna być wykluczona z najnowszej wersji tego obrazu galerii. Wersje obrazów wykluczone z najnowszej wersji obrazu galerii nie są wdrażane w zestawie skalowania za pomocą automatycznego uaktualniania obrazu systemu operacyjnego.

Uwaga

Uruchomienie pierwszego wdrożenia uaktualnienia obrazu po pierwszym skonfigurowaniu zestawu skalowania na potrzeby automatycznego uaktualniania systemu operacyjnego z powodu niektórych czynników, takich jak okna obsługi lub inne ograniczenia, może upłynąć do 3 godzin. Klienci na najnowszym obrazie mogą nie uzyskać uaktualnienia do momentu udostępnienia nowego obrazu.

Konfigurowanie automatycznego uaktualniania obrazu systemu operacyjnego

Aby skonfigurować automatyczne uaktualnianie obrazu systemu operacyjnego, upewnij się, że właściwość automaticOSUpgradePolicy.enableAutomaticOSUpgrade ma wartość true w definicji modelu zestawu skalowania.

Uwaga

Tryb zasad uaktualniania i zasady automatycznego uaktualniania systemu operacyjnego są oddzielnymi ustawieniami i kontrolują różne aspekty zestawu skalowania. W przypadku zmian w szablonie zestawu skalowania zasady mode uaktualniania określają, co się stanie z istniejącymi wystąpieniami w zestawie skalowania. Jednak zasady enableAutomaticOSUpgrade automatycznego uaktualniania systemu operacyjnego są specyficzne dla obrazu systemu operacyjnego i śledzą zmiany wprowadzone przez wydawcę obrazu i określają, co się stanie po aktualizacji obrazu.

Uwaga

Jeśli enableAutomaticOSUpgrade jest ustawiona wartość true, enableAutomaticUpdates jest automatycznie ustawiona na wartość false i nie można ustawić wartości true.

Interfejs API REST

W poniższym przykładzie opisano sposób ustawiania automatycznych uaktualnień systemu operacyjnego w modelu zestawu skalowania:

PUT or PATCH on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet?api-version=2021-03-01`
{
  "properties": {
    "upgradePolicy": {
      "automaticOSUpgradePolicy": {
        "enableAutomaticOSUpgrade":  true
      }
    }
  }
}

Azure PowerShell

Użyj polecenia cmdlet New-AzVmss, aby skonfigurować automatyczne uaktualnienia obrazów systemu operacyjnego dla zestawu skalowania podczas aprowizacji. W poniższym przykładzie skonfigurowano automatyczne uaktualnienia dla zestawu skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

New-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true

Użyj polecenia cmdlet Update-AzVmsss, aby skonfigurować automatyczne uaktualnienia obrazów systemu operacyjnego dla istniejącego zestawu skalowania. W poniższym przykładzie skonfigurowano automatyczne uaktualnienia dla zestawu skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

Update-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true

Interfejs wiersza polecenia platformy Azure 2.0

Użyj polecenia az vmss create , aby skonfigurować automatyczne uaktualnienia obrazów systemu operacyjnego dla zestawu skalowania podczas aprowizacji. Użyj interfejsu wiersza polecenia platformy Azure w wersji 2.0.47 lub nowszej. W poniższym przykładzie skonfigurowano automatyczne uaktualnienia dla zestawu skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

az vmss create --name myScaleSet --resource-group myResourceGroup --set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true

Użyj polecenia az vmss update , aby skonfigurować automatyczne uaktualnienia obrazów systemu operacyjnego dla istniejącego zestawu skalowania. Użyj interfejsu wiersza polecenia platformy Azure w wersji 2.0.47 lub nowszej. W poniższym przykładzie skonfigurowano automatyczne uaktualnienia dla zestawu skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

az vmss update --name myScaleSet --resource-group myResourceGroup --set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true

Uwaga

Po skonfigurowaniu automatycznych uaktualnień obrazów systemu operacyjnego dla zestawu skalowania należy również przenieść maszyny wirtualne zestawu skalowania do najnowszego modelu zestawu skalowania, jeśli zestaw skalowania używa zasad uaktualniania ręcznego.

Szablony usługi ARM

W poniższym przykładzie opisano sposób ustawiania automatycznych uaktualnień systemu operacyjnego w modelu zestawu skalowania za pomocą szablonów usługi Azure Resource Manager (szablony usługi ARM):

"properties": {
   "upgradePolicy": {
     "mode": "Automatic",
     "RollingUpgradePolicy": {
         "BatchInstancePercent": 20,
         "MaxUnhealthyInstancePercent": 25,
         "MaxUnhealthyUpgradedInstancePercent": 25,
         "PauseTimeBetweenBatches": "PT0S"
     },
    "automaticOSUpgradePolicy": {
      "enableAutomaticOSUpgrade": true,
        "useRollingUpgradePolicy": true,
        "disableAutomaticRollback": false
    }
  },
  },
"imagePublisher": {
   "type": "string",
   "defaultValue": "MicrosoftWindowsServer"
 },
 "imageOffer": {
   "type": "string",
   "defaultValue": "WindowsServer"
 },
 "imageSku": {
   "type": "string",
   "defaultValue": "2022-datacenter"
 },
 "imageOSVersion": {
   "type": "string",
   "defaultValue": "latest"
 }

Bicep

W poniższym przykładzie opisano sposób ustawiania automatycznych uaktualnień systemu operacyjnego w modelu zestawu skalowania za pośrednictwem Bicep:

properties: {
    overprovision: overProvision
    upgradePolicy: {
      mode: 'Automatic'
      automaticOSUpgradePolicy: {
        enableAutomaticOSUpgrade: true
      }
    }
}

Korzystanie z sond kondycji aplikacji

Podczas uaktualniania systemu operacyjnego wystąpienia maszyn wirtualnych w zestawie skalowania są uaktualniane pojedynczo. Uaktualnienie powinno być kontynuowane tylko wtedy, gdy aplikacja klienta jest w dobrej kondycji w uaktualnionych wystąpieniach maszyn wirtualnych. Zalecamy, aby aplikacja dostarczała sygnały kondycji do aparatu uaktualniania systemu operacyjnego zestawu skalowania. Domyślnie podczas uaktualniania systemu operacyjnego platforma uwzględnia stan zasilania maszyny wirtualnej i stan aprowizacji rozszerzenia w celu określenia, czy wystąpienie maszyny wirtualnej jest w dobrej kondycji po uaktualnieniu. Podczas uaktualniania systemu operacyjnego wystąpienia maszyny wirtualnej dysk systemu operacyjnego w wystąpieniu maszyny wirtualnej jest zastępowany nowym dyskiem na podstawie najnowszej wersji obrazu. Po zakończeniu uaktualniania systemu operacyjnego skonfigurowane rozszerzenia są uruchamiane na tych maszynach wirtualnych. Aplikacja jest uważana za w dobrej kondycji tylko wtedy, gdy wszystkie rozszerzenia w wystąpieniu zostaną pomyślnie aprowidowane.

Zestaw skalowania można opcjonalnie skonfigurować za pomocą sond kondycji aplikacji, aby zapewnić platformie dokładne informacje na temat bieżącego stanu aplikacji. Sondy kondycji aplikacji to niestandardowe sondy modułu równoważenia obciążenia, które są używane jako sygnał kondycji. Aplikacja uruchomiona w wystąpieniu maszyny wirtualnej zestawu skalowania może odpowiadać na zewnętrzne żądania HTTP lub TCP wskazujące, czy jest w dobrej kondycji. Aby uzyskać więcej informacji na temat sposobu działania niestandardowych sond modułu równoważenia obciążenia, zobacz Omówienie sond modułu równoważenia obciążenia. Sondy kondycji aplikacji nie są obsługiwane w przypadku zestawów skalowania usługi Service Fabric. Zestawy skalowania spoza usługi Service Fabric wymagają sond kondycji aplikacji usługi Load Balancer lub rozszerzenia application Health.

Jeśli zestaw skalowania jest skonfigurowany do używania wielu grup umieszczania, sondy korzystające z usługa Load Balancer w warstwie Standardowa muszą być używane.

Uwaga

Dla zestawu skalowania maszyn wirtualnych można użyć tylko jednego źródła monitorowania kondycji— rozszerzenia kondycji aplikacji lub sondy kondycji. Jeśli obie opcje są włączone, należy je usunąć przed użyciem usług orkiestracji, takich jak naprawy wystąpień lub automatyczne uaktualnienia systemu operacyjnego.

Konfigurowanie niestandardowej sondy modułu równoważenia obciążenia jako sondy kondycji aplikacji w zestawie skalowania

Najlepszym rozwiązaniem jest jawne utworzenie sondy modułu równoważenia obciążenia dla kondycji zestawu skalowania. Można użyć tego samego punktu końcowego dla istniejącej sondy HTTP lub sondy TCP, ale sonda kondycji może wymagać innego zachowania niż tradycyjna sonda modułu równoważenia obciążenia. Na przykład tradycyjna sonda modułu równoważenia obciążenia może zwrócić złą kondycję, jeśli obciążenie wystąpienia jest zbyt wysokie, ale nie byłoby odpowiednie do określenia kondycji wystąpienia podczas automatycznego uaktualniania systemu operacyjnego. Skonfiguruj sondę tak, aby miała wysoką częstotliwość sondowania wynoszącą mniej niż dwie minuty.

Do sondy modułu równoważenia obciążenia można odwoływać się w sieciProfile zestawu skalowania i może być skojarzona z wewnętrznym lub publicznym modułem równoważenia obciążenia w następujący sposób:

"networkProfile": {
  "healthProbe" : {
    "id": "[concat(variables('lbId'), '/probes/', variables('sshProbeName'))]"
  },
  "networkInterfaceConfigurations":
  ...
}

Uwaga

W przypadku korzystania z automatycznych uaktualnień systemu operacyjnego z usługą Service Fabric nowy obraz systemu operacyjnego jest wdrażany w domenie aktualizacji przez domenę aktualizacji w celu utrzymania wysokiej dostępności usług uruchomionych w usłudze Service Fabric. Aby korzystać z automatycznych uaktualnień systemu operacyjnego w usłudze Service Fabric, należy skonfigurować typ węzła klastra do używania warstwy trwałości silver lub nowszej. W przypadku warstwy Trwałości brązowej automatyczne uaktualnianie obrazu systemu operacyjnego jest obsługiwane tylko w przypadku typów węzłów bezstanowych. Aby uzyskać więcej informacji na temat cech trwałości klastrów usługi Service Fabric, zapoznaj się z tą dokumentacją.

Aktualizowanie poświadczeń

Jeśli zestaw skalowania używa poświadczeń do uzyskiwania dostępu do zasobów zewnętrznych, takich jak rozszerzenie maszyny wirtualnej skonfigurowane do używania tokenu SAS dla konta magazynu, upewnij się, że poświadczenia są aktualizowane. Jeśli jakiekolwiek poświadczenia, w tym certyfikaty i tokeny, wygasły, uaktualnienie zakończy się niepowodzeniem, a pierwsza partia maszyn wirtualnych pozostanie w stanie niepowodzenia.

Zalecane kroki odzyskiwania maszyn wirtualnych i ponownego włączania automatycznego uaktualniania systemu operacyjnego w przypadku niepowodzenia uwierzytelniania zasobów:

  • Wygeneruj ponownie token (lub inne poświadczenia) przekazane do rozszerzeń.
  • Upewnij się, że wszystkie poświadczenia używane z wewnątrz maszyny wirtualnej do komunikacji z jednostkami zewnętrznymi są aktualne.
  • Zaktualizuj rozszerzenia w modelu zestawu skalowania przy użyciu nowych tokenów.
  • Wdróż zaktualizowany zestaw skalowania, który zaktualizuje wszystkie wystąpienia maszyn wirtualnych, w tym te, które zakończyły się niepowodzeniem.

Korzystanie z rozszerzenia Application Health

Rozszerzenie Application Health jest wdrażane w wystąpieniu zestawu skalowania maszyn wirtualnych i raportuje kondycję maszyny wirtualnej z poziomu wystąpienia zestawu skalowania. Rozszerzenie można skonfigurować do sondowania w punkcie końcowym aplikacji i zaktualizować stan aplikacji w tym wystąpieniu. Ten stan wystąpienia jest sprawdzany przez platformę Azure, aby określić, czy wystąpienie kwalifikuje się do operacji uaktualniania.

Ponieważ rozszerzenie zgłasza kondycję z poziomu maszyny wirtualnej, rozszerzenie może być używane w sytuacjach, w których nie można używać sond zewnętrznych, takich jak sondy kondycji aplikacji (korzystające z niestandardowych sond usługi Azure Load Balancer).

Istnieje wiele sposobów wdrażania rozszerzenia Application Health w zestawach skalowania zgodnie z opisem w przykładach w tym artykule.

Uwaga

Dla zestawu skalowania maszyn wirtualnych można użyć tylko jednego źródła monitorowania kondycji— rozszerzenia kondycji aplikacji lub sondy kondycji. Jeśli obie opcje są włączone, należy je usunąć przed użyciem usług orkiestracji, takich jak naprawy wystąpień lub automatyczne uaktualnienia systemu operacyjnego.

Uzyskiwanie historii automatycznych uaktualnień obrazów systemu operacyjnego

Możesz sprawdzić historię najnowszego uaktualnienia systemu operacyjnego wykonanego w zestawie skalowania za pomocą programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure 2.0 lub interfejsów API REST. Historię ostatnich pięciu prób uaktualnienia systemu operacyjnego można uzyskać w ciągu ostatnich dwóch miesięcy.

Interfejs API REST

W poniższym przykładzie użyto interfejsu API REST do sprawdzenia stanu zestawu skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

GET on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osUpgradeHistory?api-version=2021-03-01`

Wywołanie GET zwraca właściwości podobne do następujących przykładowych danych wyjściowych:

{
	"value": [
		{
			"properties": {
        "runningStatus": {
          "code": "RollingForward",
          "startTime": "2018-07-24T17:46:06.1248429+00:00",
          "completedTime": "2018-04-21T12:29:25.0511245+00:00"
        },
        "progress": {
          "successfulInstanceCount": 16,
          "failedInstanceCount": 0,
          "inProgressInstanceCount": 4,
          "pendingInstanceCount": 0
        },
        "startedBy": "Platform",
        "targetImageReference": {
          "publisher": "MicrosoftWindowsServer",
          "offer": "WindowsServer",
          "sku": "2016-Datacenter",
          "version": "2016.127.20180613"
        },
        "rollbackInfo": {
          "successfullyRolledbackInstanceCount": 0,
          "failedRolledbackInstanceCount": 0
        }
      },
      "type": "Microsoft.Compute/virtualMachineScaleSets/rollingUpgrades",
      "location": "westeurope"
    }
  ]
}

Azure PowerShell

Użyj polecenia cmdlet Get-AzVmsss, aby sprawdzić historię uaktualniania systemu operacyjnego dla zestawu skalowania. W poniższym przykładzie przedstawiono sposób przeglądania stanu uaktualniania systemu operacyjnego dla zestawu skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -OSUpgradeHistory

Interfejs wiersza polecenia platformy Azure 2.0

Użyj polecenia az vmss get-os-upgrade-history , aby sprawdzić historię uaktualniania systemu operacyjnego dla zestawu skalowania. Użyj interfejsu wiersza polecenia platformy Azure w wersji 2.0.47 lub nowszej. W poniższym przykładzie przedstawiono sposób przeglądania stanu uaktualniania systemu operacyjnego dla zestawu skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

az vmss get-os-upgrade-history --resource-group myResourceGroup --name myScaleSet

Jak uzyskać najnowszą wersję obrazu systemu operacyjnego platformy?

Dostępne wersje obrazów dla jednostek SKU obsługiwanych przez automatyczne uaktualnianie systemu operacyjnego można uzyskać, korzystając z poniższych przykładów:

Interfejs API REST

GET on `/subscriptions/subscription_id/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions?api-version=2021-03-01`

Azure PowerShell

Get-AzVmImage -Location "westus" -PublisherName "Canonical" -offer "0001-com-ubuntu-server-jammy" -sku "22_04-lts"

Interfejs wiersza polecenia platformy Azure 2.0

az vm image list --location "westus" --publisher "Canonical" --offer "0001-com-ubuntu-server-jammy" --sku "22_04-lts" --all

Ręczne wyzwalanie uaktualnień obrazów systemu operacyjnego

Dzięki automatycznemu uaktualnieniu obrazu systemu operacyjnego włączonemu w zestawie skalowania nie trzeba ręcznie wyzwalać aktualizacji obrazów w zestawie skalowania. Orkiestrator uaktualniania systemu operacyjnego automatycznie zastosuje najnowszą dostępną wersję obrazu do wystąpień zestawu skalowania bez żadnej interwencji ręcznej.

W konkretnych przypadkach, w których nie chcesz czekać na zastosowanie najnowszego obrazu przez koordynatora, możesz ręcznie wyzwolić uaktualnienie obrazu systemu operacyjnego, korzystając z poniższych przykładów.

Uwaga

Wyzwalacz ręczny uaktualnień obrazów systemu operacyjnego nie zapewnia funkcji automatycznego wycofywania. Jeśli wystąpienie nie odzyska kondycji po operacji uaktualniania, nie można przywrócić poprzedniego dysku systemu operacyjnego.

Interfejs API REST

Użyj wywołania interfejsu API uruchamiania uaktualnienia systemu operacyjnego, aby rozpocząć uaktualnienie stopniowe, aby przenieść wszystkie wystąpienia zestawu skalowania maszyn wirtualnych do najnowszej dostępnej wersji systemu operacyjnego obrazu. Nie ma to wpływu na wystąpienia, na które jest już uruchomiona najnowsza dostępna wersja systemu operacyjnego. Poniższy przykład zawiera szczegółowe informacje na temat uruchamiania stopniowego uaktualniania systemu operacyjnego w zestawie skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

POST on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osRollingUpgrade?api-version=2021-03-01`

Azure PowerShell

Użyj polecenia cmdlet Start-AzVmssRollingOSUpgrade, aby sprawdzić historię uaktualniania systemu operacyjnego dla zestawu skalowania. Poniższy przykład zawiera szczegółowe informacje na temat uruchamiania stopniowego uaktualniania systemu operacyjnego w zestawie skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

Start-AzVmssRollingOSUpgrade -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Interfejs wiersza polecenia platformy Azure 2.0

Użyj polecenia az vmss rolling-upgrade start , aby sprawdzić historię uaktualniania systemu operacyjnego dla zestawu skalowania. Użyj interfejsu wiersza polecenia platformy Azure w wersji 2.0.47 lub nowszej. Poniższy przykład zawiera szczegółowe informacje na temat uruchamiania stopniowego uaktualniania systemu operacyjnego w zestawie skalowania o nazwie myScaleSet w grupie zasobów o nazwie myResourceGroup:

az vmss rolling-upgrade start --resource-group "myResourceGroup" --name "myScaleSet" --subscription "subscriptionId"

Badanie i usuwanie błędów automatycznego uaktualniania

Platforma może zwracać błędy na maszynach wirtualnych podczas automatycznego uaktualniania obrazów przy użyciu zasad uaktualniania stopniowego. Widok pobierania wystąpienia maszyny wirtualnej zawiera szczegółowy komunikat o błędzie umożliwiający zbadanie i rozwiązanie błędu. Uaktualnienia stopniowe — pobierz najnowsze informacje mogą zawierać więcej szczegółów dotyczących konfiguracji i stanu uaktualnienia stopniowego. Historia pobierania uaktualnienia systemu operacyjnego zawiera szczegółowe informacje na temat ostatniej operacji uaktualniania obrazu w zestawie skalowania. Poniżej przedstawiono najważniejsze błędy, które mogą powodować uaktualnienia stopniowe.

RollingUpgradeInProgressWithFailed UpgradeVMs

  • Błąd jest wyzwalany dla błędu maszyny wirtualnej.
  • Szczegółowy komunikat o błędzie wskazuje, czy wdrożenie będzie kontynuowane/wstrzymane na podstawie skonfigurowanego progu.

MaxUnhealthy UpgradeInstancePercentExceededInRollingUpgrade

  • Błąd jest wyzwalany, gdy procent uaktualnionych maszyn wirtualnych przekracza maksymalny próg dozwolony dla maszyn wirtualnych w złej kondycji.
  • Szczegółowy komunikat o błędzie agreguje najczęstszy błąd przyczyniający się do złej kondycji maszyn wirtualnych. Zobacz MaxUnhealthy UpgradeInstancePercent.

MaxUnhealthyInstancePercentExceededInRollingUpgrade

  • Błąd jest wyzwalany, gdy procent maszyn wirtualnych w złej kondycji przekracza maksymalny próg dozwolony dla maszyn wirtualnych w złej kondycji podczas uaktualniania.
  • Szczegółowy komunikat o błędzie zawiera bieżący procent złej kondycji i skonfigurowany procent maszyny wirtualnej w złej kondycji. Zobacz maxUnhealthyInstancePercent.

MaxUnhealthyInstancePercentExceededBeforeRollingUpgrade

  • Błąd jest wyzwalany, gdy procent maszyn wirtualnych w złej kondycji przekracza maksymalny próg dozwolony dla maszyn wirtualnych w złej kondycji przed uaktualnieniem.
  • Szczegółowy komunikat o błędzie zawiera bieżący procent złej kondycji i skonfigurowany procent maszyny wirtualnej w złej kondycji. Zobacz maxUnhealthyInstancePercent.

InternalExecutionError

  • Błąd jest wyzwalany, gdy podczas wykonywania występuje nieobsługiwany, niesformatowany lub nieoczekiwany.
  • Szczegółowy komunikat o błędzie wyświetla przyczynę błędu.

RollingUpgradeTimeoutError

  • Błąd jest wyzwalany, gdy upłynął limit czasu procesu uaktualniania stopniowego.
  • Szczegółowy komunikat o błędzie wyświetla czas przekroczenia limitu czasu systemu po próbie aktualizacji.

Następne kroki