Actualiza las etiquetas y los taints de nodos de Kubernetes para los grupos de nodos

En este documento, se proporcionan instrucciones para actualizar las etiquetas de nodos y los taints de nodos de Kubernetes de un grupo de nodos existente en un clúster estándar de Google Kubernetes Engine (GKE) con la API de GKE. Las etiquetas de nodos de Kubernetes son distintas de las etiquetas de clústeres y nodos de GKE.

Los taints y las etiquetas de nodo se encuentran en los metadatos de objetos de los nodos de Kubernetes. Las etiquetas de Kubernetes se usan para programar Pods en nodos específicos. Por el contrario, los taints se pueden usar para desviar los Pods de nodos específicos. Para obtener más información, consulta Configura la separación de cargas de trabajo en GKE.

Con la API de GKE, puedes aplicar actualizaciones a las etiquetas de nodo y los taints de nodo de Kubernetes de un grupo de nodos existente de GKE sin necesidad de volver a crear el grupo de nodos ni interrumpir las cargas de trabajo en ejecución. La configuración actualizada del grupo de nodos se conserva en GKE, por lo que las futuras actualizaciones del grupo de nodos y los nodos nuevos aprovisionados en el grupo de nodos usarán la configuración nueva.

Para obtener más información sobre cómo los cambios afectan el funcionamiento de un clúster de GKE, consulta Administra los cambios en el ciclo de vida del clúster para minimizar las interrupciones. Para obtener detalles sobre los cambios específicos, consulta la sección Tipos de cambios en un clúster de GKE.

Sintaxis de etiquetas

Las etiquetas de Kubernetes deben cumplir con todos los siguientes requisitos:

  • Las claves y los valores de las etiquetas deben cumplir con los requisitos de sintaxis y conjunto de caracteres.
  • La longitud del valor que especifiques en la marca de gcloud CLI --node-labels debe ser menor o igual que 1,024 caracteres.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste la gcloud CLI, ejecuta el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se indican en este documento.

Actualiza las etiquetas de nodo

A fin de actualizar las etiquetas de nodo para un grupo de nodos, usa el siguiente comando:

gcloud container node-pools update NODEPOOL_NAME \
    --node-labels=[NODE_LABEL,...] \
    --cluster=CLUSTER_NAME
    --location=CONTROL_PLANE_LOCATION
    [GCLOUD_WIDE_FLAG …]

Reemplaza lo siguiente:

  • NODEPOOL_NAME: el nombre del grupo de nodos que se actualizará.
  • [NODE_LABEL,...]: Son las etiquetas de nodo nuevas (por ejemplo, label1=value1,label2=value2).
  • CLUSTER_NAME: el nombre del clúster
  • CONTROL_PLANE_LOCATION: La ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.

Actualiza taints de nodo

A fin de actualizar los taints de nodo para un grupo de nodos, usa el siguiente comando:

gcloud container node-pools update NODEPOOL_NAME \
    --node-taints=[NODE_TAINT,...] \
    --cluster=CLUSTER_NAME
    --location=CONTROL_PLANE_LOCATION
    [GCLOUD_WIDE_FLAG …]

Reemplaza lo siguiente:

  • NODEPOOL_NAME: el nombre del grupo de nodos que se actualizará.
  • [NODE_TAINT,...]: Son los taints de nodo nuevos (por ejemplo, key1=val1:NoSchedule,key2=val2:PreferNoSchedule).
  • CLUSTER_NAME: el nombre del clúster
  • CONTROL_PLANE_LOCATION: La ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.

Actualiza los taints de arquitectura

Al igual que otros taints del sistema administrados por GKE, los taints de arquitectura, como kubernetes.io/arch=arm64:NoSchedule en los nodos de Arm, se administran de manera diferente a los taints de nodos personalizados y no se pueden quitar con las instrucciones descritas anteriormente. Sin embargo, puedes modificar los datos de corrupción de la arquitectura. Para obtener más información, consulta Cómo configurar la contaminación predeterminada de la arquitectura de ARM.