En esta página, se proporcionan instrucciones sobre cómo actualizar de forma dinámica las etiquetas de nodos y los taints de nodos de un grupo de nodos existente en un clúster Standard de Google Kubernetes Engine (GKE).
También puedes aplicar y actualizar de forma dinámica las etiquetas de red en los clústeres de GKE Autopilot o Standard. Si deseas obtener instrucciones, consulta Usa etiquetas de red para aplicar reglas de firewall a los nodos.
Descripción general
Los taints y las etiquetas de nodo se encuentran en los metadatos de objetos de los nodos de Kubernetes. Las etiquetas se usan para programar los Pods en nodos específicos, en los que se pueden usar taints para desviar Pods de los nodos.
Con la API de Kubernetes Engine, puedes aplicar actualizaciones en las etiquetas de nodo y los taints de nodo de un grupo de nodos existente de GKE sin necesidad de recrear 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 aprovisionamientos de nodos nuevos en el grupo de nodos usarán la configuración nueva.
Limitaciones
Existen algunas limitaciones para usar la API de Kubernetes Engine a fin de actualizar de forma dinámica la configuración del grupo de nodos:
- La versión para el grupo de nodos debe ser 1.19.7-gke.1500 o una versión posterior.
- La versión del plano de control del clúster debe ser 1.23.4-gke.300 o posterior a fin de aplicar actualizaciones a las etiquetas de nodo o los taints de nodo para los grupos de nodos existentes con el escalador automático de clúster habilitado. Para los clústeres en versiones anteriores, puedes usar la siguiente solución alternativa: Inhabilita el ajuste de escala automático en el grupo de nodos y, luego, actualiza las etiquetas o los taints del nodo. Después de aplicar las actualizaciones, vuelve a habilitar el ajuste de escala automático.
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] [--region=REGION | --zone=ZONE]
[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 deseadas (por ejemplo,label1=value1,label2=value2
).CLUSTER_NAME
: el nombre del clústerREGION
: La región de Compute Engine del clúster.ZONE
: La región de Compute Engine del clúster.
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] [--region=REGION | --zone=ZONE]
[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 deseados (por ejemplo,key1=val1:NoSchedule,key2=val2:PreferNoSchedule
).CLUSTER_NAME
: el nombre del clústerREGION
: La región de Compute Engine del clúster.ZONE
: La región de Compute Engine del clúster.
¿Qué sigue?
- Obtén más información sobre los taints de nodo para controlar la programación.
- Obtén más información sobre las etiquetas de red.
- Más información sobre las etiquetas