Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Receta: Limitación para que los pods no se programen en nodos específicos
Descripción general
Los nodos que cuentan con procesadores especializados, como las GPU, pueden ser más costosos de ejecutar que aquellos de máquinas estándar. Para proteger estos nodos de las cargas de trabajo que no requieren un hardware especial, se pueden usar las taints de Kubernetes. Las taints marcan los nodos para repeler los pods que no tienen tolerancias coincidentes, lo que garantiza que solo se programen las cargas de trabajo compatibles. Para obtener más información, consulte Taints y toleraciones
Las taints de nodos de Kubernetes se pueden aplicar a grupos de nodos administrados nuevos y existentes mediante la AWS Management Console o a través de la API de Amazon EKS. Esta receta muestra cómo aplicar taints a los grupos de nodos administrados de Amazon EKS mediante la CLI de AWS. Para obtener información sobre la creación de un grupo de nodos con una taint mediante la AWS Management Console, consulte Creación de un grupo de nodos administrados para un clúster.
Requisitos previos
-
La CLI de AWS instalada y configurada con los permisos adecuados.
Pasos
Paso 1: Creación de un grupo de nodos con taints
Use el comando aws eks create-nodegroup
para crear un nuevo grupo de nodos administrados con taints. En este ejemplo, se aplica una taint con la clave dedicated
, el valor gpuGroup
y el efecto NO_SCHEDULE
.
aws eks create-nodegroup \ --cli-input-json ' { "clusterName": "my-cluster", "nodegroupName": "node-taints-example", "subnets": [ "subnet-1234567890abcdef0", "subnet-abcdef01234567890", "subnet-021345abcdef67890" ], "nodeRole": "arn:aws:iam::111122223333:role/AmazonEKSNodeRole", "taints": [ { "key": "dedicated", "value": "gpuGroup", "effect": "NO_SCHEDULE" } ] }'
Para obtener más información y ejemplos, consulte taint
Paso 2: Actualización de las taints en un grupo de nodos existente
Utilice el comando aws eks update-nodegroup-config de la CLI de AWS para añadir, eliminar o reemplazar taints en los grupos de nodos administrados.
aws eks update-nodegroup-config --cluster-name my-cluster --nodegroup-name node-taints-example --taints 'removeTaints=[{key=dedicated,value=gpuGroup,effect=NO_SCHEDULE}]'
Notas
-
Las taints se pueden actualizar después de crear el grupo de nodos mediante la API
UpdateNodegroupConfig
. -
La clave de la taint debe comenzar con una letra o un número. Puede contener letras, números, guiones (
-
), puntos (.
) y guiones bajos (_
). Puede tener hasta 63 caracteres. -
De manera opcional, la clave de la taint puede comenzar con un prefijo de subdominio DNS y una única
/
. Si comienza con un prefijo de subdominio DNS, puede tener 253 caracteres de longitud. -
El valor es opcional y debe comenzar por una letra o un número. Puede contener letras, números, guiones (
-
), puntos (.
) y guiones bajos (_
). Puede tener hasta 63 caracteres. -
Cuando se usa Kubernetes directamente o la AWS Management Console, el efecto de la taint debe ser
NoSchedule
,PreferNoSchedule
oNoExecute
. Sin embargo, cuando se usa la AWS CLI o la API, el efecto de la taint debe serNO_SCHEDULE
,PREFER_NO_SCHEDULE
oNO_EXECUTE
. -
Se permite un máximo de 50 taints por grupo de nodos.
-
Si las taint que se crearon mediante un grupo de nodos administrado se eliminan manualmente de un nodo, Amazon EKS no volverá a añadir las taint al nodo. Esto es cierto incluso si las taint se especifican en la configuración del grupo de nodos administrado.