Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A habilitação de reparos automáticos de instâncias para Conjuntos de Dimensionamento de Máquinas Virtuais do Microsoft Azure ajuda a obter alta disponibilidade para aplicativos ao manter um conjunto de instâncias íntegras. Se uma instância não íntegra for encontrada pela extensão Integridade do Aplicativo ou pelas investigações de integridade do balanceador de carga, reparos automáticos de instância tentarão recuperar a instância disparando ações de reparo, como excluir a instância não íntegra e criar outra para substituí-la, recriando a imagem da instância não íntegra ou reiniciando a instância não íntegra.
Requisitos para usar os reparos automáticos de instâncias
Habilitar o monitoramento de integridade do aplicativo para o conjunto de dimensionamento
O monitoramento de integridade do aplicativo para as instâncias deve estar habilitado para o conjunto de dimensionamento. O monitoramento de integridade pode ser feito usando a extensão de integridade do aplicativo ou as sondagens de integridade do balanceador de carga, sendo possível habilitar apenas uma por vez. A extensão Integridade do Aplicativo ou as investigações do balanceador de carga executam ping no ponto de extremidade do aplicativo, configurado em instâncias de máquina virtual, a fim de determinar o status de integridade do aplicativo. Esse status de integridade é usado pelo orquestrador do conjunto de dimensionamento para monitorar a integridade das instâncias e executar reparos quando necessário.
Configurar o ponto de extremidade para fornecer o status da integridade
Antes de habilitar a política de reparos automáticos de instâncias, verifique se as instâncias do conjunto de dimensionamento têm o ponto de extremidade do aplicativo configurado para emitir o status de integridade do aplicativo. Para configurar o status de integridade na extensão Integridade do Aplicativo, use os estados de integridade binários ou estados de integridade avançados. Para configurar o status de integridade usando investigações de integridade do Balanceador de Carga, consulte o comportamento de investigação.
Para instâncias marcadas como “Não íntegra” ou “Desconhecido” (o estado Desconhecido só está disponível na extensão Integridade do Aplicativo – Estados de integridade avançados), os reparos automáticos são disparados pelo conjunto de dimensionamento. Enquanto o ponto de extremidade está sendo configurado, verifique se o ponto de extremidade do aplicativo está configurado corretamente antes de habilitar a política de reparos automáticos para evitar reparos acidentais de instâncias.
Versão da API
Há suporte para a política de reparos automáticos na API versão 2018-10-01 ou superior.
Há suporte pra a configuração repairAction para Recriar imagem e Reiniciar na API de computação versões 2021-11-01 ou superior.
Restrições nas movimentações do recurso ou da assinatura
No momento, não há suporte para as movimentações de recursos ou assinaturas em conjuntos de dimensionamento quando o recurso de reparos automáticos está habilitado.
Restrição para conjuntos de dimensionamento do Service Fabric
Atualmente, os conjuntos de dimensionamento do Service Fabric não suportam este recurso.
Restrição para VMs com erros de provisionamento
Atualmente, os reparos automáticos não dão suporte a cenários em que uma instância de VM está marcada como Não íntegra devido a uma falha de provisionamento. As VMs devem ser inicializadas com êxito para habilitar o monitoramento de integridade e os recursos de reparo automático.
Como funcionam os reparos automáticos de instâncias?
O recurso de reparo automático de instâncias depende do monitoramento de integridade de instâncias individuais em um conjunto de dimensionamento. As instâncias de VM em um conjunto de dimensionamento podem ser configuradas para emitir o status de integridade do aplicativo usando a extensão Integridade do Aplicativo ou as investigações de integridade do balanceador de carga. Se uma instância for considerada não saudável, o conjunto de dimensionamento executará uma ação de reparo pré-configurada na instância não saudável. Os reparos automáticos de instâncias podem ser habilitados no modelo do Conjunto de Dimensionamento de Máquinas Virtuais por meio do objeto automaticRepairsPolicy.
O processo de reparos automáticos de instâncias é o seguinte:
- A extensão Integridade do Aplicativo ou as investigações de integridade do balanceador de carga executam ping no ponto de extremidade do aplicativo em cada máquina virtual no conjunto de dimensionamento, a fim de obter o status de integridade do aplicativo para cada instância.
- Se o endpoint responder com um status 200 (OK), a instância será marcada como "Saudável". Em todos os outros casos (incluindo se o ponto de extremidade estiver inacessível), a instância é marcada como “Não íntegra”.
- Quando uma instância é considerada não íntegra, o conjunto de dimensionamento aplica a ação de reparo configurada (o padrão é Substituir) à instância não íntegra.
- Os reparos de instâncias são executados em lotes. Em um determinado momento, não mais do que 5% do total de instâncias no conjunto de dimensionamento são reparadas. Se um conjunto de dimensionamento tiver menos de 20 instâncias, os reparos são feitos para uma instância não íntegra por vez.
- O processo acima continua até que todas as instâncias não íntegras no conjunto de dimensionamento sejam reparadas.
Ações de reparo disponíveis
Há três ações de reparo disponíveis para reparos automáticos de instâncias: Substituir, Recriar imagem e Reiniciar. A ação de reparo padrão é Substituir, mas você pode configurar reparos automáticos para usar Recriar imagem ou Reiniciar, modificando a configuração repairAction no objeto automaticRepairsPolicy.
Substituir exclui a instância com falha e cria uma nova instância para substituí-la. O modelo de Conjunto de Dimensionamento de Máquinas Virtuais mais recente é usado para criar a nova instância. Essa ação de reparo é o padrão.
Recriar imagem aplica a operação de nova imagem à instância não íntegra.
Reiniciar aplica a operação de reinicialização à instância não saudável.
A tabela a seguir compara as diferenças entre as três ações de reparo:
| Ação de reparo | ID da instância da VM preservada? | IP privado preservado? | O disco de dados gerenciado está preservado? | Disco do sistema operacional gerenciado preservado? | Disco local (temporário) preservado? |
|---|---|---|---|---|---|
| Substituir (padrão) | Não | Não | Não | Não | Não |
| Recriar imagem | Sim | Sim | Sim | Não | Sim |
| Reiniciar | Sim | Sim | Sim | Sim | Sim |
Para obter detalhes sobre como atualizar sua ação de reparo na política de reparos automáticos, consulte a seção Configurar uma ação de reparo na política de reparos automáticos.
Envio em lote
As operações de reparo automático de instâncias são executadas em lotes. Em determinado momento, não mais do que 5% das instâncias no conjunto de dimensionamento são reparadas por meio da política de reparos automáticos. Esse processo ajuda a evitar a exclusão e recriação simultâneas de um grande número de instâncias, se forem detectadas como não saudáveis ao mesmo tempo.
Período de carência
Quando uma instância passa por uma operação de alteração de estado devido a uma ação PUT, PATCH ou POST executada no conjunto de dimensionamento, qualquer ação de reparo nessa instância é executada somente após o fim do período de carência. O período de cortesia é o período que se deve esperar até que a instância retorne ao estado íntegro. O período de carência começa após a conclusão da alteração de estado, o que ajuda a evitar operações de reparo prematuras ou acidentais. O período de cortesia é respeitado para qualquer instância recém-criada no conjunto de dimensionamento, incluindo aquela criada como resultado da operação de reparo. O período de carência é especificado em minutos no formato ISO 8601 e pode ser definido usando a propriedade automaticRepairsPolicy.gracePeriod. O período de cortesia pode variar de 10 a 90 minutos e tem um valor padrão de 10 minutos.
Suspensão de reparos
Os Conjuntos de Dimensionamento de Máquinas Virtuais fornecem a capacidade de suspender temporariamente os reparos automáticos de instâncias, se necessário. O serviceState para os reparos automáticos na propriedade orchestrationServices, na exibição da instância do Conjunto de Dimensionamento de Máquinas Virtuais, mostra o estado atual dos reparos automáticos. Quando um conjunto de dimensionamento é configurado para reparos automáticos, o valor do parâmetro serviceState é definido como Em execução. Quando os reparos automáticos são suspensos para um conjunto de dimensionamento, o parâmetro serviceState é definido como Suspenso. Se automaticRepairsPolicy for definido em um conjunto de dimensionamento, mas o recurso de reparos automáticos não estiver habilitado, o parâmetro serviceState é definido como Não em execução.
Se as instâncias recém-criadas para substituir as não íntegras em um conjunto de dimensionamento continuarem a permanecer não íntegras, mesmo após a execução repetida das operações de reparo, como medida de segurança, a plataforma atualizará o serviceState para que os reparos automáticos fiquem em Suspenso. Você pode retomar os reparos automáticos novamente definindo o valor de serviceState para que os reparos automáticos fiquem Em execução. Veja as instruções detalhadas na seção sobre como Exibir e atualizar o estado do serviço da política de reparos automáticos para o conjunto de dimensionamento.
Também é possível configurar as Regras de Alerta do Azure para monitorar as alterações do serviceState e ser notificado se os reparos automáticos forem suspensos no seu conjunto de dimensionamento. Para obter detalhes, confira Usar as regras de alerta do Azure para monitorar alterações no estado do serviço de reparos automáticos de instâncias.
Proteção de instância e reparos automáticos
Se uma instância em um conjunto de dimensionamento for protegida pela aplicação de uma das políticas de proteção, os reparos automáticos não serão executados nessa instância. Este comportamento se aplica às duas políticas de proteção: ações para Proteger contra redução de dimensionamento e para Proteger contra ajuste de dimensionamento.
Notificação de término e reparos automáticos
Se o recurso de notificação de término estiver habilitado em um conjunto de dimensionamento, durante uma operação Substituir, a exclusão de uma instância não íntegra seguirá a configuração de notificação de término. Uma notificação de término é enviada por meio do serviço de metadados do Azure (eventos agendados), e a exclusão da instância é atrasada até o tempo limite de atraso que foi configurado. No entanto, a criação de uma instância para substituir a não íntegra não aguarda o término do tempo limite de atraso.
Ativação da política de reparos automáticos ao criar um novo conjunto de escalas
Importante
A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure terão o Modo de Orquestração Flexível como padrão se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve executar, acesse Alteração interruptiva para clientes PowerShell/CLI do VMSS – Hub de Comunidade da Microsoft
Para habilitar a política de reparos automáticos ao criar um novo conjunto de dimensionamento, confira se todos os requisitos para optar por esse recurso foram atendidos. O ponto de extremidade do aplicativo deve ser configurado corretamente para as instâncias do conjunto de dimensionamento, para evitar o disparo acidental de reparos enquanto o ponto de extremidade está sendo configurado. Para conjuntos de dimensionamento recém-criados, qualquer reparo de instância é executado somente após a conclusão do período de cortesia. Para habilitar o reparo automático de instâncias em um conjunto de dimensionamento, use o objeto automaticRepairsPolicy no modelo de Conjunto de Dimensionamento de Máquinas Virtuais.
Você também pode usar este modelo de início rápido para implantar um Conjunto de Dimensionamento de Máquinas Virtuais. No início rápido, o conjunto de dimensionamento tem uma investigação de integridade do balanceador de carga e reparos automáticos de instâncias habilitados com um período de cortesia configurado de 30 minutos.
As etapas abaixo habilitam a política de reparos automáticos quando se cria um novo conjunto de escalonamento.
- Acesse Conjuntos de Dimensionamento de Máquinas Virtuais.
- Selecione Adicionar+ para criar um novo conjunto de dimensionamento.
- Vá até a guia Integridade.
- Localize a seção Integridade.
- Habilite a opção Monitorar integridade do aplicativo.
- Localize a seção Política de reparo automático.
- Ative a opção de Reparos automáticos.
- No Período de carência (min), especifique o período de carência em minutos. Os valores permitidos estão entre 10 e 90 minutos.
- Quando terminar de criar o conjunto de dimensionamento, selecione o botão Revisar + criar.
Habilitação da política de reparos automáticos ao atualizar um conjunto de dimensionamento existente
Para habilitar a política de reparos automáticos em um conjunto de dimensionamento já existente, confira se todos os requisitos para optar por esse recurso foram atendidos. O ponto de extremidade do aplicativo deve ser configurado corretamente para as instâncias do conjunto de dimensionamento, para evitar o disparo acidental de reparos enquanto o ponto de extremidade está sendo configurado. Para habilitar o reparo automático de instâncias em um conjunto de dimensionamento, use o objeto automaticRepairsPolicy no modelo de Conjunto de Dimensionamento de Máquinas Virtuais.
Depois de atualizar o modelo de um conjunto de dimensionamento existente, confira se o modelo mais recente foi aplicado a todas as instâncias do dimensionamento. Consulte as instruções sobre como atualizar as VMs com o modelo de conjunto de dimensionamento mais recente.
Você pode modificar a política de reparos automáticos de um conjunto de escalas existente pelo portal do Azure.
Observação
Habilite a extensão Integridade do Aplicativo ou as investigações de integridade do balanceador de carga nos Conjuntos de Dimensionamento de Máquinas Virtuais antes de iniciar as próximas etapas.
- Acesse um conjunto de dimensionamento de máquinas virtuais existente.
- No menu à esquerda, em Configurações, selecione Saúde e reparo.
- Habilite a opção Monitorar integridade do aplicativo.
Se você estiver monitorando o conjunto de dimensionamento usando a extensão Integridade do Aplicativo:
Escolha extensão Integridade do Aplicativo na lista suspensa Monitor de Integridade do Aplicativo.
Na lista suspensa Protocolo, escolha o protocolo de rede usado pelo aplicativo para informar sobre o status de saúde. Selecione o protocolo apropriado com base nos requisitos do aplicativo. As opções de protocolo são HTTP, HTTPS ou TCP.
Na caixa de configuração Número da porta, digite a porta de rede usada para monitorar a integridade do aplicativo.
Em Caminho, forneça o caminho do ponto de extremidade do aplicativo (por exemplo, "/") usado para relatar a integridade do aplicativo.
Observação
A extensão Integridade do Aplicativo vai executar ping para este caminho dentro de cada máquina virtual na escala definida para obter o status de saúde da aplicação para cada instância. Se você estiver usando Estados de Integridade Binários e o ponto de extremidade responder com um status 200 (OK), a instância será marcada como “Íntegra”. Em todos os outros casos (incluindo se o ponto de extremidade estiver inacessível), a instância é marcada como “Não íntegra”. Para obter mais opções de estado de saúde, explore Estados de Saúde Ricos.
Se você estiver monitorando o conjunto de dimensionamento usando as investigações de integridade do SLB:
- Escolha Investigação do balanceador de carga na lista suspensa Monitor da Integridade do Aplicativo. Para a investigação de integridade do balanceador de carga, selecione uma investigação de integridade existente ou crie uma para o monitoramento.
Para habilitar reparos automáticos:
- Localize a seção Política de reparo automático.
- Ative a opção de Reparos automáticos.
- Em Período de cortesia (min), especifique o período de cortesia em minutos. Os valores permitidos estão entre 10 e 90 minutos.
- Quando terminar, selecione Salvar.
Configurar uma ação de reparo na política de reparos automáticos
A configuração repairAction em automaticRepairsPolicy permite especificar a ação de reparo desejada executada em resposta a uma instância não íntegra. Se você estiver atualizando a ação de reparo em uma política de reparos automáticos existente, primeiro desabilite os reparos automáticos no conjunto de dimensionamento e habilite novamente com a ação de reparo atualizada. Esse processo é ilustrado nos exemplos abaixo.
Este exemplo demonstra como atualizar a ação de reparo em um conjunto de dimensionamento com uma política de reparos automáticos existente. Use a versão da API 2021-11-01 ou superior.
Desative a política já existente de reparos automáticos no seu conjunto de escalas
PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
"properties": {
"automaticRepairsPolicy": {
"enabled": "false"
}
}
}
Habilitar novamente a política de reparos automáticos com a ação de reparo desejada
PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
"properties": {
"automaticRepairsPolicy": {
"enabled": "true",
"gracePeriod": "PT40M",
"repairAction": "Reimage"
}
}
}
Exibição e atualização do estado do serviço da política de reparos automáticos de instâncias
Use Obter Exibição da Instância com a versão de API 2019-12-01 ou superior para o Conjunto de Dimensionamento de Máquinas Virtuais para ver o serviceState dos reparos automáticos na propriedade orchestrationServices.
GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
"orchestrationServices": [
{
"serviceName": "AutomaticRepairs",
"serviceState": "Running"
}
]
}
Use Definir Estado do Serviço de Orquestração para suspender ou retomar o serviceState para reparos automáticos.
POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2023-07-01'
{
"serviceName": "AutomaticRepairs",
"action": "Suspend"
}
Solucionar problemas
Falha ao habilitar a política de reparos automáticos
Se você receber um erro ‘BadRequest’ com uma mensagem de erro informando “Não foi possível encontrar o membro ‘automaticRepairsPolicy’ no objeto do tipo ‘properties’”, verifique a versão da API usada para o Conjunto de Dimensionamento de Máquinas Virtuais. Para este recurso é necessária a versão de API 2018-10-01 ou superior.
A instância não é reparada, mesmo com a política habilitada
A instância pode estar no período de cortesia. Esse período é a quantidade de tempo de espera após qualquer alteração de estado na instância antes de realizar reparos, o que ajuda a evitar reparos prematuros ou acidentais. A ação de reparo deve ocorrer depois que o período de cortesia for concluído para a instância.
Exibição do status de integridade do aplicativo para instâncias do conjunto de dimensionamento
Você pode usar a API Get Instance View para instâncias em um Virtual Machine Scale Set para visualizar a saúde do aplicativo. Com o Azure PowerShell, você pode usar o cmdlet Get-AzVmssVM com o sinalizador -InstanceView. O status de integridade do aplicativo é fornecido na propriedade vmHealth.
No portal do Azure, você também poderá ver o status de integridade. Vá até o conjunto de dimensionamento existente, selecione Instâncias no menu à esquerda e examine a coluna Estado de integridade do status de integridade de cada instância do conjunto de dimensionamento.
Próximas etapas
Saiba como configurar a extensão Integridade do Aplicativo ou as investigações de integridade do balanceador de carga para os conjuntos de dimensionamento.