Actualizar un grupo de nodos

Este tema explica cómo actualizar sus grupos de nodos. Puede hacerlo por las siguientes razones:

  • Para actualizar la versión de su grupo de nodos
  • Para cambiar el número de nodos en su grupo de nodos
  • Para cambiar las anotaciones de su grupo de nodos (solo actualizable a través de API)

También puede cambiar parámetros adicionales en sus grupos de nodos que no se enumeran arriba. Para obtener una lista completa de los parámetros que puede actualizar, consulte la documentación de gcloud container azure node-pools update y projects.locations.azureNodePools.patch .

Proceso de actualización

Esta sección describe los procesos que GKE en Azure realiza para actualizar un grupo de nodos. El proceso varía según el alcance de los cambios necesarios en el grupo de nodos.

Actualización de solo configuración

Si GKE en Azure puede actualizar un grupo de nodos sin reiniciar ni recrear ningún recurso, aplicará esos cambios. Por ejemplo, actualizar las anotaciones de su grupo de nodos no reiniciará ninguna instancia.

Actualización continua

Cuando un cambio en un grupo de nodos requiere reiniciar máquinas virtuales existentes (por ejemplo, al actualizar la versión de Kubernetes), GKE en Azure realiza los siguientes pasos:

  1. Modifique el conjunto de escala de máquinas virtuales del grupo de nodos con la nueva configuración.
  2. Seleccione la instancia subyacente de un nodo para actualizar.
  3. GKE en Azure acordona y vacía el nodo. En este punto, no se pueden programar nuevos pods en el nodo de destino. Los pods existentes en el nodo de destino se reprograman 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. Actualice la instancia para tomar la última configuración de su conjunto de escalado de máquinas virtuales.
  5. Vuelva a crear la imagen y reinicie la instancia.
  6. Espere hasta que todos los nodos de este grupo de nodos estén en buen estado.
  7. Si todos los nodos de este grupo de nodos funcionan correctamente, seleccione otro nodo hasta que se actualicen todos. Si algún nodo funciona incorrectamente, GKE en Azure lo coloca en estado DEGRADED . Para obtener más información, consulte Actualizaciones fallidas .

Proteger las cargas de trabajo durante una actualización continua del grupo de nodos

Durante la actualización continua del grupo de nodos, GKE en Azure respeta PodDisruptionBudget
La configuración se mantiene hasta una hora después de que un nodo comience a descargarse. Después de una hora, GKE en Azure elimina los pods restantes del nodo.

Durante la actualización continua, GKE en Azure realiza un apagado ordenado de cualquier nodo que se vaya a reiniciar o eliminar, con el máximo esfuerzo, durante un máximo de dos horas. Después de dos horas, si quedan objetos Pod en el nodo, GKE en Azure lo elimina y reinstala la instancia de máquina virtual subyacente.

Cambio de tamaño de los grupos de nodos

Los grupos de nodos de GKE en Azure tienen habilitado el escalador automático de clústeres de forma predeterminada. Este escalador ajusta automáticamente el tamaño del grupo de nodos según las necesidades de las cargas de trabajo. Para obtener más información sobre el escalador automático de clústeres, consulte "Escalador automático de clústeres" .

Al cambiar el número máximo y mínimo de nodos en el grupo de nodos, GKE en Azure realiza diferentes acciones según la nueva configuración y el número actual de nodos del grupo. Estas acciones incluyen lo siguiente:

  • Si el recuento de nodos actual del grupo de nodos ya está dentro del nuevo rango, GKE en Azure no cambia la cantidad de nodos en el grupo.

  • Si el nuevo número mínimo de nodos es mayor que el recuento de nodos actual del grupo de nodos, GKE en Azure agrega 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 menor que la cantidad de nodos actual del grupo de nodos, GKE en Azure reduce el tamaño del grupo de nodos realizando las siguientes acciones:

    1. Actualice la configuración de escalado automático en el conjunto de escalado de máquinas virtuales en el grupo de nodos
    2. Seleccione un nodo para eliminar
    3. Acordonar y drenar el nodo
    4. Eliminar la instancia de máquina virtual subyacente
    5. Espere hasta que la máquina virtual eliminada desaparezca por completo
    6. Realizar una comprobación del estado de todo el grupo de nodos
    7. Repita hasta que el número de nodos alcance el número deseado.

Cómo GKE en Azure protege las cargas de trabajo durante el cambio de tamaño del grupo de nodos

Durante el cambio de tamaño del grupo de nodos, GKE en Azure respeta la configuración de PodDisruptionBudget hasta una hora después de que un nodo comience a vaciarse. Después de una hora, GKE en Azure elimina cualquier objeto Pod restante en el nodo.

Durante el cambio de tamaño del grupo de nodos, GKE en Azure realiza un apagado ordenado de los nodos que se van a reiniciar o eliminar y espera hasta dos horas. Después de dos horas, si quedan objetos Pod en el nodo, GKE en Azure elimina la instancia de máquina virtual subyacente.

Comprobar si hay un estado de actualización fallido

Si GKE en Azure realiza una comprobación de estado después de una actualización y esta falla, el grupo de nodos se marca como DEGRADED . Puede consultar la información de estado de su clúster con el siguiente comando de la CLI de Google Cloud:

gcloud container azure node-pools describe NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION

Reemplace lo siguiente:

  • NODE_POOL_NAME : el nombre de su grupo de nodos
  • CLUSTER_NAME : el nombre de su clúster
  • GOOGLE_CLOUD_LOCATION : la Google Cloud región que administra su clúster

La salida incluye información sobre el estado y la configuración de su grupo de nodos.

Prerrequisitos

Para actualizar un grupo de nodos, debe tener el permiso de Administración de identidad y acceso gkemulticloud.googleapis.com/azureNodePools.update .

Actualizar un grupo de nodos

Puedes actualizar un grupo de nodos con la CLI de Google Cloud. Para ello, ejecuta:

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     

Reemplace lo siguiente:

  • NODE_POOL_NAME : el nombre del grupo de nodos a actualizar
  • CLUSTER_NAME : el nombre del clúster al que se adjuntará el grupo de nodos
  • GOOGLE_CLOUD_LOCATION : la ubicación compatible Google Cloud región que administra su clúster, por ejemplo, us-west1
  • NODE_POOL_VERSION : la nueva versión del grupo de nodos compatible
  • MIN_NODES : el nuevo número mínimo de nodos que puede contener el grupo de nodos. Debe ser 0 o mayor.
  • 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 grupo de nodos en curso, ejecute el siguiente comando:

gcloud container azure operations cancel OPERATION_NAME

Reemplace OPERATION_NAME con el nombre de la operación de actualización.

Tenga en cuenta que cancelar una operación de actualización de un grupo de nodos en curso no revertirá las actualizaciones de nodos ya completadas. Esto puede resultar en un grupo de nodos parcialmente actualizado.

¿Qué sigue?