Este documento oferece uma visão geral da resiliência da máquina virtual (VM) e das verificações opcionais que os operadores de aplicativos podem ativar para insights mais detalhados de uma VM no Google Distributed Cloud (GDC) com isolamento físico.
Este documento é destinado a desenvolvedores do grupo de operadores de aplicativos que operam VMs. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
As VMs no GDC oferecem alta disponibilidade para melhorar a continuidade do serviço em caso de falhas na infraestrutura ou no convidado. Também é possível configurar o sistema para emitir indicadores de integridade opcionais que oferecem insights mais detalhados sobre o status da VM.
Verificações de disponibilidade da VM
O sistema oferece as seguintes verificações de disponibilidade da VM:
| Nome da verificação | Descrição | Suporte à ação de mitigação | Disponibilidade do indicador |
|---|---|---|---|
| Verificação de integridade do convidado | Verifica a integridade do SO convidado. Um pré-requisito para outras verificações no convidado. | Sim | Verificação no convidado |
| Verificação de armazenamento | Verifica a integridade do armazenamento subjacente da VM. | Sim | Verificação no convidado |
| Verificação de saída | Verifica a conectividade com um endpoint interno conhecido. | Não | Verificação no convidado e fora dele |
| Verificação de entrada | Verifica a acessibilidade da VM usando a entrada configurada (VirtualMachineExternalAccess). | Não | Verificação no convidado |
As ações de mitigação podem reiniciar a VM e reprogramar para outro nó em falhas frequentes.
Solicitar permissões e acesso
Para realizar as tarefas listadas nesta página, você precisa ter o papel de administrador de máquinas virtuais do projeto. Siga as etapas para
verificar
se você tem o papel de administrador de máquinas virtuais do projeto (project-vm-admin) no namespace
do projeto em que a VM reside.
Ativar verificações no convidado
Por padrão, a verificação no convidado é desativada se o guestHealthCheck não estiver presente.
Para ativar ou desativar a verificação no convidado de uma VM, é necessário atualizar o GuestEnvironment na especificação da VM. Essa configuração coleta métricas de dentro da VM, desde que o agente convidado esteja instalado. Se o guestHealthCheck não estiver presente, as verificações no convidado serão desativadas por padrão.
- Abra o arquivo de configuração da VM.
- Navegue até a seção
spec:. - Adicione ou modifique os campos
guestEnvironment:eguestHealthCheck:para ativar a verificação. - Defina o campo
enablecomo verdadeiro.
Confira um exemplo da configuração em um arquivo YAML:
spec:
compute:
virtualMachineType: n2-standard-2-gdc
guestEnvironment:
guestHealthCheck:
enable: true
Verificar as verificações
Depois de configurar a VM, é possível verificar o status das verificações de disponibilidade inspecionando a Condition da máquina virtual no Status.
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n NAMESPACE_NAME \
get gvm -o yaml
A saída mostra o status das várias verificações. Por exemplo, se o guestHealthCheck estiver ativado, as condições de status gvm serão preenchidas com o indicador VMGuestHealth.
Desativar a alta disponibilidade da VM
Por padrão, a alta disponibilidade da VM é ativada se a anotação não estiver presente. É possível desativar explicitamente a alta disponibilidade de uma VM específica adicionando uma anotação. Adicione a anotação para desativar a alta disponibilidade da VM:
- Abra o arquivo de configuração da VM.
- Adicione a anotação
highavailability.virtualmachine.gdc.goog/enable: falseaos metadados da VM para desativar a alta disponibilidade.
Confira um exemplo da anotação em um arquivo YAML:
metadata:
annotations:
highavailability.virtualmachine.gdc.goog/enable: false
Mitigação de falhas de nós
As ações de mitigação automatizadas resolvem falhas de VM e mantêm a alta disponibilidade. Quando a infraestrutura subjacente não consegue mais oferecer suporte a uma VM em execução, o sistema tenta isolar o nó não íntegro e reprogramar a VM para um nó íntegro. Os cenários a seguir podem acionar essa mitigação no nível do nó:
Partição de nó do servidor da API: o nó de metal nu que hospeda a VM é particionado do servidor da API Management devido a uma condição como a seguinte:
- Perda de conectividade de rede entre o servidor da API e o nó.
- O agente
kubeletno nó está inativo. - O nó observa uma falha de energia.
Partição de VM de cluster de usuário: uma VM de worker de cluster de usuário é particionada de seu servidor da API Management do cluster.