Resiliencia de las VMs

En este documento se ofrece una descripción general de la resiliencia de las máquinas virtuales (VMs) y de las comprobaciones opcionales que los operadores de aplicaciones pueden habilitar para obtener información más detallada desde una VM en Google Distributed Cloud (GDC) air-gapped.

Este documento está dirigido a los desarrolladores del grupo de operadores de aplicaciones que gestionan máquinas virtuales. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.

Las máquinas virtuales de GDC proporcionan alta disponibilidad para mejorar la continuidad del servicio en caso de que se produzcan fallos en la infraestructura subyacente o en los huéspedes. También puedes configurar el sistema para que emita señales de estado opcionales que ofrezcan información más detallada sobre el estado de las VMs.

Comprobaciones de disponibilidad de máquinas virtuales

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

Nombre de la comprobación Descripción Asistencia para la mitigación Disponibilidad de la señal
Comprobación del estado de los huéspedes Verifica el estado del SO invitado. Requisito previo para otras comprobaciones en el huésped. In-Guest Check
Comprobación de almacenamiento Verifica el estado del almacenamiento subyacente de la VM. In-Guest Check
Egress Check Verifica la conectividad con un endpoint interno conocido. No Comprobación en el invitado y fuera
Comprobación de entrada Verifica la accesibilidad de la VM mediante su entrada configurada (VirtualMachineExternalAccess). No In-Guest Check

Las acciones de mitigación pueden reiniciar la VM y reprogramarla en otro nodo si se producen fallos frecuentes.

Solicitar permisos y acceso

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

Habilitar comprobaciones en el huésped

De forma predeterminada, la comprobación en el huésped está inhabilitada si no está presente guestHealthCheck.

Para habilitar o inhabilitar la comprobación en el invitado de una VM, debes actualizar el GuestEnvironment en la especificación de la VM. Esta opción recoge métricas del interior de la VM, siempre que el agente invitado esté instalado. Si no se incluye el elemento guestHealthCheck, las comprobaciones en el huésped se inhabilitan de forma predeterminada.

  1. Abre el archivo de configuración de tu VM.
  2. Ve a la sección spec:.
  3. Añade o modifica los campos guestEnvironment: y guestHealthCheck: para habilitar la comprobación.
  4. Asigna el valor "true" al campo enable.

Este es un ejemplo de la configuración en un archivo YAML:

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

Verificar las comprobaciones

Después de configurar tu VM, puedes verificar el estado de las comprobaciones de disponibilidad inspeccionando el Condition de la máquina virtual en su Status.

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

El resultado muestra el estado de las distintas comprobaciones. Por ejemplo, si la opción guestHealthCheck está habilitada, las condiciones de estado de gvm se rellenan con la señal VMGuestHealth.

Inhabilitar la alta disponibilidad de una VM

De forma predeterminada, la alta disponibilidad de las VMs está habilitada si no se incluye la anotación. Puedes inhabilitar explícitamente la alta disponibilidad de una VM específica añadiendo una anotación. Añade la anotación para inhabilitar la alta disponibilidad de la VM:

  1. Abre el archivo de configuración de tu VM.
  2. Añade 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 errores de nodos

Las acciones de mitigación automatizadas solucionan los fallos de las VMs 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. En los siguientes casos, se puede activar esta mitigación a nivel de nodo:

  • Partición de nodos desde el servidor de la API: el nodo de hardware desnudo que aloja la VM se ha particionado del servidor de la API de gestión debido a una condición como la siguiente:

    • Pérdida de la conectividad de red entre el servidor de nombres de la API y el nodo.
    • El agente kubelet del nodo no funciona.
    • El nodo detecta un fallo de alimentación.
  • Partición de la VM del clúster de usuario: una VM de trabajo de un clúster de usuario se particiona del servidor de la API Management de su clúster.