En este documento, se describe cómo configurar una verificación de estado basada en la aplicación para la reparación automática de las VMs en un grupo de instancias administrado (MIG). También se describe cómo hacer lo siguiente: usar una verificación de estado sin reparación automática, quitar una verificación de estado, ver la política de reparación automática y verificar el estado de cada VM.
Puedes configurar una verificación de estado basada en la aplicación para comprobar que la aplicación en una VM responda como se espera. Si la verificación de estado que configuras detecta que tu aplicación en una VM no responde, el MIG marca esa VM como en mal estado y la repara. La reparación de una VM basada en una verificación de estado basada en aplicaciones se denomina reparación automática.
También puedes desactivar las reparaciones en un MIG para que puedas usar una verificación de estado sin activar la reparación automática.
Para obtener más información sobre las reparaciones en un MIG, consulta Información sobre la reparación de las VMs para alta disponibilidad.
Antes de comenzar
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Crea una verificación de estado si aún no lo hiciste.
- Configura una política de reparación automática en el MIG para aplicar la verificación de estado.
Crea una verificación de estado para la reparación automática, que es más conservadora que la verificación de estado del balanceo de cargas.
Por ejemplo, crea una verificación de estado que busque una respuesta en el puerto
80
y que pueda tolerar algunas fallas antes de marcar las VM comoUNHEALTHY
y hacer que se vuelvan a crear. En este ejemplo, una VM se marca como en buen estado si la verificación de estado se muestra de forma correcta una vez. La VM se marca como en mal estado si la verificación de estado se muestra de forma incorrecta3
veces consecutivas.En la consola de Google Cloud, ve a la página Crear una verificación de estado.
Nombra la verificación de estado, como
example-check
.Elige un permiso. Puedes seleccionar Regional o Global. Para este ejemplo, elige Global.
En Protocolo, asegúrate de que esté seleccionado HTTP.
En Puerto, escribe
80
.En la sección Criterios de estado, proporciona los siguientes valores:
- En Intervalo de verificación, escribe
5
. - En Tiempo de espera, escribe
5
. - Establece un umbral de buen estado para determinar la cantidad de verificaciones de estado correctas consecutivas que se deben mostrar hasta que una VM en mal estado pase a considerarse en buen estado. Escribe
1
para esta instancia. - Establece un umbral de mal estado para determinar la cantidad de verificaciones de estado incorrectas consecutivas que se deben mostrar para que una VM en buen estado pase a considerarse en mal estado. Escribe
3
para esta instancia.
- En Intervalo de verificación, escribe
Haz clic en Crear para crear una verificación de estado.
Crea una regla de firewall para permitir que la verificación de estado sondee la conexión a tu app.
Los sondeos de la verificación de estado provienen de direcciones en los rangos
130.211.0.0/22
y35.191.0.0/16
, así que asegúrate de que las reglas de firewall de la red permitan la conexión de la verificación de estado. Para este ejemplo, el MIG usa la reddefault
y sus VMs escuchan en el puerto80
. Si el puerto80
no está abierto en la red predeterminada, crea una regla de firewall.En la consola de Google Cloud, ve a la página Firewall.
Haz clic en Crear regla de firewall.
Escribe un Nombre para la regla de firewall. Por ejemplo,
allow-health-check
En Red, elige la red
default
.En Destinos, elige
All instances in the network
.En Filtro de origen, elige
IPv4 ranges
.Para Rangos de IPv4 de origen, escribe
130.211.0.0/22
y35.191.0.0/16
.En Protocolos y puertos, elige Protocolos y puertos especificados y haz lo siguiente:
- Elige TCP.
- En el campo Puertos, escribe
80
.
Haz clic en Crear.
Crea una verificación de estado para la reparación automática, que es más conservadora que la verificación de estado del balanceo de cargas.
Por ejemplo, crea una verificación de estado que busque una respuesta en el puerto
80
y que pueda tolerar algunas fallas antes de marcar las VMs comoUNHEALTHY
y hacer que se vuelvan a crear. En este ejemplo, una VM se marca como en buen estado si se muestra de forma correcta una vez. La VM se marca como en mal estado si no se muestra de forma correcta3
veces consecutivas. El siguiente comando crea una verificación de estado global.gcloud compute health-checks create http example-check --port 80 \ --check-interval 30s \ --healthy-threshold 1 \ --timeout 10s \ --unhealthy-threshold 3 \ --global
Crea una regla de firewall para permitir que la verificación de estado sondee la conexión a tu app.
Los sondeos de la verificación de estado provienen de direcciones en los rangos
130.211.0.0/22
y35.191.0.0/16
, así que asegúrate de que las reglas de firewall permitan la conexión de la verificación de estado. Para este ejemplo, el MIG usa la reddefault
y sus VMs escuchan en el puerto80
. Si el puerto80
no está abierto en la red predeterminada, crea una regla de firewall.gcloud compute firewall-rules create allow-health-check \ --allow tcp:80 \ --source-ranges 130.211.0.0/22,35.191.0.0/16 \ --network default
Crea una verificación de estado con el recurso
google_compute_http_health_check
.Por ejemplo, crea una verificación de estado que busque una respuesta en el puerto
80
y que pueda tolerar algunas fallas antes de marcar las VMs comoUNHEALTHY
y hacer que se vuelvan a crear. En este ejemplo, una VM se marca como en buen estado si se muestra de forma correcta una vez. La VM se marca como en mal estado si no se muestra de forma correcta3
veces consecutivas. En la siguiente solicitud, se crea una verificación de estado global.Crea un firewall con el recurso
google_compute_firewall
.Los sondeos de la verificación de estado provienen de direcciones en los rangos
130.211.0.0/22
y35.191.0.0/16
, así que asegúrate de que las reglas de firewall permitan la conexión de la verificación de estado. Para este ejemplo, el MIG usa la reddefault
y sus VMs escuchan en el puerto80
. Si el puerto80
no está abierto en la red predeterminada, crea una regla de firewall.Crea una verificación de estado para la reparación automática, que es más conservadora que la verificación de estado del balanceo de cargas.
Por ejemplo, crea una verificación de estado que busque una respuesta en el puerto
80
y que pueda tolerar algunas fallas antes de marcar las VMs comoUNHEALTHY
y hacer que se vuelvan a crear. En este ejemplo, una VM se marca como en buen estado si se muestra de forma correcta una vez. La VM se marca como en mal estado si no se muestra de forma correcta3
veces consecutivas. En la siguiente solicitud, se crea una verificación de estado global.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/healthChecks { "name": "example-check", "type": "http", "port": 80, "checkIntervalSec": 30, "healthyThreshold": 1, "timeoutSec": 10, "unhealthyThreshold": 3 }
Crea una regla de firewall para permitir que la verificación de estado sondee la conexión a tu app.
Los sondeos de la verificación de estado provienen de direcciones en los rangos
130.211.0.0/22
y35.191.0.0/16
, así que asegúrate de que las reglas de firewall permitan la conexión de la verificación de estado. Para este ejemplo, el MIG usa la reddefault
y sus VMs escuchan en el puerto80
. Si el puerto80
no está abierto en la red predeterminada, crea una regla de firewall.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "allow-health-check", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "allowed": [ { "ports": [ "80" ], "IPProtocol": "tcp" } ] }
Reemplaza
PROJECT_ID
por el ID del proyecto.- Si aún no tienes una verificación de estado, crea una.
- Si deseas evitar la activación falsa de la reparación automática mientras configuras una verificación de estado nueva, primero debes desactivar las reparaciones en el MIG y, luego, configurar la política de reparación automática.
En la consola de Google Cloud, ve a la página Grupos de instancias.
En la columna Nombre de la lista, haz clic en el nombre del MIG en el que deseas aplicar la verificación de estado.
Haz clic en Editar para modificar este MIG.
En la sección Ciclo de vida de la instancia de VM, en Reparación automática, elige una Verificación de estado global o regional.
Cambia o mantén la configuración de Retraso inicial.
El retraso inicial es la cantidad de segundos que tarda una VM nueva en inicializar y ejecutar su secuencia de comandos de inicio. Durante el período de retraso inicial de una VM, el MIG ignora las verificaciones de estado fallidas porque la VM puede estar en el proceso de inicio. Esto evita que MIG vuelva a crear una VM de forma prematura. Si la verificación de estado recibe una respuesta en buen estado durante el retraso inicial, indica que el proceso de inicio está completo y que la VM está lista. El temporizador de retraso inicial comienza cuando el campo
currentAction
de la VM cambia aVERIFYING
. El valor de retraso inicial debe ser de entre 0 y 3,600 segundos. En la consola, el valor predeterminado es 300 segundos.Haz clic en Guardar para aplicar los cambios.
MIG_NAME
: El nombre del MIG en el que deseas configurar la reparación automática.SIZE
: La cantidad de VM en el grupo.INSTANCE_TEMPLATE_URL
: la URL parcial de la plantilla de instancias que deseas usar para crear las VMs en el grupo. Por ejemplo:- Plantilla de instancias regionales:
projects/example-project/regions/us-central1/instanceTemplates/example-template
. - Plantilla de instancias globales:
projects/example-project/global/instanceTemplates/example-template
.
- Plantilla de instancias regionales:
HEALTH_CHECK_URL
: Es la URL parcial de la verificación de estado que deseas configurar para la reparación automática. Si deseas usar una verificación de estado regional, debes proporcionar la URL parcial de la verificación de estado regional. Por ejemplo:- Verificación de estado regional:
projects/example-project/regions/us-central1/healthChecks/example-health-check
. - Verificación de estado global:
projects/example-project/global/healthChecks/example-health-check
.
- Verificación de estado regional:
INITIAL_DELAY
: Es la cantidad de segundos que tarda una VM nueva en inicializar y ejecutar su secuencia de comandos de inicio. Durante el período de retraso inicial de una VM, el MIG ignora las verificaciones de estado fallidas porque la VM puede estar en el proceso de inicio. Esto evita que MIG vuelva a crear una VM de forma prematura. Si la verificación de estado recibe una respuesta en buen estado durante el retraso inicial, indica que el proceso de inicio está completo y que la VM está lista. El temporizador de retraso inicial comienza cuando el campocurrentAction
de la VM cambia aVERIFYING
. El valor de retraso inicial debe ser de entre0
y3600
segundos. El valor predeterminado es0
.ZONE
: zona en la que se encuentra el MIG. Para un MIG regional, usa la marca--region
.- Para un MIG zonal, usa el método
instanceGroupManager.patch
. - Para un MIG regional, usa el método
regionInstanceGroupManager.patch
. - Para un MIG zonal, usa el método
instanceGroupManager.insert
. - Para un MIG regional, usa el método
regionInstanceGroupManager.insert
. PROJECT_ID
: el ID de tu proyecto.MIG_NAME
: El nombre del MIG en el que deseas configurar la reparación automática.SIZE
: La cantidad de VM en el grupo.INSTANCE_TEMPLATE_URL
: la URL parcial de la plantilla de instancias que deseas usar para crear las VMs en el grupo. Por ejemplo:- Plantilla de instancias regionales:
projects/example-project/regions/us-central1/instanceTemplates/example-template
. - Plantilla de instancias globales:
projects/example-project/global/instanceTemplates/example-template
.
- Plantilla de instancias regionales:
HEALTH_CHECK_URL
: Es la URL parcial de la verificación de estado que deseas configurar para la reparación automática. Por ejemplo:- Verificación de estado regional:
projects/example-project/regions/us-central1/healthChecks/example-health-check
. - Verificación de estado global:
projects/example-project/global/healthChecks/example-health-check
.
- Verificación de estado regional:
INITIAL_DELAY
: Es la cantidad de segundos que tarda una VM nueva en inicializar y ejecutar su secuencia de comandos de inicio. Durante el período de retraso inicial de una VM, el MIG ignora las verificaciones de estado fallidas porque la VM puede estar en el proceso de inicio. Esto evita que MIG vuelva a crear una VM de forma prematura. Si la verificación de estado recibe una respuesta en buen estado durante el retraso inicial, indica que el proceso de inicio está completo y que la VM está lista. El temporizador de retraso inicial comienza cuando el campocurrentAction
de la VM cambia aVERIFYING
. El valor de retraso inicial debe ser de entre0
y3600
segundos. El valor predeterminado es0
.ZONE
: zona en la que se encuentra el MIG. Para un MIG regional, usaregions/REGION
en la URL.- Retraso de 10 minutos antes de que la reparación automática comience a supervisar las VMs del grupo
- + 5 minutos para el retraso inicial configurado
- + 1 minuto para el * umbral de buen estado del intervalo de verificación (60s * 1)
- = 16 minutos antes de que la VM se marque como en buen estado o se la vuelva a crear
En la consola de Google Cloud, ve a la página Grupos de instancias.
- Haz clic en el nombre del MIG del que deseas quitar la verificación de estado.
- Haz clic en Editar para modificar este MIG.
- En la sección Ciclo de vida de la instancia de VM, en Reparación automática, elige Sin verificación de estado.
- Haz clic en Guardar para aplicar los cambios.
- Para un MIG zonal, usa el método
instanceGroupManagers.patch
- Para un MIG regional, usa el método
regionInstanceGroupManagers.patch
PROJECT_ID
: el ID de tu proyecto.MIG_NAME
: El nombre del MIG en el que deseas configurar la reparación automática.ZONE
: zona en la que se encuentra el MIG. Para un MIG regional, usaregions/REGION
.En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en el nombre del MIG del que deseas ver la política de reparación automática.
Ve a la pestaña Detalles.
En la sección Ciclo de vida de la instancia de VM, el campo Reparación automática muestra la verificación de estado y el retraso inicial configurado en la política de reparación automática.
- Para un MIG zonal, usa el método
instanceGroupManagers.get
- Para un MIG regional, usa el método
regionInstanceGroupManagers.get
PROJECT_ID
: el ID de tu proyecto.MIG_NAME
: El nombre del MIG en el que deseas configurar la reparación automática.ZONE
: zona en la que se encuentra el MIG. Para un MIG regional, usaregions/REGION
.- Verifica si las VMs están en buen estado
- Verifica las acciones actuales en las VMs
- Comprueba si el MIG es estable
- Identificar las VMs en mal estado que no se están reparando. Es posible que una VM no se repare de inmediato, incluso si se diagnosticó que está en mal estado en las siguientes situaciones:
- La VM aún está en proceso de iniciarse y no ha pasado el retraso inicial.
- Un porcentaje importante de las instancias en mal estado se está reparando. El MIG demora cualquier reparación automática adicional retrasa para garantizar que el grupo no deje de ejecutar un subconjunto de instancias.
- Detectar errores de configuración de verificación de estado. Por ejemplo, puedes detectar reglas de firewall mal configuradas o un extremo de verificación de estado de aplicación no válido si la instancia informa un estado de
TIMEOUT
. - Determina el valor de retraso inicial a configurar midiendo el tiempo que transcurre entre el momento en el que la VM pasa a un estado
RUNNING
y el momento en el que pasa a un estadoHEALTHY
. Para medir esta brecha, sondea el métodolist-instances
o puedes observar el tiempo entre la operacióninstances.insert
y el primer indicador de buen estado recibido. En la consola de Google Cloud, ve a la página Grupos de instancias.
En la columna Nombre de la lista, haz clic en el nombre del MIG que deseas examinar. Se abrirá una página con las propiedades del grupo de instancias y una lista de las VM incluidas en el grupo.
Si una VM no está en buen estado, puedes ver su estado en la columna Estado de verificación de estado.
HEALTHY
: Se puede acceder a la VM, así como establecer una conexión con el extremo de verificación de estado de la aplicación, y la respuesta cumple con los requisitos definidos por la verificación de estado.DRAINING
: La VM se está purgando. Las conexiones existentes a la VM tienen tiempo para completarse, pero las conexiones nuevas se rechazan.UNHEALTHY
: Se puede acceder a la VM, pero no cumple con los requisitos definidos por la verificación de estado.TIMEOUT
: No se puede acceder a la VM ni establecer una conexión con el extremo de verificación de estado de la aplicación, o el servidor de una VM no responde dentro del tiempo de espera especificado. Por ejemplo, esto puede deberse a reglas de firewall mal configuradas o una aplicación de servidor sobrecargada en una VM.UNKNOWN
: El sistema de verificación de estado no conoce la VM o su estado en este momento. La supervisión puede tomar 10 minutos en comenzar en las VM nuevas de un MIG.- Si una VM tiene un estado
UNHEALTHY
oTIMEOUT
y ya pasó su período de inicialización, el servicio de reparación automática intentará repararla de inmediato. - Si una VM tiene un estado
UNKNOWN
, el MIG no la repara de inmediato. De este modo, se evita la reparación innecesaria de una VM para la que la señal de verificación de estado no está disponible por el momento. - Una VM permanece en mal estado después de varias reparaciones consecutivas.
- Existe un porcentaje significativo de VM en mal estado en el grupo.
unhealthy-threshold
: Debe ser mayor que1
. Lo ideal es que este valor sea3
o más. Esto brinda protección contra errores poco frecuentes, como una pérdida de paquetes de red.healthy-threshold
: un valor de2
es suficiente para la mayoría de las aplicaciones.timeout
: establece este valor de tiempo en una cantidad generosa (cinco veces mayor que el tiempo de respuesta esperado o más). Esto brinda protección contra retrasos inesperados, como instancias ocupadas o una conexión de red lenta.check-interval
: este valor debe estar entre 1 segundo y el doble del tiempo de espera (no muy largo ni muy corto). Cuando un valor es demasiado largo, las instancias con errores no se detectan a tiempo. Cuando un valor es demasiado corto, las instancias y la red pueden quedar muy ocupadas, debido a la gran cantidad de sondas de verificación de estado que se envían cada segundo.- Prueba el instructivo sobre cómo usar la reparación automática para apps con alta disponibilidad.
- Supervisa los cambios de estado de las VMs.
- Aplica actualizaciones de configuración durante las reparaciones.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Precios
Cuando configuras una verificación de estado basada en la aplicación, cada vez que cambia el estado de una VM, de forma predeterminada, Compute Engine escribe una entrada de registro en Cloud Logging. Cloud Logging proporciona una asignación gratuita por mes, después de la cual el precio de los registros se calcula según el volumen de datos. Para evitar costos, puedes inhabilitar los registros de cambios de estado.
Configura una verificación de estado de la aplicación y una reparación automática
Para configurar una verificación de estado basada en aplicaciones y la reparación automática en un MIG, debes hacer lo siguiente:
Crear una verificación de estado
Puedes aplicar una sola verificación de estado a un máximo de 50 MIG. Si tienes más de 50 grupos, debes crear varias verificaciones de estado.
En el siguiente ejemplo, se muestra cómo crear una verificación de estado para la reparación automática. Puedes crear una de las siguientes verificaciones de estado regional o global para la reparación automática en MIGs. En este ejemplo, se crea una verificación de estado global que busca una respuesta del servidor web en el puerto
80
. Para que los sondeos de verificación de estado lleguen al servidor web, configura una regla de firewall.Console
gcloud
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
REST
Configura una política de reparación automática en un MIG
En un MIG, puedes configurar solo una política de reparación automática para aplicar una verificación de estado.
Puedes usar una de las siguientes verificaciones de estado regional o global para la reparación automática en MIGs. Las verificaciones de estado regionales reducen las dependencias entre regiones y ayudan a lograr la residencia de los datos. Las verificaciones de estado globales son convenientes si deseas usar la misma verificación de estado para MIGs en varias regiones.
Antes de configurar una política de reparación automática, haz lo siguiente:
Console
gcloud
Para configurar la política de reparación automática en un MIG existente, usa el comando
update
.Por ejemplo, usa el siguiente comando para configurar la política de reparación automática en un MIG zonal:
gcloud compute instance-groups managed update MIG_NAME \ --health-check HEALTH_CHECK_URL \ --initial-delay INITIAL_DELAY \ --zone ZONE
Para configurar la política de reparación automática cuando creas un MIG, usa el comando
create
.Por ejemplo, usa el siguiente comando para configurar la política de reparación automática cuando crees un MIG zonal:
gcloud compute instance-groups managed create MIG_NAME \ --size SIZE \ --template INSTANCE_TEMPLATE_URL \ --health-check HEALTH_CHECK_URL \ --initial-delay INITIAL_DELAY \ --zone ZONE
Reemplaza lo siguiente:
Terraform
Para configurar una política de reparación automática en un MIG, usa el bloque
auto_healing_policies
.En el siguiente ejemplo, se configura la política de reparación automática en un MIG zonal. Para obtener más información sobre el recurso usado en la muestra, consulta recurso
google_compute_instance_group_manager
. Para un MIG regional, usa el métodogoogle_compute_region_instance_group_manager
.Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
REST
Para configurar la política de reparación automática en un MIG existente, usa el método
patch
de la siguiente manera:Por ejemplo, realiza la siguiente llamada para configurar la reparación automática en un MIG zonal existente:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "autoHealingPolicies": [ { "healthCheck": "HEALTH_CHECK_URL", "initialDelaySec": INITIAL_DELAY } ] }
Para configurar la política de reparación automática cuando creas un MIG, usa el método
insert
de la siguiente manera:Por ejemplo, realiza la siguiente llamada para configurar la política de reparación automática cuando crees un MIG zonal:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "MIG_NAME", "targetSize": SIZE, "instanceTemplate": "INSTANCE_TEMPLATE_URL" "autoHealingPolicies": [ { "healthCheck": "HEALTH_CHECK_URL", "initialDelaySec": INITIAL_DELAY } ], }
Reemplaza lo siguiente:
Una vez que se complete la configuración de la reparación automática, pueden pasar 10 minutos hasta que la reparación automática comience a supervisar las VMs del grupo. Después de que comienza la supervisión, Compute Engine comienza a marcar las VMs como en buen estado (o bien las vuelve a crear) según tu configuración de reparación automática. Por ejemplo, si configuras un retraso inicial de 5 minutos, un intervalo de verificación de estado de 1 minuto y un umbral de buen estado de 1 verificación, el cronograma se verá de la siguiente manera:
Si desactivaste las reparaciones en el MIG antes de configurar la política de reparación automática, puedes supervisar los estados de la VM para confirmar que la verificación de estado funcione como se espera y, luego, configurar el MIG para reparar las VMs.
Usa una verificación de estado sin reparación automática
Puedes usar la verificación de estado que está configurada en un MIG sin reparación automática si desactivas las reparaciones en el MIG. Esto es útil en situaciones en las que deseas usar la verificación de estado solo para supervisar el estado de la aplicación o cuando deseas implementar tu propia lógica de reparación basada en la verificación de estado.
Para volver a configurar el MIG para reparar las VMs en mal estado, consulta Configura un MIG para reparar las VMs con errores y en mal estado.
Quita una verificación de estado
Puedes quitar una verificación de estado configurada en una política de reparación automática de la siguiente manera:
Console
gcloud
Para quitar la configuración de verificación de estado en una política de reparación automática, en el comando
update
, usa la marca--clear-autohealing
de la siguiente manera:gcloud compute instance-groups managed update MIG_NAME \ --clear-autohealing
Reemplaza
MIG_NAME
por el nombre de un MIG.REST
Para quitar la configuración de verificación de estado en una política de reparación automática, establece la política de reparación automática en un valor vacío.
Por ejemplo, para quitar la verificación de estado en un MIG zonal, realiza la siguiente solicitud:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "autoHealingPolicies": [ {} ] }
Reemplaza lo siguiente:
Visualiza la política de reparación automática en un MIG
Puedes ver la política de reparación automática de un MIG de la siguiente manera:
Console
gcloud
Para ver la política de reparación automática en un MIG, usa el siguiente comando:
gcloud compute instance-groups managed describe MIG_NAME \ --format="(autoHealingPolicies)"
Reemplaza
MIG_NAME
por el nombre de un MIG.El siguiente es un resultado de muestra:
autoHealingPolicies: healthCheck: https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check initialDelaySec: 300
REST
Para ver la política de reparación automática en un MIG, usa los métodos REST de la siguiente manera:
Por ejemplo, realiza la siguiente solicitud para ver la política de reparación automática en un MIG zonal:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
En el cuerpo de la respuesta, busca el objeto
autoHealingPolicies[]
.A continuación, se muestra una respuesta de ejemplo:
{ ... "autoHealingPolicies": [ { "healthCheck": "https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check", "initialDelaySec": 300 } ], ... }
Reemplaza lo siguiente:
Verifica el estado
Después de configurar una verificación de estado basada en la aplicación en un MIG, puedes verificar que una VM se esté ejecutando y que su aplicación responda de las siguientes maneras:
Verifica si las VMs están en buen estado
Si configuraste una verificación de estado basada en la aplicación para tu MIG, puedes revisar el estado de cada instancia administrada.
Inspecciona los estados de la instancia administrada para hacer lo siguiente:
Usa el comandoconsole, la herramienta de línea de comandos
gcloud
o REST para ver los estados.Console
gcloud
Use el subcomando
list-instances
.gcloud compute instance-groups managed list-instances instance-group NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR igm-with-hc-fvz6 europe-west1 RUNNING HEALTHY NONE my-template igm-with-hc-gtz3 europe-west1 RUNNING HEALTHY NONE my-template
En la columna
HEALTH_STATE
, se muestra el estado de cada VM.REST
Para un MIG regional, crea una solicitud
POST
al métodolistManagedInstances
:POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group/listManagedInstances
Para un MIG zonal, usa el método
listManagedInstances
de MIG zonal:POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group/listManagedInstances
La solicitud muestra una respuesta similar a la siguiente, que incluye un campo
instanceHealth
para cada instancia administrada.{ "managedInstances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/example-group-5485", "instanceStatus": "RUNNING", "currentAction": "NONE", "lastAttempt": { }, "id": "6159431761228150698", "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/example-template", "version": { "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/example-template" }, "instanceHealth": [ { "healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/http-basic-check", "detailedHealthState": "HEALTHY" } ] }, { "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/example-group-sfdp", "instanceStatus": "STOPPING", "currentAction": "DELETING", "lastAttempt": { }, "id": "6622324799312181783", "instanceHealth": [ { "healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/http-basic-check", "detailedHealthState": "TIMEOUT" } ] } ] }
Estados
Los siguientes estados de VM están disponibles:
Las VM nuevas muestran un estado
UNHEALTHY
hasta que el sistema de verificación de estado las verifica.La reparación de una VM depende de su estado:
Los intentos de reparación automática pueden retrasarse si sucede lo siguiente:
Queremos conocer tus casos prácticos, desafíos o comentarios relacionados con los valores de estado de las VM. Puedes compartir tus comentarios con nuestro equipo en mig-discuss@google.com.
Verifica las acciones actuales en las VMs
Cuando un MIG está en un proceso de creación de una instancia de VM, establece el campo
currentAction
de solo lectura de esa instancia enCREATING
. Si se vincula una política de reparación automática al grupo, una vez que se crea y ejecuta la VM, el MIG define la acción actual de la instancia enVERIFYING
y el verificador de estado comienza a sondear la aplicación de la VM. Si la aplicación pasa esta verificación de estado inicial dentro del tiempo que demora en iniciarse, la VM se verifica y el MIG cambia el campocurrentAction
de la VM aNONE
.Para verificar las acciones actuales en las VM, consulta Visualiza las acciones actuales en las VMs.
Comprueba si el MIG es estable
En el nivel de grupo, Compute Engine propaga un campo de solo lectura llamado
status
que contiene una marcaisStable
.Si todas las VMs del grupo están en ejecución y en buen estado (es decir, el campo
currentAction
de cada instancia administrada se establece enNONE
), el MIG establece el campostatus.isStable
entrue
. Recuerda que la estabilidad de un MIG depende de los parámetros de configuración de grupo más allá de la política de reparación automática. Por ejemplo, si tu grupo tiene ajuste de escala automático y si está realizando un aumento o una reducción de escala horizontal, entonces el MIG establece el campostatus.isStable
enfalse
debido a la operación del escalador automático.Para verificar los valores del campo
status.isStable
de tu MIG, consulta Verifica si un MIG es estable.Visualiza el historial de operaciones de reparación automática
Puedes usar gcloud CLI o la API para ver los eventos de reparación automática anteriores.
gcloud
Usa el comando
gcloud compute operations list
con un filtro para ver solo los eventos de reparación automática en tu proyecto.gcloud compute operations list --filter='operationType~compute.instances.repair.*'
Para obtener más información sobre una operación de reparación específica, usa el comando
describe
. Por ejemplo:gcloud compute operations describe repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5 --zone us-east1-b
REST
Para los MIGs regionales, envía una solicitud
GET
al recursoregionOperations
y, luego, incluye un filtro para definir el alcance de la lista de salida a los eventoscompute.instances.repair.*
.GET https://compute.googleapis.com/compute/v1/projects/project-id/region/region/operations?filter=operationType+%3D+%22compute.instances.repair.*%22
Para los MIGs zonales, usa el recurso
zoneOperations
.GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations?filter=operationType+%3D+%22compute.instances.repair.*%22
Para obtener más información sobre una operación de reparación específica, envía una solicitud
GET
para esa operación específica. Por ejemplo:GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations/repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5
Características de una buena verificación de estado de reparación automática
Las verificaciones de estado que se usan en la reparación automática deben ser conservadoras para que no borren ni vuelvan a crear tus instancias de manera preventiva. Cuando una verificación de estado de reparación automática es demasiado agresiva, la reparación automática puede confundir las instancias ocupadas con instancias con errores y reiniciarlas sin necesidad, lo que reduce la disponibilidad.
Pasos siguientes
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-22 (UTC)
-