Asegúrate de que los recursos para las actualizaciones de nodos


En esta página, se explica cómo asegurarte de que puedas usar las estrategias de actualización de nodos para realizar cambios en los nodos de tu clúster. Recomendamos verificar si tu proyecto tiene recursos suficientes para actualizar tus grupos de nodos de Google Kubernetes Engine (GKE) Standard según la estrategia que elijas.

Recursos necesarios para las actualizaciones de nodos

Las actualizaciones de nodos pueden requerir que GKE cree nodos adicionales de forma temporal, según la estrategia de nodo y la configuración que elijas. Debido a esto, GKE puede requerir recursos adicionales para una actualización del grupo de nodos.

Todos los nodos que crea GKE, incluidos los que se usan para actualizaciones, están sujetos a lascuota de recursos de tu proyecto,disponibilidad de recursos y capacidad de reserva, para grupos de nodos con afinidad de reserva específica.

Te recomendamos verificar que tengas los recursos adecuados si tienes requisitos especiales de tipo de máquina y restricciones de capacidad. Es posible que debas configurar una estrategia que requiera menos recursos para asegurarte de que puedas actualizar los nodos o realizar otra acción, como crear una reserva. Para obtener más información, consulta Actualiza en un entorno con recursos restringidos.

Recursos necesarios para diferentes estrategias de actualización

En las siguientes secciones, se describen los recursos adicionales necesarios para usar las estrategias de actualización disponibles. Si tienes problemas de actualización, verifica las operaciones de actualización y sigue las instrucciones para resolver los errores de actualización.

Recursos para actualizaciones de aumento

Las actualizaciones de aumento son la estrategia predeterminada de actualización de nodos. Debido a que las actualizaciones de aumento crean VMs adicionales (si maxSurge se establece en un valor mayor que cero) antes de desviar y borrar los nodos antiguos, las actualizaciones pueden fallar si tu proyecto no funciona tengas suficientes recursos.

Si los recursos disponibles son menores que la cantidad de nodos especificada en maxSurge, la cantidad de actualizaciones paralelas es inferior a maxSurge más maxUnavailable. Si no tienes capacidad adicional, consulta cómo actualizar en un entorno restringido por recursos.

En la siguiente tabla, se describen ejemplos para demostrar diferentes comportamientos de actualización:

Configuración de actualización Cantidad de nodos adicionales permitidos por los recursos disponibles Resultado
maxSurge: 5 maxUnavailable: 0 5 Se actualizan 5 nodos en paralelo.
maxSurge: 5 maxUnavailable: 0 2 Se actualizan solo 2 nodos en paralelo.
maxSurge: 5 maxUnavailable: 0 0 La actualización falla, ya que no se pueden activar nodos adicionales y la configuración de actualización no permite reiniciar los existentes. GKE continúa intentando actualizarse de forma automática hasta que la operación tenga éxito.
maxSurge: 5 maxUnavailable: 1 5 Se actualizan 6 nodos en paralelo y se garantiza que el grupo de nodos pierda solo un nodo de forma temporal debido a la actualización.
maxSurge: 5 maxUnavailable: 1 2 Se actualizan solo 3 nodos en paralelo y se garantiza que al grupo de nodos no le falte más de un nodo debido a la actualización.
maxSurge: 5 maxUnavailable: 1 0 Se actualiza solo 1 nodo a la vez. Para ello, se vuelve a crear cada nodo con un método de actualización progresiva.

Recursos para actualizaciones azul-verde

Las actualizaciones azul-verde duplican de forma temporal la cantidad de nodos en un grupo de nodos, lo que significa que el grupo de nodos necesita el doble de recursos de forma temporal. Si no tienes suficientes recursos disponibles y configuraste tu grupo de nodos para usar esta estrategia, configura las actualizaciones de aumento si necesitas desbloquear las actualizaciones. Cuando configures esta estrategia, asegúrate de configurar los parámetros de actualización de aumento que funcionarán con los recursos disponibles para los nodos del grupo de nodos. Si deseas obtener más información, consulta la sección anterior, Recursos para actualizaciones de aumento.

Verifica las operaciones de actualización en busca de fallas relacionadas con los recursos

Puedes obtener más información sobre las operaciones de actualización, ver si fallaron y conocer el motivo de los errores. Para ello, verifica los objetos de las operaciones de actualización. Para enumerar los objetos de las operaciones de actualización, ejecuta el siguiente comando:

gcloud container operations list \
    --filter="STATUS=DONE AND TYPE=UPGRADE_NODES AND targetLink:https://container.googleapis.com/v1/projects/PROJECT_ID/zones/COMPUTE_ZONE/clusters/CLUSTER_NAME"

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • COMPUTE_ZONE: Es la zona de Compute Engine para tu clúster.
  • CLUSTER_NAME: El nombre de tu clúster.

Si la actualización más reciente falló debido a una cuota de recursos insuficiente, el resultado tendrá un aspecto similar al siguiente:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Insufficient quota to satisfy the request: waiting on IG: instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt errors: [QUOTA_EXCEEDED] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 50.0 in region us-central1.\
...

Si el motivo fue una reserva insuficiente, el resultado tendrá un aspecto similar al siguiente:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Reservation does not have enough resources for the request: waiting on IG:\
  \ instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt error: [CONDITION_NOT_MET] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Specified reservation 'foo' does not have available resources\
  \ for the request."

Si el motivo fue una capacidad insuficiente, verás mensajes de error de disponibilidad de recursos.

Resuelve errores de actualización

Si la actualización falló debido a recursos insuficientes, prueba estos pasos:

  1. Considera una estrategia de actualización que requiera menos recursos. Si usas actualizaciones azul-verde, considera las actualizaciones de aumento.
  2. Revisa si el proyecto tiene recursos innecesarios de Compute Engine que consuman la cuota y no sean necesarios. Si encuentras alguno, quítalo y vuelve a intentar la actualización.
  3. Si los dos primeros pasos no pueden desbloquear la actualización, solicita un aumento de cuota o aumenta el tamaño de la reserva específica.
  4. Si operas en un entorno con recursos limitados con, por ejemplo, requisitos especiales de tipo de máquina y restricciones de capacidad, consulta la siguiente sección para conocer los pasos para desbloquear las actualizaciones.

Actualiza en un entorno con recursos limitados

Si Google Cloud tiene capacidad limitada para un recurso específico (por ejemplo, GPU o TPU) que usa tu grupo de nodos, te recomendamos que usas una reserva para asegurarte de tener los recursos adecuados. Si no tienes recursos adecuados, es posible que no puedas actualizar los nodos hasta que puedas acceder a más capacidad si no tienes una reserva para la capacidad existente.

Si no puedes obtener ninguna capacidad adicional, no puedes usar actualizaciones azul-verde. Para las actualizaciones de aumento, maxSurge requiere nodos adicionales. Con maxUnavailable, si la capacidad no proviene de una reserva, GKE libera de forma temporal la capacidad del nodo cuando lo actualiza, lo que significa que, si hay capacidad limitada, corres el riesgo de perder la capacidad.

Usa la siguiente guía, según si tienes una reserva para tu grupo de nodos que debe actualizarse.

Actualiza con capacidad limitada sin reserva

Si no tienes una reserva para los nodos de tu grupo de nodos, te recomendamos crear una reserva. Sin embargo, si no puedes hacerlo, recomendamos usar actualizaciones de aumento con la configuración predeterminada de maxSurge=1;maxUnavailable=0. Con esta configuración, no corres el riesgo de perder la capacidad existente. Sin embargo, las actualizaciones de aumento solo crean un nodo de aumento si la capacidad está disponible. Por lo tanto, si no hay capacidad disponible, las actualizaciones pueden tardar más y tu grupo de nodos puede permanecer en un estado parcialmente actualizado hasta que se proteja la capacidad para actualizar cada nodo.

Te recomendamos crear una reserva o aumentar el tamaño de una reserva existente.

Actualiza con capacidad limitada con una reserva

Si tienes una reserva para los nodos del grupo de nodos, puedes actualizarlos en un entorno con capacidad limitada y ajustar la configuración de actualización de aumento para obtener velocidad y confiabilidad.

Si tienes capacidad adicional en la reserva, puedes usar maxSurge para crear nodos de aumento. Configura maxSurge según la cantidad de nodos que quieras interrumpir a la vez y cuánta capacidad adicional tengas. Por ejemplo, configura maxSurge=1;maxUnavailable=0 si solo deseas interrumpir un nodo a la vez o si solo tienes capacidad para crear un nodo adicional.

Si no tienes ninguna capacidad adicional, puedes usar maxUnavailable con una configuración como maxSurge=0;maxUnavailable=1, ya que se reserva la capacidad. Esta configuración interrumpe un nodo a la vez y vuelve a crearlo para actualizarlo.

¿Qué sigue?