Atualização de extensão automática para máquinas virtuais e conjuntos de dimensionamento no Azure
A Atualização Automática de Extensão está disponível para Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais do Azure. Quando a Atualização Automática de Extensão é habilitada em uma máquina virtual (VM) ou conjunto de escala, a extensão é atualizada automaticamente sempre que o editor de extensões lança uma nova versão para essa extensão.
A Atualização Automática de Extensão tem os seguintes recursos:
- As VMs do Azure e os conjuntos de dimensionamento de máquinas virtuais são suportados.
- 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 de 20% das atualizações de VM do conjunto de escala estão em um único lote. O tamanho mínimo do lote é uma VM.
- Todos os tamanhos de VM e extensões Windows e Linux são compatíveis.
- As atualizações automáticas são opcionais a qualquer momento.
- Conjuntos de dimensionamento de máquinas virtuais de qualquer tamanho estão habilitados.
- Cada extensão suportada é inscrita individualmente. Você pode escolher quais extensões atualizar automaticamente.
- Todas as regiões de nuvem pública são suportadas.
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 sempre que o editor de extensão publica uma nova versão da mesma 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 cinco 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 por plataforma garante que as configurações de disponibilidade no Azure sejam respeitadas em vários níveis de disponibilidade.
Para um grupo de VMs que passam por uma atualização, a plataforma Azure orquestra atualizações entre regiões, dentro de uma região e dentro de um conjunto.
Entre regiões
- Uma atualização se move globalmente pelo Azure 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 se move entre fases somente se as VMs qualificadas na fase anterior forem atualizadas com êxito.
- As regiões emparelhadas geograficamente não são atualizadas simultaneamente e não podem estar na mesma fase regional.
- O sucesso de uma atualização é medido pelo acompanhamento da integridade de uma VM após a 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 é rastreada por meio de testes de integridade do aplicativo ou da extensão Integridade do Aplicativo, se for aplicada ao conjunto de escala.
Dentro de uma região
- As VMs em zonas de disponibilidade diferentes 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 comum ou conjunto de escala 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. 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 escala são honradas durante a atualização. Cada grupo é atualizado usando uma estratégia de atualização contínua.
Processo de atualização para conjuntos de dimensionamento de máquinas virtuais
- 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).
- O orquestrador de atualização identifica o lote de instâncias de VM a serem atualizadas. Um lote de atualização pode ter um máximo de 20% da contagem total de VMs, sujeito a um tamanho de lote mínimo de uma VM. O orquestrador considera a definição da política de atualização e das zonas de disponibilidade enquanto o lote é identificado.
- 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 a extensão de integridade do aplicativo, a integridade do aplicativo também é monitorada. A atualização aguarda até cinco 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, então, por padrão, a versão de extensão anterior na VM será reinstalada.
- 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.
Esse processo continua até que todas as instâncias no conjunto de escala sejam 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, outras atividades de manutenção planejadas ou não planejadas simultâneas podem afetar a integridade de suas VMs 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):
- Extensão do Azure Automation Hybrid Worker: Linux e Windows
- Agente de dependência: Linux e Windows
- Extensão de integridade do aplicativo: Linux e Windows
- Extensão de atestado de convidado: Linux e Windows
- Extensão de configuração de convidado: Linux e Windows
- Azure Key Vault: Linux e Windows
- Agente do Azure Monitor
- Agente do Log Analytics para Linux
- Extensão do Azure Diagnostics para Linux
- Azure Service Fabric: Linux
Ativar 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.
Utilizar o portal do Azure
No portal do Azure, use o painel Extensão para habilitar a atualização automática de extensões em VMs existentes e conjuntos de dimensionamento de máquinas virtuais.
Vá para o painel Máquinas Virtuais ou Conjuntos de Dimensionamento de Máquinas Virtuais e selecione o nome do recurso.
Em Configurações, vá para o painel Extensões + aplicativos , que mostra todas as extensões instaladas no recurso. A coluna Status da atualização automática mostra se a atualização automática da extensão está habilitada, desabilitada ou não é suportada.
Selecione o nome da extensão para abrir o painel de detalhes Extensões.
Selecione Ativar atualização automática para ativar a atualização automática da extensão. Use este botão para desativar uma atualização automática, se necessário.
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"
}
}
Para conjuntos de dimensionamento de máquinas virtuais
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"
}
}
]
}
}
}
}
Nota
Essas operações definem a enableAutomaticUpgrade
propriedade como true
no recurso do conjunto de escala da máquina virtual, mas não nas VMs subjacentes.
Se o conjunto de dimensionamento da máquina virtual definir o modo de atualização automática ou contínua no upgradeProfile, o conjunto de escala da máquina virtual propagará automaticamente a alteração para cada VM subjacente.
Se o conjunto de dimensionamento da máquina virtual definir o upgradeProfile
modo manual no , você também precisará atualizar manualmente cada instância e propagar a alteração para cada VM subjacente.
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 VM, as atualizações poderão ser agrupadas em lote, mas cada atualização de extensão será aplicada individualmente em uma VM. Uma falha em uma extensão não afeta as outras extensões que podem estar sendo atualizadas. Por exemplo, se duas extensões estiverem agendadas para uma atualização e a primeira atualização de extensão falhar, a segunda extensão ainda será atualizada.
Você também pode aplicar a Atualização Automática de Extensão quando uma VM ou um conjunto de dimensionamento de máquina virtual tiver várias extensões configuradas com sequenciamento de extensão. O sequenciamento de extensão é para a primeira implantação da VM. Quaisquer atualizações de extensão futuras em uma extensão são aplicadas de forma independente.
Diferença entre EnableAutomaticUpgrade e AutoUpgradeMinorVersion
AutoUpgradeMinorVersion
:- Essa propriedade é usada durante a criação da VM e enquanto você atualiza a VM com uma nova configuração.
- Quando definido como
true
, ele garante que a versão secundária mais recente da extensão seja instalada automaticamente na VM. - Ele substitui o
TypeHandlerVersion
com a última versão secundária estável disponível. - Quando você atualiza a configuração da VM, se uma nova versão secundária estiver disponível, ela é considerada uma alteração de configuração. A extensão é reinstalada com a versão secundária mais recente.
- Desta forma, as VMs recém-criadas mantêm-se atualizadas com a versão de extensão secundária estável mais recente.
- Se você quiser definir manualmente a extensão para uma versão específica, defina esta propriedade como
false
.
EnableAutomaticUpgrade
:- Essa propriedade afeta VMs existentes.
- Isso não afeta a versão instalada durante a criação da VM.
- Após a criação da VM, se a VM não estiver executando a versão secundária mais recente da extensão, habilite essa propriedade para disparar uma atualização automática.
- As atualizações não causam a reinicialização da VM e são implementadas de forma contínua. As atualizações com falha são revertidas imediatamente para fornecer alta disponibilidade e confiabilidade do serviço.
- As VMs existentes permanecem seguras e atualizadas atualizando-as automaticamente para a versão secundária mais recente.
Recomendamos que você habilite ambas as propriedades para ajudar a manter todas as VMs seguras e atualizadas.
As atualizações para as principais versões de extensão nunca são executadas automaticamente por nenhuma das propriedades, porque as versões principais podem incluir alterações de quebra. Você deve definir TypeHandlerVersion
manualmente para uma versão principal e atualizar manualmente cada VM existente para a versão principal mais recente.