Actualizar un grupo de nodos
En este tema, se explica cómo puedes actualizar tus grupos de nodos. Puedes actualizar tus grupos de nodos por las siguientes razones:
- Para actualizar la versión del grupo de nodos
- Para cambiar la cantidad de nodos de tu grupo de nodos, sigue estos pasos:
- Para cambiar las anotaciones de tu grupo de nodos (solo se pueden actualizar a través de la API)
También puedes cambiar parámetros adicionales que no se mencionaron antes en tus grupos de nodos.
Para obtener 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
.
Actualizar proceso
En esta sección, se describen los procesos que toma GKE en Azure para actualizar un grupo de nodos. El proceso es diferente según la extensión de los cambios necesarios en el grupo de nodos.
Actualización solo de configuración
Si GKE en Azure puede actualizar un grupo de nodos sin tener que reiniciar o volver a crear recursos, realizará esos cambios. Por ejemplo, si actualizas las anotaciones de tu grupo de nodos, no se reiniciará ninguna instancia.
Actualización progresiva
Cuando un cambio en un grupo de nodos requiere que se reinicien las máquinas virtuales existentes, por ejemplo, cuando se actualiza la versión de Kubernetes, GKE en Azure sigue los siguientes pasos:
- Modificar el conjunto de escala de las máquinas virtuales del grupo de nodos con la nueva configuración.
- Elegir la instancia subyacente de un nodo para actualizarla.
- GKE en Azure acordona y drena el nodo. En este punto, no se pueden programar pods nuevos en el nodo de destino. Los objetos de Pod existentes en el nodo de destino se reprograman en otros nodos. Los pods que no se pueden reprogramar en ningún otro nodo existente permanecen en la fase pendiente hasta que se puedan programar.
- Actualiza la instancia para tomar la configuración más reciente de su conjunto de escalas de la máquina virtual.
- Vuelve a crear la 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 de nodos están en buen estado, selecciona otro nodo hasta que se actualicen. Si algún nodo está en mal estado, GKE en Azure coloca el grupo de nodos en un estado
DEGRADED
. Para obtener más información, consulta Actualizaciones fallidas.
Protege las cargas de trabajo durante una actualización progresiva del grupo de nodos
Durante la actualización progresiva del grupo de nodos, GKE en Azure respeta la configuración de PodDisruptionBudget
durante una hora después de que un nodo comienza a desviarse. Después de una hora, GKE en Azure
borra cualquier Pod restante del nodo.
Cambia el tamaño de los grupos de nodos
Los grupos de nodos de GKE en Azure tienen el escalador automático de clústeres habilitado de forma predeterminada. El escalador automático de clústeres cambia el tamaño del grupo de nodos de forma automática según las demandas de tus cargas de trabajo. Para obtener más información sobre el escalador automático de clústeres, consulta Escalador automático de clústeres.
Cuando se cambian las cantidades máxima y mínima de nodos en el grupo de nodos, GKE en Azure realiza diferentes acciones según la configuración nueva y la cantidad actual de nodos del grupo de nodos. Entre estas acciones, se incluyen las siguientes:
Si el recuento de nodos actual del grupo de nodos ya está dentro del rango nuevo, GKE en Azure no cambia la cantidad de nodos del grupo.
Si la nueva cantidad mínima de nodos es mayor que la cantidad de nodos actual del grupo de nodos, GKE en Azure agrega más nodos hasta que el grupo alcance el tamaño mínimo nuevo.
Si la cantidad máxima de nodos nueva es menor que el recuento de nodos actual del grupo de nodos, GKE en Azure reduce el tamaño del grupo de nodos mediante las siguientes acciones:
- Actualizar la configuración del ajuste de escala automático al conjunto de escalas de la máquina virtual establecida en el grupo de nodos
- Seleccionar un nodo para quitarlo
- Acordonar y drenar el nodo
- Borrar la instancia de máquina virtual subyacente
- Esperar hasta que la máquina virtual borrada haya desaparecido por completo
- Realizar la verificación de estado en todo el grupo de nodos
- Repetir hasta que la cantidad de nodos alcance la cantidad deseada
Cómo GKE en Azure protege las cargas de trabajo durante el cambio de tamaño de un grupo de nodos
Durante el cambio de tamaño del grupo de nodos, GKE en Azure respeta la configuración de PodDisruptionBudget hasta por una hora después de que un nodo comienza a drenarse. Después de una hora, GKE en Azure borra todos los objetos de Pod restantes en el nodo.
Durante el cambio de tamaño del grupo de nodos, GKE en Azure realiza un cierre ordenado de cualquier nodo que se debe reiniciar o quitar, y espera hasta dos horas. Después de dos horas, si hay objetos de Pods restantes en el nodo, GKE en Azure borra la instancia de máquina virtual subyacente.
Verifica si hay estados de actualización con errores
Si GKE en Azure realiza una verificación de estado después de una actualización y esta falla, el grupo de nodos se marca como DEGRADED
. Puedes encontrar información sobre el estado en 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
Reemplaza lo siguiente:
NODE_POOL_NAME
: es el nombre de tu grupo de nodos.CLUSTER_NAME
: Es el nombre de tu clúster.GOOGLE_CLOUD_LOCATION
: Es la región de Google Cloud que administra tu clúster.
En el resultado, se incluye información sobre el estado y la configuración del grupo de nodos.
Requisitos previos
Para actualizar un grupo de nodos, debes tener el permiso gkemulticloud.googleapis.com/azureNodePools.update
de Identity and Access Management.
Actualizar un grupo de nodos
Puedes actualizar un grupo de nodos con Google Cloud CLI. Para actualizar un grupo de nodos, ejecuta lo siguiente:
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
Reemplaza lo siguiente:
NODE_POOL_NAME
: el nombre del grupo de nodos que se creará.CLUSTER_NAME
: el nombre del clúster al que se conectará el grupo de nodosGOOGLE_CLOUD_LOCATION
: Es la región de Google Cloud compatible con la que se administra el clúster, por ejemplo,us-west1
.NODE_POOL_VERSION
: la nueva versión compatible del grupo de nodosMIN_NODES
: la nueva cantidad mínima de nodos que puede contener el grupo de nodos. Debe ser0
o mayorMAX_NODES
: la nueva cantidad máxima de nodos que puede contener el grupo de nodos. Debe ser1
como mínimo y el valor deMIN_NODES
.
Cancela una operación de actualización
Para cancelar una operación de actualización de grupo de nodos en curso, ejecuta el siguiente comando:
gcloud container azure operations cancel OPERATION_NAME
Reemplaza OPERATION_NAME
por el nombre de la operación de actualización.
Ten en cuenta que cancelar una operación de actualización de grupo de nodos que está en curso no revertirá las actualizaciones de nodos que ya se completaron. Esto puede dar como resultado un grupo de nodos actualizado de forma parcial.
¿Qué sigue?
- Lee la documentación de referencia de gcloud container azure node-pools create.
- Borra un grupo de nodos.