Configurar estrategias de actualización de nodos

Como administrador de la plataforma, puedes configurar una estrategia de actualización de nodos para ajustar cómo actualiza GKE los nodos de tus clústeres de Google Kubernetes Engine (GKE). Para obtener más información sobre las estrategias de actualización de nodos, consulta Estrategias de actualización de nodos.

Antes de empezar

Antes de empezar, asegúrate de que has realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.

Configurar una estrategia de actualización de nodos

Al configurar los grupos de nodos de tu clúster, puedes seleccionar y configurar una de las estrategias de actualización de nodos admitidas, es decir, surge o azul-verde. Estas estrategias de actualización te permiten optimizar el proceso de actualización de grupos de nodos en función de las necesidades del entorno de tu clúster.

Configurar actualizaciones con compensación

Las actualizaciones con picos te permiten cambiar el número de nodos que actualiza GKE a la vez y la cantidad de interrupciones que provoca una actualización en tus cargas de trabajo.

Las marcas max-surge-upgrade y max-unavailable-upgrade se definen en cada grupo de nodos. Para obtener más información sobre cómo elegir los parámetros adecuados, consulta el artículo Optimizar la configuración de la actualización de la subida de tensión.

Puedes cambiar estos ajustes al crear o actualizar un clúster o un grupo de nodos.

En los comandos que se mencionan a continuación se usan las siguientes variables:

  • CLUSTER_NAME: el nombre del clúster del grupo de nodos.
  • COMPUTE_ZONE: la zona del clúster.
  • NODE_POOL_NAME: el nombre del grupo de nodos.
  • NUMBER_NODES: el número de nodos del grupo de nodos en cada una de las zonas del clúster.
  • SURGE_NODES: número de nodos adicionales (de aumento) que se crearán en cada actualización del grupo de nodos.
  • UNAVAILABLE_NODES: número de nodos que pueden no estar disponibles al mismo tiempo en cada actualización del grupo de nodos.

Crear un clúster con parámetros de aumento específicos

Para crear un clúster con ajustes específicos para las actualizaciones de picos de demanda, usa las marcas max-surge-upgrade y max-unavailable-upgrade.

gcloud container clusters create CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Crear un clúster con la actualización con compensación inhabilitada

Para crear un clúster sin actualizaciones de sobrecarga, asigna el valor 0 a la marca max-surge-upgrade.

gcloud container clusters create CLUSTER_NAME \
    --max-surge-upgrade=0 --max-unavailable-upgrade=1

Crear un grupo de nodos con parámetros de aumento específicos

Para crear un grupo de nodos en un clúster con ajustes específicos para las actualizaciones de picos, usa las marcas max-surge-upgrade y max-unavailable-upgrade.

gcloud container node-pools create NODE_POOL_NAME \
    --num-nodes=NUMBER_NODES --cluster=CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Cambiar la configuración de la actualización de picos de un grupo de nodos

Para actualizar los ajustes de actualización de un grupo de nodos, usa las marcas max-surge-upgrade y max-unavailable-upgrade. Si asignas a max-surge-upgrade un valor superior a 0, GKE crea nodos de aumento. Si asignas el valor max-surge-upgrade a 0, GKE no crea nodos de aumento.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Comprobar si las actualizaciones de picos están habilitadas en un grupo de nodos

Para ver si las actualizaciones de aumento están habilitadas en un grupo de nodos, usa gcloud para describir los parámetros del clúster:

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME

Si las actualizaciones de picos están habilitadas en el grupo de nodos, la estrategia que se muestra es SURGE.

Configurar actualizaciones azul-verde

Con las actualizaciones de grupos de nodos azul-verde, puedes controlar lo siguiente:

  • BATCH_NODE_COUNT o BATCH_PERCENT: el tamaño de los lotes de nodos que GKE vacía a la vez, lo que significa que los pods se eliminan de los nodos. El valor predeterminado es BATCH_NODE_COUNT=1. Si alguno de estos ajustes tiene el valor 0, GKE omite esta fase y pasa a la fase Soak node pool.
  • BATCH_SOAK_DURATION: el tiempo entre cada lote de nodos que se va a vaciar.
  • NODE_POOL_SOAK_DURATION: el tiempo de permanencia para validar tu carga de trabajo en la nueva configuración del nodo.

Para obtener más información sobre cómo funcionan las fases de las actualizaciones azul-verde, consulta Fases de las actualizaciones azul-verde.

En los comandos que se indican en las siguientes secciones se usan las variables que se muestran a continuación:

  • CLUSTER_NAME: el nombre del clúster del nodo pool.
  • NODE_POOL_NAME: el nombre del grupo de nodos.
  • NUMBER_NODES: número de nodos del grupo de nodos en cada una de las zonas del clúster.
  • BATCH_NODE_COUNT: el número de nodos azules que se van a vaciar en un lote durante la fase de vaciado del grupo azul. El valor predeterminado es 1. Si se le asigna el valor 0, se omitirá la fase de drenaje del grupo azul.
  • BATCH_PERCENT: porcentaje de nodos azules que se van a vaciar en un lote durante la fase de vaciado del grupo azul, expresado como un decimal entre 0 y 1 (ambos incluidos). GKE redondea a la baja al nodo más cercano, con un valor mínimo de 1 nodo, si el porcentaje no es un número entero de nodos. Si se le asigna el valor 0, se omitirá la fase de drenaje de la piscina azul.
  • BATCH_SOAK_DURATION: duración en segundos que se debe esperar después de cada purga de lote. El valor predeterminado es 0.
  • NODE_POOL_SOAK_DURATION: la duración en segundos que se debe esperar después de completar el vaciado de todos los lotes. El valor predeterminado es de 3600 segundos.

Crear un grupo de nodos con la estrategia de actualización azul-verde

Crear un grupo de nodos con los parámetros predeterminados de la actualización azul-verde

Para crear un grupo de nodos en un clúster con la estrategia de actualización azul-verde y los parámetros predeterminados, usa el siguiente comando:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade

Crear un grupo de nodos con una actualización azul-verde mediante tamaños de lote de recuento de nodos absolutos

Para crear un grupo de nodos con ajustes de actualización azul-verde personalizados, usa las marcas de parámetros con el comando de creación del grupo de nodos.

Este comando crea un grupo de nodos con la siguiente configuración azul-verde personalizada, usando un recuento de nodos absoluto para los drenajes por lotes:

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10 s
  • NODE_POOL_SOAK_DURATION = 600 s
gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
    --node-pool-soak-duration=600s

Crear un grupo de nodos con una actualización azul-verde usando tamaños de lote basados en porcentajes

Este comando crea un grupo de nodos con la siguiente configuración azul-verde personalizada, usando un porcentaje para los drenajes por lotes:

  • BATCH_PERCENTAGE = 25% (del tamaño del grupo de nodos)
  • BATCH_SOAK_DURATION = 10 s
  • NODE_POOL_SOAK_DURATION = 1800s
gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
    --node-pool-soak-duration=1800s

Actualizar una estrategia de actualización azul-verde de un grupo de nodos

Actualizar un grupo de nodos con los parámetros predeterminados de la actualización azul-verde

Para actualizar un grupo de nodos a la estrategia de actualización azul-verde, usa el siguiente comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade

Actualizar un grupo de nodos con una actualización azul-verde usando tamaños de lote de recuento de nodos absolutos

Para actualizar un grupo de nodos a la estrategia de actualización azul-verde con ajustes personalizados, usa las marcas de parámetros con el comando de creación del grupo de nodos.

Este comando actualiza un grupo de nodos para que use la siguiente configuración azul-verde personalizada, con un recuento de nodos absoluto para los drenajes por lotes:

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10 s
  • NODE_POOL_SOAK_DURATION = 600 s
gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
    --node-pool-soak-duration=600s

Actualizar un grupo de nodos con una actualización azul-verde usando tamaños de lote basados en porcentajes

Este comando crea un grupo de nodos con la siguiente configuración azul-verde personalizada, usando un porcentaje para los drenajes por lotes:

  • BATCH_PERCENTAGE = 25% (del tamaño del grupo de nodos)
  • BATCH_SOAK_DURATION = 10 s
  • NODE_POOL_SOAK_DURATION = 1800s
gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
    --node-pool-soak-duration=1800s

Volver a las actualizaciones con compensación

Puedes cambiar el comportamiento de las actualizaciones azul-verde con ajustes y controlar el proceso de actualización con comandos.

Sin embargo, si quieres usar actualizaciones de picos, ejecuta el siguiente comando para volver a ellas:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-surge-upgrade

Inspeccionar la configuración de actualización de un grupo de nodos

Para inspeccionar la configuración de actualización actual de un grupo de nodos, puedes usar el siguiente comando para describir el grupo de nodos:

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME

El siguiente fragmento es un ejemplo de la salida del comando. El campo strategy indica la estrategia de actualización que se está usando: SURGE indica que la estrategia de actualización de picos está habilitada y BLUE_GREEN indica que la estrategia de actualización azul-verde está habilitada.

upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: 1800s
    standardRolloutPolicy:
      batchNodeCount: 1
      batchSoakDuration: 10s
  strategy: BLUE_GREEN

Este comando también muestra la fase actual de una actualización azul-verde en curso. Más información sobre cómo comprobar los ajustes de actualización de un grupo de nodos

Siguientes pasos