Configura estrategias de actualización de grupos de nodos


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

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa la CLI de gcloud. Si ya instalaste la CLI de gcloud, ejecuta gcloud components update para obtener la versión más reciente.

Configura una estrategia de actualización de grupos de nodos

Cuando configuras los grupos de nodos del clúster, puedes seleccionar y configurar una de las estrategias de actualización de grupos de nodos compatibles, es decir, aumento o azul-verde. Usar estas estrategias de actualización te permite optimizar el proceso de actualización del grupo de nodos según las necesidades del entorno del clúster.

Configura las actualizaciones de aumento

Las actualizaciones de aumento te permiten cambiar la cantidad de nodos que GKE actualiza a la vez y la cantidad de interrupciones que una actualización genera en tus cargas de trabajo.

Las marcas max-surge-upgrade y max-unavailable-upgrade se definen para cada grupo de nodos. Para obtener más información sobre cómo elegir los parámetros adecuados, consulta Optimiza la configuración de la actualización de aumento.

Puedes cambiar esta configuración cuando crees o actualices un clúster o un grupo de nodos.

Las siguientes variables se usan en los comandos que se mencionan a continuación:

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

Crea un clúster con diferentes parámetros de aumento

A fin de crear un clúster con una configuración específica para actualizaciones de aumento, 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

Crea un clúster con las actualizaciones de aumento inhabilitadas

Para crear un clúster sin actualizaciones de aumento, establece el valor de la marca max-surge-upgrade en 0.

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

Crea un grupo de nodos con diferentes parámetros de aumento

A fin de crear un grupo de nodos en un clúster existente con una configuración específica para actualizaciones de aumento, 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

Cambia la configuración de actualización de aumento para un grupo de nodos existente

Para actualizar la configuración de actualización de un grupo de nodos existente, usa las marcas max-surge-upgrade y max-unavailable-upgrade. Si estableces max-surge-upgrade en un valor mayor a 0, GKE crea nodos de aumento. Si estableces max-surge-upgrade en 0, GKE no creará nodos de aumento.

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

Comprueba si las actualizaciones de aumento están habilitadas en un grupo de nodos

A fin de 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 aumento están habilitadas en el grupo de nodos, la estrategia que se enumera es SURGE.

Configura actualizaciones azul-verde

Con las actualizaciones azul-verde de grupos de nodos, 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 quitan de los nodos. La cantidad predeterminada es BATCH_NODE_COUNT = 1.
  • BATCH_SOAK_DURATION: el tiempo entre cada lote de nodos que se vacía.
  • NODE_POOL_SOAK_DURATION: es la cantidad de tiempo de prueba para validar tu carga de trabajo en la configuración de nodo nueva.

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

Las siguientes variables se usan en los comandos que se enumeran a continuación:

  • CLUSTER_NAME: el nombre del clúster para el grupo de nodos.
  • NODE_POOL_NAME: el nombre del grupo de nodos
  • NUMBER_NODES: la cantidad de nodos del grupo de nodos en cada una de las zonas del clúster.
  • BATCH_NODE_COUNT: la cantidad de nodos azules que se vaciarán en un lote durante la fase de drenado del grupo azul. El valor predeterminado es uno. Si se establece en cero, se omitirá la fase de vaciado del grupo azul.
  • BATCH_PERCENT: el porcentaje de nodos azules que se vaciarán en un lote durante la fase de drenado del grupo azul. Debe estar en el rango de [0.0, 1.0].
  • BATCH_SOAK_DURATION: la duración en segundos de la espera después de vaciar cada lote. El valor predeterminado es cero.
  • NODE_POOL_SOAK_DURATION: la duración en segundos que se espera después de completar el vaciado de todos los lotes. El valor predeterminado es de 3600 segundos.

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

Crea un grupo de nodos con parámetros predeterminados de actualización azul-verde

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

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

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

Para crear un grupo de nodos con una configuración de actualización personalizada azul-verde, usa las marcas de parámetros con el comando de creación de grupos de nodos.

Con este comando, se crea un grupo de nodos con la siguiente configuración azul-verde personalizada, con un recuento absoluto de nodos para el vaciado por lotes:

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10s
  • NODE_POOL_SOAK_DURATION = 600s
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

Crea un grupo de nodos con una actualización azul-verde mediante tamaños de lotes basados en porcentajes

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

  • BATCH_PERCENTAGE = 25% (del tamaño del grupo de nodos)
  • BATCH_SOAK_DURATION = 10s
  • 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

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

Actualiza un grupo de nodos con parámetros predeterminados de actualización azul-verde

Para actualizar un grupo de nodos existente 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

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

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

Este comando actualiza un grupo de nodos a fin de usar la siguiente configuración azul-verde personalizada, con un recuento de nodos absoluto para el vaciado por lotes:

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10s
  • NODE_POOL_SOAK_DURATION = 600s
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 mediante tamaños de lotes basados en porcentajes

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

  • BATCH_PERCENTAGE = 25% (del tamaño del grupo de nodos)
  • BATCH_SOAK_DURATION = 10s
  • 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

Vuelve a las actualizaciones de aumento

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

Sin embargo, si deseas usar actualizaciones de aumento, ejecuta el siguiente comando para volver a las actualizaciones de aumento:

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

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

A fin de inspeccionar la configuración de actualización actual de un grupo de nodos, puedes usar el siguiente comando para describirlo:

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

El siguiente fragmento es un resultado de ejemplo del comando. El campo strategy indica la estrategia de actualización en uso: SURGE indica que la estrategia de actualización de aumento 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 te muestra la fase actual de una actualización azul-verde en progreso. Obtén más información sobre cómo verificar la configuración de actualización de un grupo de nodos.

¿Qué sigue?