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
oBATCH_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 esBATCH_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
= 2BATCH_SOAK_DURATION
= 10 sNODE_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 sNODE_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
= 2BATCH_SOAK_DURATION
= 10 sNODE_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 sNODE_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
- Consulta más información sobre las estrategias de actualización de nodos.
- Consulta cómo actualizar manualmente tus grupos de nodos.