Automatyczne uaktualnianie rozszerzeń dla maszyn wirtualnych i zestawów skalowania na platformie Azure

Automatyczne uaktualnianie rozszerzenia jest dostępne dla maszyn wirtualnych platformy Azure i zestawów skalowania maszyn wirtualnych platformy Azure. Gdy automatyczne uaktualnianie rozszerzenia jest włączone na maszynie wirtualnej lub zestawie skalowania, rozszerzenie jest uaktualniane automatycznie za każdym razem, gdy wydawca rozszerzeń wyda nową wersję dla tego rozszerzenia.

Automatyczne uaktualnianie rozszerzenia ma następujące funkcje:

  • Obsługiwane w przypadku maszyn wirtualnych platformy Azure i zestawów skalowania maszyn wirtualnych platformy Azure.
  • Uaktualnienia są stosowane w modelu wdrażania opartym na dostępności.
  • W przypadku zestawu skalowania maszyn wirtualnych nie więcej niż 20% uaktualnień maszyn wirtualnych zestawu skalowania w jednej partii. Minimalny rozmiar partii to jedna maszyna wirtualna.
  • Działa dla wszystkich rozmiarów maszyn wirtualnych oraz dla rozszerzeń systemu Windows i Linux.
  • W dowolnym momencie możesz zrezygnować z automatycznych uaktualnień.
  • Automatyczne uaktualnianie rozszerzenia można włączyć w zestawach skalowania maszyn wirtualnych o dowolnym rozmiarze.
  • Każde obsługiwane rozszerzenie jest rejestrowane indywidualnie i można wybrać, które rozszerzenia mają być uaktualniane automatycznie.
  • Obsługiwane we wszystkich regionach chmury publicznej.

Jak działa automatyczne uaktualnianie rozszerzeń?

Proces uaktualniania rozszerzenia zastępuje istniejącą wersję rozszerzenia na maszynie wirtualnej nową wersją tego samego rozszerzenia po opublikowaniu przez wydawcę rozszerzenia. Kondycja maszyny wirtualnej jest monitorowana po zainstalowaniu nowego rozszerzenia. Jeśli maszyna wirtualna nie jest w dobrej kondycji w ciągu 5 minut od ukończenia uaktualnienia, wersja rozszerzenia zostanie wycofana z poprzedniej wersji.

Aktualizacja rozszerzenia, która zakończyła się niepowodzeniem, jest automatycznie ponawiana. Próba ponawiania jest podejmowana co kilka dni automatycznie bez interwencji użytkownika.

Aktualizacje Aktualizacje dostępności

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

W przypadku grupy maszyn wirtualnych poddawanych aktualizacji platforma Azure organizuje aktualizacje:

Między regionami:

  • Aktualizacja jest przenosina na platformę Azure globalnie w sposób fazowy, aby zapobiec niepowodzeniom wdrożeń na całym platformie 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. Kondycja maszyny wirtualnej jest śledzona za pomocą wskaźników kondycji platformy dla maszyny wirtualnej. W przypadku zestawów skalowania maszyn wirtualnych kondycja maszyny wirtualnej jest śledzona za pośrednictwem sond kondycji aplikacji lub rozszerzenia Application Health, jeśli zostanie zastosowana do zestawu skalowania.

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.
  • Pojedyncze maszyny wirtualne, które nie są częścią zestawu dostępności, są wsadowe wsadowe, aby uniknąć współbieżnych aktualizacji dla wszystkich maszyn wirtualnych w ramach subskrypcji.

W zestawie:

  • Wszystkie maszyny wirtualne w wspólnym zestawie dostępności lub zestawie skalowania nie są aktualizowane współbieżnie.
  • Maszyny wirtualne w wspólnym zestawie dostępności są aktualizowane w granicach domeny aktualizacji, a maszyny wirtualne w wielu domenach aktualizacji nie są aktualizowane współbieżnie.
  • Maszyny wirtualne w typowym zestawie skalowania maszyn wirtualnych są grupowane w partiach i aktualizowane w granicach domeny aktualizacji.

Proces uaktualniania zestawów skalowania maszyn wirtualnych

  1. Przed rozpoczęciem procesu uaktualniania koordynator gwarantuje, że nie więcej niż 20% maszyn wirtualnych w całym zestawie skalowania jest w złej kondycji (z jakiegokolwiek powodu).

  2. Orkiestrator uaktualniania identyfikuje partię wystąpień maszyn wirtualnych do uaktualnienia. Partia uaktualnienia może mieć maksymalnie 20% całkowitej liczby maszyn wirtualnych, z uwzględnieniem minimalnego rozmiaru partii jednej maszyny wirtualnej.

  3. W przypadku zestawów skalowania ze skonfigurowanymi sondami kondycji aplikacji lub rozszerzeniem kondycji aplikacji uaktualnienie trwa do 5 minut (lub zdefiniowanej konfiguracji sondy kondycji) dla maszyny wirtualnej w dobrej kondycji przed uaktualnieniem następnej partii. Jeśli maszyna wirtualna nie odzyska kondycji po uaktualnieniu, domyślnie poprzednia wersja rozszerzenia na maszynie wirtualnej zostanie ponownie zainstalowana.

  4. Orkiestrator uaktualniania śledzi również procent maszyn wirtualnych, 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.

Powyższy proces będzie kontynuowany do momentu uaktualnienia wszystkich wystąpień w zestawie skalowania.

Orkiestrator uaktualniania zestawu skalowania sprawdza ogólną kondycję zestawu skalowania przed uaktualnieniem każdej partii. Podczas uaktualniania wsadowego mogą istnieć inne współbieżne lub nieplanowane działania konserwacyjne, które mogą mieć wpływ na kondycję maszyn wirtualnych 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.

Obsługiwane rozszerzenia

Automatyczne uaktualnianie rozszerzenia obsługuje następujące rozszerzenia (a inne są okresowo dodawane):

Włączanie automatycznego uaktualniania rozszerzenia

Aby włączyć automatyczne uaktualnianie rozszerzenia dla rozszerzenia, należy upewnić się, że właściwość enableAutomaticUpgrade jest ustawiona true na i dodana do każdej definicji rozszerzenia osobno.

Interfejs API REST dla maszyn wirtualnych

Aby włączyć automatyczne uaktualnianie rozszerzenia dla rozszerzenia (w tym przykładzie rozszerzenie agenta zależności) na maszynie wirtualnej platformy Azure, użyj następującego wywołania:

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/extensions/<extensionName>?api-version=2019-12-01`
{    
    "name": "extensionName",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "<location>",
    "properties": {
        "autoUpgradeMinorVersion": true,
        "enableAutomaticUpgrade": true, 
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.5"
        }
}

Interfejs API REST dla zestawów skalowania maszyn wirtualnych

Użyj następującego wywołania, aby dodać rozszerzenie do modelu zestawu skalowania:

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmssName>?api-version=2019-12-01`
{
   "location": "<location>",
   "properties": {
   	    "virtualMachineProfile": {
            "extensionProfile": {
       	        "extensions": [
            	{
                "name": "<extensionName>",
            	  "properties": {
             		    "autoUpgradeMinorVersion": true,
             		    "enableAutomaticUpgrade": true,
              	    "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
              	    "type": "DependencyAgentWindows",
              	    "typeHandlerVersion": "9.5"
            		}
          	    }
        	    ]
    	    }
    	}
    }
}

Program Azure PowerShell dla maszyn wirtualnych

Użyj polecenia cmdlet Set-AzVMExtension:

Set-AzVMExtension -ExtensionName "Microsoft.Azure.Monitoring.DependencyAgent" `
    -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" `
    -Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
    -ExtensionType "DependencyAgentWindows" `
    -TypeHandlerVersion 9.5 `
    -Location WestUS `
    -EnableAutomaticUpgrade $true

Program Azure PowerShell dla zestawów skalowania maszyn wirtualnych

Użyj polecenia cmdlet Add-AzVmssExtension, aby dodać rozszerzenie do modelu zestawu skalowania:

Add-AzVmssExtension -VirtualMachineScaleSet $vmss
    -Name "Microsoft.Azure.Monitoring.DependencyAgent" `
    -Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
    -Type "DependencyAgentWindows" `
    -TypeHandlerVersion 9.5 `
    -EnableAutomaticUpgrade $true

Zaktualizuj zestaw skalowania przy użyciu polecenia Update-AzVmss po dodaniu rozszerzenia.

Interfejs wiersza polecenia platformy Azure dla usługi Virtual Machines

Użyj polecenia cmdlet az vm extension set:

az vm extension set \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --name DependencyAgentLinux \
    --publisher Microsoft.Azure.Monitoring.DependencyAgent \
    --version 9.5 \
    --enable-auto-upgrade true

Interfejs wiersza polecenia platformy Azure dla zestawów skalowania maszyn wirtualnych

Użyj polecenia cmdlet az vmss extension set, aby dodać rozszerzenie do modelu zestawu skalowania:

az vmss extension set \
    --resource-group myResourceGroup \
    --vmss-name myVMSS \
    --name DependencyAgentLinux \
    --publisher Microsoft.Azure.Monitoring.DependencyAgent \
    --version 9.5 \
    --enable-auto-upgrade true

Szablon usługi ARM dla maszyn wirtualnych

W poniższym przykładzie opisano sposób ustawiania automatycznych uaktualnień rozszerzeń dla rozszerzenia (rozszerzenie agenta zależności w tym przykładzie) na maszynie wirtualnej przy użyciu usługi Azure Resource Manager

{
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[resourceGroup().location]",
    "name": "<extensionName>",
    "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
    ],
    "properties": {
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.5",
        "autoUpgradeMinorVersion": true,
        "enableAutomaticUpgrade": true,
        "settings": {
            "enableAMA": "true"
        }
    }
}

Szablon usługi ARM dla zestawów skalowania maszyn wirtualnych

Użyj poniższego przykładu, aby ustawić automatyczne uaktualnianie rozszerzenia w rozszerzeniu w modelu zestawu skalowania:

{
   "type": "Microsoft.Compute/virtualMachineScaleSets",
   "apiVersion": "2023-09-01",
   "name": "[variables('vmScaleSetName')]",
   "location": "[resourceGroup().location]",
   "properties": {
   	    "virtualMachineProfile": {
            "extensionProfile": {
       	        "extensions": [{
                     "name": "<extensionName>",
                     "properties": {
                          "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
                          "type": "DependencyAgentWindows",
                          "typeHandlerVersion": "9.5",
                          "autoUpgradeMinorVersion": true,
                          "enableAutomaticUpgrade": true,
                     }
                }]
    	    }
    	}
    }
}

Uaktualnienia rozszerzeń z wieloma rozszerzeniami

Maszyna wirtualna lub zestaw skalowania maszyn wirtualnych może mieć wiele rozszerzeń z włączonym automatycznym uaktualnianiem rozszerzeń. Ten sam zestaw skalowania lub maszyny wirtualnej może również mieć inne rozszerzenia bez włączonego automatycznego uaktualniania rozszerzeń.

Jeśli dla maszyny wirtualnej jest dostępnych wiele uaktualnień rozszerzeń, uaktualnienia mogą być wsadowe razem, ale każde uaktualnienie rozszerzenia jest stosowane indywidualnie na maszynie wirtualnej. Awaria jednego rozszerzenia nie ma wpływu na inne rozszerzenia, które mogą być uaktualniane. Jeśli na przykład zaplanowano uaktualnienie dwóch rozszerzeń, a pierwsze uaktualnienie rozszerzenia zakończy się niepowodzeniem, drugie rozszerzenie będzie nadal uaktualniane.

Automatyczne uaktualnienia rozszerzeń można również zastosować, gdy maszyna wirtualna lub zestaw skalowania maszyn wirtualnych ma wiele rozszerzeń skonfigurowanych z sekwencjonowaniem rozszerzeń. Sekwencjonowanie rozszerzeń ma zastosowanie do pierwszego wdrożenia maszyny wirtualnej, a wszelkie przyszłe uaktualnienia rozszerzeń rozszerzenia są stosowane niezależnie.

Następne kroki