Partilhar via


Atualização automática de extensão para VMs e conjuntos de escala no Azure

A Atualização Automática de Extensão está disponível para VMs do Azure e Conjuntos de Dimensionamento de Máquina Virtual do Azure. Quando a Atualização Automática de Extensão é habilitada em uma VM ou conjunto de escala, a extensão é atualizada automaticamente sempre que o editor da extensão lança uma nova versão para essa extensão.

A Atualização Automática de Extensão tem os seguintes recursos:

  • Com suporte para VMs do Azure e Conjuntos de Dimensionamento de Máquina Virtual do Azure.
  • As atualizações são aplicadas em um modelo de implantação que prioriza a disponibilidade.
  • Para um Conjunto de Dimensionamento de Máquina Virtual, não mais do que 20% das atualizações de máquinas virtuais do conjunto de dimensionamento em um único lote. O tamanho mínimo do lote é uma máquina virtual.
  • Funciona para todos os tamanhos de VM e para extensões Windows e Linux.
  • Você pode desativar as atualizações automáticas a qualquer momento.
  • A atualização automática de extensão pode ser habilitada em conjuntos de escala de máquina virtual de qualquer tamanho.
  • Cada extensão suportada é inscrita individualmente e você pode escolher quais extensões atualizar automaticamente.
  • Suportado em todas as regiões de nuvem pública.

Como funciona a Atualização Automática de Extensão?

O processo de atualização de extensão substitui a versão de extensão existente em uma VM por uma nova versão da mesma extensão quando publicada pelo editor de extensão. A integridade da VM é monitorada após a instalação da nova extensão. Se a VM não estiver em um estado íntegro dentro de 5 minutos após a conclusão da atualização, a versão da extensão será revertida para a versão anterior.

Uma atualização de extensão com falha é repetida automaticamente. Uma nova tentativa é tentada a cada poucos dias automaticamente sem a intervenção do usuário.

Atualizações de disponibilidade em primeiro lugar

O modelo de disponibilidade em primeiro lugar para atualizações orquestradas de plataforma garante que as configurações de disponibilidade no Azure sejam respeitadas em vários níveis de disponibilidade.

Para um grupo de máquinas virtuais que passam por uma atualização, a plataforma Azure orquestra atualizações:

Entre regiões:

  • Uma atualização se move pelo Azure globalmente de forma faseada para evitar falhas de implantação em todo o Azure.
  • Uma 'fase' pode ter uma ou mais regiões, e uma atualização só se move entre fases se as VMs elegíveis na fase anterior forem atualizadas com êxito.
  • As regiões emparelhadas geograficamente não serão atualizadas simultaneamente e não poderão estar na mesma fase regional.
  • O sucesso de uma atualização é medido rastreando a integridade de uma VM pós-atualização. A integridade da VM é rastreada por meio de indicadores de integridade da plataforma para a VM. Para Conjuntos de Dimensionamento de Máquina Virtual, a integridade da VM é controlada por meio de testes de integridade do aplicativo ou da extensão Integridade do Aplicativo, se aplicada ao conjunto de escala.

Dentro de uma região:

  • As VMs em diferentes zonas de disponibilidade não são atualizadas simultaneamente com a mesma atualização.
  • As VMs únicas que não fazem parte de um conjunto de disponibilidade são agrupadas em lote com base no melhor esforço para evitar atualizações simultâneas para todas as VMs em uma assinatura.

Dentro de um 'conjunto':

  • Todas as VMs em um conjunto de disponibilidade ou conjunto de escala comum não são atualizadas simultaneamente.
  • As VMs em um conjunto de disponibilidade comum são atualizadas dentro dos limites do Domínio de Atualização e as VMs em vários Domínios de Atualização não são atualizadas simultaneamente.
  • As VMs em um conjunto de escala de máquina virtual comum são agrupadas em lotes e atualizadas dentro dos limites do Domínio de Atualização. As políticas de atualização definidas no conjunto de escalas são honradas durante a atualização. Se a política de atualização estiver definida como Manual, as VMs não serão atualizadas mesmo que a atualização automática de extensão esteja habilitada.

Processo de atualização para conjuntos de dimensionamento de máquina virtual

  1. Antes do início do processo de atualização, o orquestrador garante que não mais de 20% das VMs em todo o conjunto de escala não estejam íntegras (por qualquer motivo).

  2. O orquestrador de atualização identifica o lote de instâncias de VM a serem atualizadas. Um lote de atualização pode ter no máximo 20% da contagem total de VMs, sujeito a um tamanho de lote mínimo de uma máquina virtual. A definição da Política de Atualização e das Zonas de Disponibilidade é considerada ao identificar o lote.

  3. Após a atualização, a integridade da VM é sempre monitorada antes de passar para o próximo lote. Para conjuntos de dimensionamento com testes de integridade do aplicativo configurados ou extensão de integridade do aplicativo, a integridade do aplicativo também é monitorada. A atualização aguarda até 5 minutos (ou a configuração da sonda de integridade definida) para que a VM fique íntegra antes de atualizar o próximo lote. Se uma VM não recuperar sua integridade após uma atualização, por padrão, a versão de extensão anterior na VM será reinstalada.

  4. O orquestrador de atualização também rastreia a porcentagem de VMs que se tornam não íntegras após uma atualização. A atualização será interrompida se mais de 20% das instâncias atualizadas não estiverem íntegras durante o processo de atualização.

O processo acima continua até que todas as instâncias no conjunto de escala tenham sido atualizadas.

O orquestrador de atualização do conjunto de escala verifica a integridade geral do conjunto de escala antes de atualizar cada lote. Durante uma atualização em lote, pode haver outras atividades de manutenção simultâneas planejadas ou não planejadas que podem afetar a integridade de suas máquinas virtuais de conjunto de escala. Nesses casos, se mais de 20% das instâncias do conjunto de escalas não estiverem íntegras, a atualização do conjunto de escalas será interrompida no final do lote atual.

Extensões suportadas

A Atualização Automática de Extensão suporta as seguintes extensões (e mais são adicionadas periodicamente):

Ativando a atualização automática de extensão

Para habilitar a Atualização Automática de Extensão para uma extensão, você deve garantir que a propriedade enableAutomaticUpgrade seja definida e true adicionada a cada definição de extensão individualmente.

API REST para máquinas virtuais

Para habilitar a atualização automática de extensão para uma extensão (neste exemplo, a extensão do Agente de Dependência) em uma VM do Azure, use a seguinte chamada:

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"
        }
}

API REST para conjuntos de dimensionamento de máquinas virtuais

Use a seguinte chamada para adicionar a extensão ao modelo de conjunto de escala:

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"
            		}
          	    }
        	    ]
    	    }
    	}
    }
}

Azure PowerShell para Máquinas Virtuais

Use o 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

Azure PowerShell para conjuntos de escala de máquina virtual

Use o cmdlet Add-AzVmssExtension para adicionar a extensão ao modelo de conjunto de escala:

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

Atualize o conjunto de escala usando Update-AzVmss depois de adicionar a extensão.

CLI do Azure para Máquinas Virtuais

Use o 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

CLI do Azure para conjuntos de dimensionamento de máquina virtual

Use o cmdlet az vmss extension set para adicionar a extensão ao modelo de conjunto de escala:

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

Modelo ARM para máquinas virtuais

O exemplo a seguir descreve como definir atualizações automáticas de extensão para uma extensão (Extensão de Agente de Dependência neste exemplo) em uma Máquina Virtual usando o 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"
        }
    }
}

Modelo ARM para conjuntos de dimensionamento de máquina virtual

Use o exemplo a seguir para definir a atualização automática de extensão na extensão dentro do modelo de conjunto de escala:

{
   "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,
                     }
                }]
    	    }
    	}
    }
}

Através do portal do Azure

Você pode usar o portal do Azure - Folha de extensão para habilitar a atualização automática de extensões em Máquinas Virtuais e Conjuntos de Dimensionamento de Máquina Virtual existentes.

  1. Navegue até a folha Máquinas Virtuais ou Conjuntos de Dimensionamento de Máquinas Virtuais e selecione o recurso clicando em seu nome.
  2. Navegue até a folha "Extenisons + applications" em Configurações para visualizar todas as extensões instaladas no recurso. A coluna "Status da atualização automática" informa se a atualização automática da extensão está habilitada, desativada ou não é suportada.
  3. Navegue até a folha Detalhes da extensão clicando no nome da extensão. Captura de ecrã do portal do Azure - Folha de extensão.
  4. Clique em "Ativar atualização automática" para ativar a atualização automática da extensão. Este botão também pode ser usado para desativar a atualização automática quando necessário.
    Captura de ecrã do portal do Azure para ativar a atualização automática da extensão.

Atualizações de extensão com várias extensões

Uma VM ou um Conjunto de Dimensionamento de Máquina Virtual pode ter várias extensões com a atualização automática de extensão habilitada. A mesma VM ou conjunto de escala também pode ter outras extensões sem a atualização automática de extensão habilitada.

Se várias atualizações de extensão estiverem disponíveis para uma máquina virtual, as atualizações podem ser agrupadas em lote, mas cada atualização de extensão é aplicada individualmente em uma máquina virtual. Uma falha em uma extensão não afeta a(s) outra(s) extensão(ões) que podem estar sendo atualizadas. Por exemplo, se duas extensões estiverem agendadas para uma atualização e a primeira atualização falhar, a segunda extensão ainda será atualizada.

As Atualizações Automáticas de Extensão também podem ser aplicadas quando uma VM ou um conjunto de dimensionamento de máquina virtual tem várias extensões configuradas com sequenciamento de extensão. O sequenciamento de extensão é aplicável para a implantação pela primeira vez da VM, e quaisquer atualizações de extensão futuras em uma extensão são aplicadas independentemente.

Próximos passos