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:

  1. Modificar el conjunto de escala de las máquinas virtuales del grupo de nodos con la nueva configuración.
  2. Elegir la instancia subyacente de un nodo para actualizarla.
  3. 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.
  4. Actualiza la instancia para tomar la configuración más reciente de su conjunto de escalas de la máquina virtual.
  5. Vuelve a crear la 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 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.

Durante la actualización progresiva, GKE en Azure realiza un cierre correcto de cualquier nodo que se reinicie o se quite con el mejor esfuerzo durante dos horas. Después de dos horas, si hay objetos de Pods restantes en el nodo, GKE en Azure borra el nodo y vuelve a crear la imagen de la instancia de máquina virtual subyacente.

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:

    1. 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
    2. Seleccionar un nodo para quitarlo
    3. Acordonar y drenar el nodo
    4. Borrar la instancia de máquina virtual subyacente
    5. Esperar hasta que la máquina virtual borrada haya desaparecido por completo
    6. Realizar la verificación de estado en todo el grupo de nodos
    7. 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 nodos
  • GOOGLE_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 nodos
  • MIN_NODES: la nueva cantidad mínima de nodos que puede contener el grupo de nodos. Debe ser 0 o mayor
  • MAX_NODES: la nueva cantidad máxima de nodos que puede contener el grupo de nodos. Debe ser 1 como mínimo y el valor de MIN_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?