Resiliencia de la VM

En este documento, se proporciona una descripción general de la resiliencia de las máquina virtual (VM) y las verificaciones opcionales que los operadores de aplicaciones pueden habilitar para obtener estadísticas más detalladas desde una VM en Google Distributed Cloud (GDC) con aislamiento de aire.

Este documento está dirigido a los desarrolladores que forman parte del grupo de operadores de aplicaciones que operan VMs. Para obtener más información, consulta Audiences for GDC air-gapped documentation.

Las VMs en GDC proporcionan HA para mejorar la continuidad del servicio en caso de fallas de la infraestructura subyacente o del invitado. También puedes configurar el sistema para que emita indicadores de estado opcionales que ofrecen estadísticas más detalladas sobre el estado de la VM.

Verificaciones de disponibilidad de la VM

El sistema proporciona las siguientes verificaciones de disponibilidad de la VM:

Nombre del cheque Descripción Asistencia para acciones de mitigación Disponibilidad de la señal
Verificación de estado del huésped Verifica el estado del SO invitado. Es un requisito previo para otras verificaciones en el huésped. Revisión en la habitación
Verificación de almacenamiento Verifica el estado del almacenamiento subyacente de la VM. Revisión en la habitación
Verificación de salida Verifica la conectividad con un extremo interno conocido. No Verificación dentro y fuera del vehículo
Verificación de entrada Verifica la accesibilidad de la VM con su entrada configurada (VirtualMachineExternalAccess). No Revisión en la habitación

Las acciones de mitigación pueden reiniciar la VM y reprogramarla en otro nodo en caso de fallas frecuentes.

Solicita permisos y acceso

Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de la máquina virtual del proyecto. Sigue los pasos para verificar que tienes el rol de administrador de máquinas virtuales del proyecto (project-vm-admin) en el espacio de nombres del proyecto en el que reside la VM.

Habilita las verificaciones en el huésped

De forma predeterminada, la verificación del huésped está inhabilitada si no está presente guestHealthCheck.

Para habilitar o inhabilitar la verificación en el invitado de una VM, debes actualizar el GuestEnvironment en la especificación de la VM. Este parámetro de configuración recopila métricas desde el interior de la VM, siempre que esté instalado el agente invitado. Si no está presente guestHealthCheck, las verificaciones en el huésped se inhabilitan de forma predeterminada.

  1. Abre el archivo de configuración de tu VM.
  2. Navega a la sección spec:.
  3. Agrega o modifica los campos guestEnvironment: y guestHealthCheck: para habilitar la verificación.
  4. Establece el campo enable como verdadero.

A continuación, se muestra un ejemplo de la configuración en un archivo YAML:

spec:
  compute:
    virtualMachineType: n2-standard-2-gdc
  guestEnvironment:
    guestHealthCheck:
      enable: true

Verifica las comprobaciones

Después de configurar la VM, puedes inspeccionar el Condition de la máquina virtual en su Status para verificar el estado de las verificaciones de disponibilidad.

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n NAMESPACE_NAME \
  get gvm -o yaml

El resultado muestra el estado de las distintas verificaciones. Por ejemplo, si guestHealthCheck está habilitado, las condiciones de estado de gvm se propagan con el indicador VMGuestHealth.

Inhabilita la alta disponibilidad de la VM

De forma predeterminada, la alta disponibilidad de la VM está habilitada si la anotación no está presente. Puedes inhabilitar explícitamente la HA para una VM específica agregando una anotación. Agrega la anotación para inhabilitar la HA de la VM:

  1. Abre el archivo de configuración de tu VM.
  2. Agrega la anotación highavailability.virtualmachine.gdc.goog/enable: false a los metadatos de la VM para inhabilitar la alta disponibilidad.

A continuación, se muestra un ejemplo de la anotación en un archivo YAML:

metadata:
  annotations:
    highavailability.virtualmachine.gdc.goog/enable: false

Mitigación de fallas de nodos

Las acciones de mitigación automatizadas abordan las fallas de la VM y mantienen la alta disponibilidad. Cuando la infraestructura subyacente ya no puede admitir una VM en ejecución, el sistema intenta aislar el nodo en mal estado y reprogramar la VM en un nodo en buen estado. Las siguientes situaciones pueden activar esta mitigación a nivel del nodo:

  • Partición de nodo desde el servidor de la API: El nodo de metal desnudo que aloja la VM se particiona desde el servidor de la API de Management debido a una condición como la siguiente:

    • Pérdida de conectividad de red entre el servidor de nombres de la API y el nodo.
    • El agente kubelet del nodo no funciona.
    • El nodo observa una falla de energía.
  • Partición de VM del clúster de usuario: Una VM de trabajador del clúster de usuario se particiona desde el servidor de la API de administración de su clúster.