Actualizar un grupo de nodos
En este tema se explica cómo puedes actualizar tus grupos de nodos. Puede actualizar sus grupos de nodos por los siguientes motivos:
- Para actualizar la versión de tu grupo de nodos
- Para cambiar el número de nodos de tu grupo de nodos
- Para cambiar las anotaciones de tu grupo de nodos (solo se pueden actualizar a través de la API)
También puede cambiar otros parámetros de sus grupos de nodos que no se hayan mencionado anteriormente.
Para ver una lista completa de los parámetros que puedes actualizar, consulta la documentación de gcloud container azure node-pools update
y projects.locations.azureNodePools.patch
.
Proceso de actualización
En esta sección se describen los procesos que sigue GKE en Azure para actualizar un grupo de nodos. El proceso es diferente en función del alcance de los cambios necesarios en el grupo de nodos.
Actualización solo de la configuración
Si GKE en Azure puede actualizar un grupo de nodos sin reiniciar ni volver a crear ningún recurso, hará esos cambios. Por ejemplo, si actualizas las anotaciones de tu grupo de nodos, no se reiniciará ninguna instancia.
Actualización continua
Cuando se requiere reiniciar las máquinas virtuales existentes para aplicar un cambio en un grupo de nodos (por ejemplo, al actualizar la versión de Kubernetes), GKE en Azure sigue estos pasos:
- Modifica el conjunto de escalado de máquinas virtuales del grupo de nodos con la nueva configuración.
- Elige la instancia subyacente de un nodo para actualizarla.
- GKE en Azure acordonará y desactivará el nodo. En este punto, no se pueden programar nuevos pods en el nodo de destino. Los objetos Pod que ya estén en el nodo de destino se reprogramarán en otros nodos. Los pods que no se pueden reprogramar en ningún otro nodo permanecen en la fase Pendiente hasta que se puedan programar.
- Actualiza la instancia para que adopte la configuración más reciente de su conjunto de escalado de máquinas virtuales.
- Crea una imagen y reinicia la instancia.
- Espera hasta que todos los nodos de este grupo de nodos estén en buen estado.
- Si todos los nodos de este grupo están en buen estado, selecciona otro nodo hasta que se actualicen todos. Si algún nodo no está en buen estado, GKE en Azure pone el grupo de nodos en estado
DEGRADED
. Para obtener más información, consulta Actualizaciones fallidas.
Proteger las cargas de trabajo durante una actualización gradual de un grupo de nodos
Durante la actualización continua de un grupo de nodos, GKE en Azure respeta la configuración de PodDisruptionBudget
hasta una hora después de que un nodo empiece a drenarse. Al cabo de una hora, GKE en Azure elimina los pods restantes del nodo.
Cambiar el tamaño de los grupos de nodos
Los grupos de nodos de GKE en Azure tienen habilitado el autoescalador de clústeres de forma predeterminada. El autoescalador de clústeres cambia automáticamente el tamaño del grupo de nodos en función de las demandas de tus cargas de trabajo. Para obtener más información sobre la herramienta de adaptación dinámica de clústeres, consulta Adaptación dinámica de clústeres.
Cuando cambias el número máximo y mínimo de nodos del grupo de nodos, GKE en Azure lleva a cabo diferentes acciones en función de la nueva configuración y del número actual de nodos del grupo de nodos. Entre ellas se incluyen las siguientes:
Si el número de nodos actual del grupo de nodos ya está dentro del nuevo intervalo, GKE en Azure no cambiará el número de nodos del grupo.
Si el nuevo número mínimo de nodos es superior al número de nodos actual del grupo de nodos, GKE en Azure añade más nodos hasta que el grupo de nodos alcance el nuevo tamaño mínimo.
Si el nuevo número máximo de nodos es inferior al número de nodos actual del grupo de nodos, GKE en Azure reduce el tamaño del grupo de nodos realizando las siguientes acciones:
- Actualizar la configuración de autoescalado en el conjunto de escalado de máquinas virtuales del grupo de nodos
- Selecciona el nodo que quieras quitar
- Acordonar y drenar el nodo
- Eliminar la instancia de máquina virtual subyacente
- Espera a que la máquina virtual eliminada desaparezca por completo
- Realizar una comprobación del estado en todo el grupo de nodos
- Repite el proceso hasta que el número de nodos alcance el valor deseado.
Cómo protege GKE en Azure las cargas de trabajo durante el cambio de tamaño del grupo de nodos
Durante el cambio de tamaño de un grupo de nodos, GKE en Azure respeta la configuración de PodDisruptionBudget hasta una hora después de que un nodo empiece a vaciarse. Al cabo de una hora, GKE en Azure elimina los objetos Pod restantes del nodo.
Durante el cambio de tamaño del grupo de nodos, GKE en Azure cierra correctamente los nodos que se van a reiniciar o eliminar y espera hasta dos horas. Si quedan objetos Pod en el nodo después de dos horas, GKE en Azure elimina la instancia de máquina virtual subyacente.
Comprobar el estado de una actualización fallida
Si GKE en Azure realiza una comprobación del estado después de una actualización y esta falla, el grupo de nodos se marca como DEGRADED
. Puedes consultar el estado de tu clúster con el siguiente comando de Google Cloud CLI:
gcloud container azure node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
Haz los cambios siguientes:
NODE_POOL_NAME
: el nombre del grupo de nodosCLUSTER_NAME
: el nombre de tu clústerGOOGLE_CLOUD_LOCATION
: la región Google Cloud que gestiona tu clúster
El resultado incluye información sobre el estado y la configuración de tu grupo de nodos.
Requisitos previos
Para actualizar un grupo de nodos, debes tener el permiso de gkemulticloud.googleapis.com/azureNodePools.update
Gestión de Identidades y Accesos.
Actualizar un grupo de nodos
Puedes actualizar un grupo de nodos con Google Cloud CLI. Para actualizar un grupo de nodos, ejecuta el siguiente comando:
gcloud container azure node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--node-version NODE_POOL_VERSION \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES
Haz los cambios siguientes:
NODE_POOL_NAME
: el nombre del grupo de nodos que se va a actualizarCLUSTER_NAME
: el nombre del clúster al que se va a adjuntar el grupo de nodosGOOGLE_CLOUD_LOCATION
: la región Google Cloud admitida que gestiona tu clúster. Por ejemplo,us-west1
.NODE_POOL_VERSION
: la nueva versión del grupo de nodos admitidaMIN_NODES
: el nuevo número mínimo de nodos que puede contener el grupo de nodos. Debe ser0
o superior.MAX_NODES
: el nuevo número máximo de nodos que puede contener el grupo de nodos. Debe ser al menos1
y el valor deMIN_NODES
.
Cancelar una operación de actualización
Para cancelar una operación de actualización de un grupo de nodos en curso, ejecuta el siguiente comando:
gcloud container azure operations cancel OPERATION_NAME
Sustituye OPERATION_NAME
por el nombre de la operación de actualización.
Ten en cuenta que, si cancelas una operación de actualización de un grupo de nodos que está en curso, no se revertirán las actualizaciones de nodos que ya se hayan completado. Esto puede provocar que el grupo de nodos se actualice parcialmente.
Siguientes pasos
- Consulta la documentación de referencia de gcloud container azure node-pools create.
- Eliminar un grupo de nodos.