

 **Aidez à améliorer cette page** 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien **Modifier cette page sur** qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Recette : empêcher la planification de pods sur des nœuds spécifiques
<a name="node-taints-managed-node-groups"></a>

## Présentation
<a name="_overview"></a>

Les nœuds dotés de processeurs spécialisés, tels que les GPU, peuvent être plus coûteux à exploiter que les nœuds sur des machines standard. Pour protéger ces nœuds des charges de travail qui ne nécessitent pas de matériel spécial, vous pouvez utiliser les rejets Kubernetes. Les rejets marquent les nœuds afin de repousser les pods qui ne disposent pas de tolérances correspondantes, garantissant ainsi que seules les charges de travail compatibles sont planifiées. Pour plus d’informations, consultez [Rejets et tolérances](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) dans la documentation de Kubernetes.

Les taints de nœuds Kubernetes peuvent être appliqués à des groupes de nœuds gérés, nouveaux ou existants, à l'aide de AWS Management Console ou de l'API Amazon EKS. Cette recette montre comment appliquer des rejets à des groupes de nœuds gérés Amazon EKS à l’aide de l’AWS CLI. Pour plus d'informations sur la création d'un groupe de nœuds avec un rejet à l'aide de la AWS Management Console, consultez [Création d’un groupe de nœuds gérés pour votre cluster](create-managed-node-group.md).

## Prérequis
<a name="_prerequisites"></a>
+ Un [cluster Amazon EKS existant](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html).
+  [AWS CLI installé et configuré](https://docs.aws.amazon.com/eks/latest/userguide/setting-up.html) avec les autorisations appropriées.

## Étapes
<a name="_steps"></a>

### Étape 1 : créer un groupe de nœuds avec des rejets
<a name="_step_1_create_a_node_group_with_taints"></a>

Utilisez la commande `aws eks create-nodegroup` pour créer un nouveau groupe de nœuds gérés avec des rejets. Cet exemple applique un rejet avec la clé `dedicated`, la valeur `gpuGroup` et l’effet `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"
     }
   ]
}'
```

Pour plus d’informations et d’exemples, consultez [rejet](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#taint) dans la documentation de référence Kubernetes.

### Étape 2 : mettre à jour les rejets sur un groupe de nœuds existant
<a name="_step_2_update_taints_on_an_existing_node_group"></a>

Utilisez la commande AWS CLI [aws eks update-nodegroup-config](https://docs.aws.amazon.com/cli/latest/reference/eks/update-nodegroup-config.html) pour ajouter, supprimer ou remplacer des rejets pour les groupes de nœuds gérés.

```
aws eks update-nodegroup-config
  --cluster-name my-cluster
  --nodegroup-name node-taints-example
  --taints 'removeTaints=[{key=dedicated,value=gpuGroup,effect=NO_SCHEDULE}]'
```

## Remarques
<a name="_notes"></a>
+ Les rejets peuvent être mis à jour après avoir créé le groupe de nœuds à l'aide de l'API `UpdateNodegroupConfig`.
+ La clé de rejet doit commencer par une lettre ou un chiffre. Il peut contenir des lettres, des chiffres, des traits d'union (`-`), des points (`.`) et des traits de soulignement (`_`). Il peut comporter jusqu'à 63 caractères.
+ Éventuellement, la clé de rejet peut commencer par un préfixe de sous-domaine DNS et un simple `/`. Si elle commence par un préfixe de sous-domaine DNS, elle peut comporter 253 caractères.
+ La valeur est facultative et doit commencer par une lettre ou un chiffre. Il peut contenir des lettres, des chiffres, des traits d'union (`-`), des points (`.`) et des traits de soulignement (`_`). Il peut comporter jusqu'à 63 caractères.
+ Lorsque vous utilisez directement Kubernetes ou la AWS Management Console, l’effet du rejet doit être `NoSchedule`, `PreferNoSchedule` ou `NoExecute`. Cependant, lorsque vous utilisez l’AWS CLI ou l’API, l’effet de rejet doit être `NO_SCHEDULE`, `PREFER_NO_SCHEDULE` ou `NO_EXECUTE`.
+ Un maximum de 50 rejets est autorisé pour un groupe de nœuds.
+ Si les rejets créés à l’aide d’un groupe de nœuds gérés sont supprimés manuellement d’un nœud, Amazon EKS ne les ajoute pas à nouveau au nœud. Ceci est vrai même si les rejets sont spécifiés dans la configuration du groupe de nœuds gérés.