Upgrade automático de extensão para máquinas virtuais e conjuntos de dimensionamento no Azure
O upgrade automático de extensão está disponível para Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais do Microsoft Azure. Quando o Upgrade Automático de Extensão está habilitado em uma máquina virtual (VM) ou conjunto de dimensionamento, a extensão recebe o upgrade automaticamente sempre que o fornecedor da extensão lança uma nova versão.
A Atualização Automática de Extensão tem os seguintes recursos:
- Há suporte para VMs do Azure e conjuntos de dimensionamento de máquinas virtuais.
- As atualizações são aplicadas em um modelo de implantação com priorização de disponibilidade.
- Para um conjunto de dimensionamento de máquinas virtuais, até 20% dos upgrades de VMs do conjunto de dimensionamento acontecem em um único lote. O tamanho mínimo do lote é uma VM.
- Todos os tamanhos de VM e extensões, tanto para Windows quanto para Linux, são compatíveis.
- Os upgrades automáticos são opcionais a qualquer momento.
- Todos os tamanhos de conjuntos de dimensionamento de máquinas virtuais estão habilitados.
- Cada extensão suportada é inscrita individualmente. Você pode escolher quais extensões receberão o upgrade automaticamente.
- Todas as regiões de nuvem pública têm suporte.
Como funciona a Atualização Automática de Extensão?
O processo de upgrade de extensão substitui a versão existente da extensão na VM sempre que o fornecedor lança uma nova versão dessa mesma extensão. A integridade da VM é monitorada depois que a nova extensão for instalada. Se a VM não estiver em um estado íntegro dentro de cinco minutos após a conclusão do upgrade, a versão da extensão será revertida para a versão anterior.
Um upgrade de extensão com falha é repetido automaticamente. Uma nova tentativa é repetida a cada poucos dias automaticamente sem intervenção do usuário.
Atualizações com priorização de disponibilidade
O modelo de upgrades orquestrados por plataforma que coloca a disponibilidade em primeiro lugar garante que as configurações de disponibilidade no Azure sejam respeitadas nos diversos níveis de disponibilidade.
Durante o processo de upgrade de um grupo de VMs, a plataforma do Azure orquestra esses upgrades entre regiões, dentro de uma mesma região e até dentro de um conjunto.
Entre regiões
- Um upgrade se movimenta pelo Azure globalmente em fases para evitar falhas de implantação no Azure inteiro.
- As fases de upgrade podem incluir uma ou mais regiões, e só avançam quando as VMs qualificadas da fase anterior recebem o upgrade com sucesso.
- As regiões emparelhadas geograficamente não são atualizadas simultaneamente e não podem estar na mesma fase regional.
- O sucesso de um upgrade é medido pelo acompanhamento da integridade de uma VM após o upgrade. A integridade da VM é acompanhada usando os indicadores de integridade da plataforma para a VM. Para conjuntos de dimensionamento de máquinas virtuais, a integridade da VM é acompanhada por meio de investigações de integridade do aplicativo ou pela extensão de Integridade do Aplicativo, se forem aplicadas ao conjunto de dimensionamento.
Dentro de uma região
- As VMs em zonas de disponibilidade diferentes não recebem o upgrade simultaneamente com o mesmo upgrade.
- VMs isoladas que não fazem parte de um conjunto de disponibilidade são agrupadas da melhor maneira possível para evitar upgrades simultâneos de todas as VMs em uma assinatura.
Dentro de um conjunto
- Todas as VMs em um conjunto de disponibilidade ou conjunto de dimensionamento comum não fazem upgrade simultaneamente.
- As VMs em um conjunto de disponibilidade comum recebem o upgrade dentro dos limites do domínio de atualização. As VMs em vários domínios de atualização não recebem o upgrade simultaneamente.
- As VMs em um conjunto de dimensionamento de máquinas virtuais comum são agrupadas em lotes e recebem o upgrade dentro dos limites do domínio de atualização. As Políticas de Upgrade definidas no conjunto de dimensionamento são cumpridas durante o upgrade. Cada grupo recebe o upgrade usando a estratégia de upgrade sem interrupção.
Processo de upgrade para conjuntos de dimensionamento de máquinas virtuais
- Antes de iniciar o processo de atualização, o orquestrador verifica se no máximo 20% das VMs em todo o conjunto de dimensionamento não estão íntegras (por qualquer motivo).
- O orquestrador de atualização identifica o lote de instâncias de VM a ser atualizado. Um lote de upgrade pode ter no máximo 20% do número total de VMs, sujeito a um tamanho mínimo de lote de uma VM. O orquestrador leva em consideração a política de upgrade e as 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 as investigações de integridade do aplicativo configuradas ou a extensão de Integridade do Aplicativo, a integridade do aplicativo também é monitorada. O upgrade aguarda até 5 minutos (ou a configuração da investigação de integridade definida) para que a VM retorno ao estado íntegro antes de fazer o upgrade do próximo lote. Se uma VM não recuperar sua integridade após um upgrade, por padrão, a versão da extensão anterior na VM será reinstalada.
- O orquestrador de atualização também acompanha o percentual das VMs que se tornarão não íntegras após uma atualização. A atualização é interrompida se mais de 20% das instâncias atualizadas se tornarem não íntegras durante o processo de atualização.
Esse processo continua até que todas as instâncias no conjunto de dimensionamento sejam atualizadas.
O orquestrador de atualização do conjunto de dimensionamento verifica a integridade geral do conjunto de dimensionamento antes de atualizar cada lote. Durante o upgrade de um lote, outras atividades simultâneas de manutenção, planejadas ou não, podem afetar a integridade das VMs no seu conjunto de dimensionamento. Nesses casos, se mais de 20% das instâncias do conjunto de dimensionamento não estiverem íntegras, o upgrade do conjunto de dimensionamento será interrompido ao final do lote atual.
Extensões com suporte
A Atualização Automática de Extensão oferece suporte às seguintes extensões (outras extensões são adicionadas periodicamente):
- Extensão do Hybrid Worker de Automação do Azure: Linux e Windows
- Dependency Agent: 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 de Diagnóstico do Azure para Linux
- Microsoft Azure Service Fabric: Linux
Habilitar a upgrade automático de extensão
Para habilitar o Upgrade Automático de Extensão, você deve garantir que a propriedade enableAutomaticUpgrade
esteja definida como true
e adicionada individualmente a cada definição de extensão.
Use o Portal do Azure
No portal do Azure, use o painel Extensão para ativar o upgrade automático de extensões em VMs e conjuntos de dimensionamento de máquinas virtuais existentes.
Acesse o painel Máquinas Virtuais ou Conjuntos de Dimensionamento de Máquinas Virtuais e selecione o nome do recurso.
Em Configurações, acesse o painel Extensões + aplicativos, que mostra todas as extensões instaladas no recurso. A coluna Status de upgrade automático mostra se o upgrade automático da extensão está habilitado, desabilitado ou sem suporte.
Selecione o nome da extensão para abrir o painel de detalhes das Extensões.
Selecione Habilitar upgrade automático para habilitar o upgrade automático da extensão. Use este botão para desabilitar um upgrade automática, se necessário.
Para máquinas virtuais
Para habilitar o upgrade automático de extensão (neste exemplo, a extensão do Dependency Agent) 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"
}
}
]
}
}
}
}
Observação
Essas operações definem a propriedade enableAutomaticUpgrade
como true
no recurso do conjunto de dimensionamento de máquinas virtuais, mas não nas VMs subjacentes.
Se o conjunto de dimensionamento de máquinas virtuais definir o modo de upgrade automático ou contínuo no upgradeProfile, o conjunto de dimensionamento de VMs propagará automaticamente a alteração para cada VM subjacente.
Se o conjunto de dimensionamento de máquinas virtuais definir o modo manual no upgradeProfile
, você também precisará fazer o upgrade manual de 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áquinas virtuais pode ter várias extensões com o upgrade automático de extensão habilitado. A mesma VM ou conjunto de dimensionamento também pode ter outras extensões sem o upgrade automático de extensão habilitado.
Se vários upgrades de extensão estiverem disponíveis para uma VM, eles poderão ser agrupados em lote, mas cada upgrade de extensão será aplicado individualmente em uma VM. Uma falha em uma extensão não afeta outras extensões que podem estar recebendo upgrade. Por exemplo, se duas extensões estão agendadas para um upgrade e a primeiro falhar, a segunda extensão ainda receberá o upgrade.
Você também pode aplicar o Upgrade Automático de Extensão quando uma VM ou conjunto de dimensionamento de máquinas virtuais tiver várias extensões configuradas com o sequenciamento de extensões. O sequenciamento de extensões acontece durante a primeira implantação da VM. Todos os futuros upgrades de extensão são aplicados de forma independente a cada extensão.
Diferença entre EnableAutomaticUpgrade e AutoUpgradeMinorVersion
AutoUpgradeMinorVersion
:- Essa propriedade é usada durante a criação da VM e enquanto você faz o upgrade da VM com uma nova configuração.
- Quando definido como
true
, ela garante que a versão secundária mais recente da extensão seja instalada automaticamente na VM. - Ela substitui o
TypeHandlerVersion
com a versão secundária estável mais recente disponível. - Ao fazer o upgrade da configuração da VM, uma nova versão secundária disponível será considerada uma alteração de configuração. A extensão será reinstalada com a versão secundária mais recente.
- Dessa forma, as VMs recém-criadas recebem a versão de extensão secundária estável mais recente.
- Se você quiser definir manualmente a extensão como uma versão específica, defina essa propriedade como
false
.
EnableAutomaticUpgrade
:- Essa propriedade afeta as VMs existentes.
- Isso não afeta a versão instalada durante a criação da VM.
- Após a criação da VM, se ela não estiver executando a versão secundária mais recente da extensão, habilitar essa propriedade disparará um upgrade automático.
- Os upgrades não reinicializam a VM e são implementados de maneira segura e contínua. Se um upgrade falhar, ela será revertida imediatamente, garantindo alta disponibilidade e confiabilidade do serviço.
- As VMs existentes continuam seguras e atualizadas, fazendo o upgrade automático a versão secundária mais recente.
Recomendamos que você ative ambas as propriedades para manter todas as VMs seguras e sempre atualizadas.
Os upgrades para versões principais da extensão nunca são realizadas automaticamente por nenhuma das propriedades, pois as versões principais podem incluir alterações significativas. Você precisa definir a TypeHandlerVersion
manualmente como uma versão principal e fazer o upgrade manual de cada VM existente para a versão principal mais recente.