Actualizar un grupo de nodos

Tras crear un clúster, puede modificar sus grupos de nodos. Solo se pueden actualizar ciertos parámetros de un grupo de nodos, como su tamaño, clave de cifrado y grupos de seguridad. Este documento explica cómo realizar estas y otras actualizaciones comunes en un grupo de nodos.

Sin embargo, este documento no proporciona una lista exhaustiva de comandos de actualización. Si necesita actualizar un parámetro que no se describe en este documento, consulte la documentación gcloud container aws node-pools update y projects.locations.awsNodePools.patch .

Antes de empezar

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

Para obtener instrucciones sobre cómo administrar permisos, consulte Otorgar roles de IAM a los usuarios .

Actualizar un grupo de nodos

Las siguientes secciones explican cómo realizar diversas actualizaciones en un grupo de nodos. Un grupo de nodos es un grupo de nodos dentro de un clúster que comparten la misma configuración. Todos los nodos de un clúster deben pertenecer a un grupo de nodos.

Puedes actualizar varios parámetros de un grupo de nodos simultáneamente especificándolos todos en el mismo comando. Sin embargo, para mayor claridad, este documento muestra cómo actualizar un solo parámetro a la vez.

Cambiar la versión del grupo de nodos

En GKE en AWS, cambiar la versión de un grupo de nodos significa cambiar la versión de GKE que se ejecuta en los nodos de ese grupo de nodos.

Para cambiar la versión del grupo de nodos, especifique la nueva versión utilizando el indicador node-version en el siguiente comando:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --node-version NODE_POOL_VERSION

Reemplace lo siguiente:

Actualizar el tipo de instancia del grupo de nodos

Un tipo de instancia de grupo de nodos es el tipo de instancia de AWS EC2 que se utiliza para crear los nodos de un grupo de nodos. Por ejemplo, la instancia m5.xlarge tiene 4 vCPU, 16 GB de memoria y 32 GB de almacenamiento SSD.

Para cambiar el tipo de instancia de su grupo de nodos, especifique el nuevo tipo de instancia utilizando el indicador instance-type en el siguiente comando:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --instance-type=INSTANCE_TYPE

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.
  • INSTANCE_TYPE : el nuevo tipo de instancia de máquina de AWS para este grupo de nodos. Por ejemplo, m5.xlarge .

Las actualizaciones del tipo de instancia del grupo de nodos no deben cambiar la arquitectura de CPU subyacente de la instancia de EC2. Por ejemplo, si el grupo de nodos original usa instancias con CPU x86, el tipo de instancia actualizado debe seguir usando CPU x86, en lugar de otra arquitectura.

Para obtener una lista completa de las instancias compatibles y sus arquitecturas subyacentes, consulte Tipos de instancias de AWS compatibles .

Rotar la clave de cifrado de un grupo de nodos

Para obtener información sobre cómo actualizar las claves de cifrado KMS de su grupo de nodos, consulte Rotación de claves .

Reemplazar los grupos de seguridad del grupo de nodos

Para actualizar los grupos de seguridad asociados a un grupo de nodos, ejecute el siguiente comando:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --security-group-ids=SECURITY_GROUP_IDS

Reemplace lo siguiente:

  • NODE_POOL_NAME : el nombre del grupo de nodos a actualizar.
  • CLUSTER_NAME : el nombre de su clúster.
  • GOOGLE_CLOUD_LOCATION : la Google Cloud región que administra su clúster.
  • SECURITY_GROUP_IDS : una lista separada por comas de grupos de seguridad para adjuntar al grupo de nodos.

En los clústeres que ejecutan GKE versión 1.25 o posterior, la actualización se puede realizar dinámicamente sin reiniciar los nodos. Este es el enfoque recomendado para los clústeres que usan GKE versión 1.25 o posterior.

Para realizar actualizaciones dinámicas, su rol de agente de servicio API debe tener los siguientes permisos de AWS IAM:

  • ec2:ModifyInstanceAttribute
  • ec2:DescribeInstances

Estos permisos se asignan automáticamente al rol de agente de servicio API si elige el rol de agente de servicio API predeterminado cuando crea su clúster.

En clústeres con versiones anteriores de GKE, o con la versión 1.25 o posterior, pero sin permisos para realizar una actualización dinámica, la actualización se realiza mediante actualizaciones continuas. Estas actualizaciones son más disruptivas que las dinámicas, ya que reinician los nodos, mientras que las dinámicas no. Para obtener más información sobre las actualizaciones continuas, consulte Actualizaciones de Surge .

Eliminar grupos de seguridad del grupo de nodos

Puede eliminar todos los grupos de seguridad no predeterminados asociados a su grupo de nodos ejecutando el siguiente comando. Para obtener más información sobre los grupos de seguridad predeterminados, consulte Grupos de seguridad del grupo de nodos .

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --clear-security-group-ids

Reemplace lo siguiente:

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

Cambiar el tamaño de un grupo de nodos

Para cambiar el tamaño de su grupo de nodos (es decir, la cantidad de nodos en el grupo de nodos), asigne nuevos valores a los indicadores min-nodes y max-nodes en el siguiente comando:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --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 el clúster. Por ejemplo, us-west1 .
  • MIN_NODES : el número mínimo de nodos que puede contener el grupo de nodos. El valor puede ser 0 o mayor.
  • MAX_NODES : el número máximo de nodos que puede contener el grupo de nodos. El valor debe ser al menos 1 y mayor o igual que el valor de MIN_NODES .

Más detalles sobre el cambio de tamaño de los grupos de nodos

Antes de cambiar el tamaño de un grupo de nodos, es importante evaluar las posibles repercusiones en sus cargas de trabajo.

Redimensionar las acciones y sus consecuencias

Al redimensionar los grupos de nodos, se activan diferentes acciones según la nueva configuración y el estado actual de los nodos. Es fundamental comprender estas acciones y sus implicaciones:

  • Sin cambios : si el recuento de nodos actual ya se alinea con el nuevo rango especificado, GKE en AWS no realiza ajustes en la cantidad de nodos.
  • Aumentar el mínimo : si el nuevo número mínimo de nodos se establece en un valor mayor que el recuento existente, GKE en AWS agrega nodos de manera incremental hasta que se alcanza el tamaño mínimo recientemente definido.
  • Disminuir el máximo : si cambia el recuento máximo de nodos a un valor inferior al recuento existente, GKE en AWS realiza las siguientes acciones:
    • Desactiva el escalador automático del clúster.
    • Establece el grupo de escalamiento automático para el grupo de nodos en el tamaño mínimo especificado.
    • Selecciona nodos individuales para su eliminación. Cada nodo se acordona, se le vacían las tareas y se termina. Este procedimiento continúa hasta alcanzar el tamaño máximo especificado.
    • Modifica el grupo de escalamiento automático del grupo de nodos para alinearlo con el nuevo tamaño máximo.
    • Vuelve a habilitar el escalador automático del clúster una vez que se alcanza el tamaño máximo.

Para obtener más información acerca del escalador automático de clústeres, consulte Acerca del escalador automático de clústeres .

Protección de la carga de trabajo durante el cambio de tamaño

Para garantizar la disponibilidad continua de las cargas de trabajo durante el cambio de tamaño del grupo de nodos, GKE en AWS proporciona las siguientes protecciones:

  • Durante una descarga de nodos, GKE en AWS respeta la configuración PodDisruptionBudget hasta por una hora. Los pods que permanecen en el nodo después de este período se eliminan.

  • Cuando los nodos están configurados para reiniciarse o eliminarse, GKE en AWS garantiza su apagado ordenado y espera hasta dos horas. Si los pods permanecen en el nodo después de este período, se elimina la instancia de máquina virtual subyacente.

Comprueba el estado de tu grupo de nodos

Para verificar que su actualización fue exitosa, puede verificar el estado del grupo de nodos ejecutando el siguiente comando:

gcloud container aws 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.

GKE en AWS intenta realizar las actualizaciones solicitadas en el grupo de nodos y, a continuación, realiza una comprobación de estado. Si alguno de los pasos de actualización falla, el estado del grupo de nodos se marca como DEGRADED .

Cancelar una operación de actualización

Antes de cancelar una actualización en curso del grupo de nodos, debe determinar el nombre de la operación en curso. Para listar las operaciones en curso y sus respectivos nombres, ejecute el siguiente comando:

gcloud container aws operations list--filter="status=PENDING OR status=RUNNING"
    --location GOOGLE_CLOUD_LOCATION

Reemplace GOOGLE_CLOUD_LOCATION con el valor admitido Google Cloud Región que administra el clúster. Por ejemplo, us-west1 .

Busque el OPERATION_NAME de la actualización que desea cancelar en la salida del comando. Para obtener una lista de operaciones, consulte la lista de operaciones de AWS del contenedor de gcloud .

Una vez que haya identificado OPERATION_NAME , puede cancelar la operación con el siguiente comando:

gcloud container aws operations cancel OPERATION_NAME
    --location GOOGLE_CLOUD_LOCATION

Reemplace lo siguiente:

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