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:

  1. Modifica el conjunto de escalado de máquinas virtuales del grupo de nodos con la nueva configuración.
  2. Elige la instancia subyacente de un nodo para actualizarla.
  3. 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.
  4. Actualiza la instancia para que adopte la configuración más reciente de su conjunto de escalado de máquinas virtuales.
  5. Crea una imagen y reinicia la instancia.
  6. Espera hasta que todos los nodos de este grupo de nodos estén en buen estado.
  7. 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.

Durante la actualización continua, GKE en Azure cierra correctamente los nodos que se van a reiniciar o quitar con el mejor esfuerzo posible durante un máximo de dos horas. Transcurridas dos horas, si quedan objetos Pod en el nodo, GKE en Azure elimina el nodo y vuelve a crear la imagen de la instancia de máquina virtual subyacente.

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:

    1. Actualizar la configuración de autoescalado en el conjunto de escalado de máquinas virtuales del grupo de nodos
    2. Selecciona el nodo que quieras quitar
    3. Acordonar y drenar el nodo
    4. Eliminar la instancia de máquina virtual subyacente
    5. Espera a que la máquina virtual eliminada desaparezca por completo
    6. Realizar una comprobación del estado en todo el grupo de nodos
    7. 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 nodos
  • CLUSTER_NAME: el nombre de tu clúster
  • GOOGLE_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.updateGestió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 actualizar
  • CLUSTER_NAME: el nombre del clúster al que se va a adjuntar el grupo de nodos
  • GOOGLE_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 admitida
  • MIN_NODES: el nuevo número mínimo de nodos que puede contener el grupo de nodos. Debe ser 0 o superior.
  • MAX_NODES: el nuevo número máximo de nodos que puede contener el grupo de nodos. Debe ser al menos 1 y el valor de MIN_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