

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.

# Création d'une définition de tâche à nœud unique sur les ressources Amazon EKS
<a name="create-job-definition-eks"></a>

Procédez comme suit pour créer une définition de tâche à nœud unique sur Amazon Elastic Kubernetes Service (Amazon EKS).

**Pour créer une nouvelle définition de tâche sur les ressources Amazon EKS :**

1. Ouvrez la AWS Batch console à l'adresse [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dans la barre de navigation supérieure, choisissez le Région AWS à utiliser.

1. Dans le volet de navigation de gauche, choisissez **Job definitions**.

1. Choisissez **Créer**.

1. Pour le **type d'orchestration**, choisissez **Elastic Kubernetes Service** (EKS).

1. Dans **Nom**, entrez un nom unique pour votre définition de tâche. Le nom peut comporter jusqu'à 128 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (\_).

1. (Facultatif) Pour le **délai d'exécution**, entrez la valeur du délai d'expiration (en secondes). Le délai d'exécution est le délai avant la fin d'une tâche inachevée. Si une tentative dépasse le délai imparti, elle est arrêtée et passe à un `FAILED` statut. Pour de plus amples informations, veuillez consulter [Expiration des délais d'exécution des tâches](job_timeouts.md). La valeur minimale est 60 secondes.

1. (Facultatif) Activez la **priorité de planification**. Entrez une valeur de priorité de planification comprise entre 0 et 100. Les valeurs les plus élevées ont une priorité plus élevée que les valeurs faibles.

1. (Facultatif) Développez les **balises**, puis choisissez **Ajouter une balise** pour ajouter des balises à la ressource.

1. Choisissez **Page suivante**.

1. Dans la section des **podpropriétés d'EKS** :

   1. Pour le **nom du compte de service**, entrez un compte qui fournit une identité pour les processus exécutés dans unpod.

   1. Activez le **réseau hôte** pour utiliser le modèle de Kubernetes pod réseau et ouvrez un port d'écoute pour les connexions entrantes. Désactivez ce paramètre pour les communications sortantes uniquement.

   1. Pour la **politique DNS**, choisissez l'une des options suivantes :
      + **Aucune valeur (null)** : pod ignore les paramètres DNS de l'Kubernetesenvironnement.
      + **Par défaut** : pod hérite de la configuration de résolution des noms du nœud sur lequel il s’exécute.
**Note**  
Si aucune politique DNS n’est spécifiée, **Valeur par défaut** n’est pas la politique DNS par défaut. Au lieu de cela, **ClusterFirst**est utilisé.
      + **ClusterFirst**— Toute requête DNS qui ne correspond pas au suffixe de domaine du cluster configuré est transmise au serveur de noms en amont hérité du nœud. 
      + **ClusterFirstWithHostNet**— À utiliser si le **réseau hôte** est activé.

   1. (Facultatif) Pour **Volumes**, sélectionnez **Ajouter un volume**, puis :

      1. Ajoutez un **nom** à votre volume.

      1. (Facultatif) Ajoutez le **chemin de l'hôte** pour le répertoire sur l'hôte. 

      1. (Facultatif) Ajoutez une limite de **taille** et une **limite de taille** pour configurer un [Kubernetes](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) EmptyDir.

      1. (Facultatif) Indiquez un **nom secret** pour le module et indiquez si le secret est **facultatif**.

      1. **(Facultatif) Définissez un **nom de réclamation** pour associer une [réclamation de volume persistant](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) Kubernetes au pod, et indiquez si elle est en lecture seule.**

   1. (Facultatif) Pour les **étiquettes du module**, choisissez **Ajouter des étiquettes du module**, puis entrez une paire nom-valeur. 
**Important**  
Le préfixe d'une étiquette de module ne peut pas contenir `kubernetes.io/``k8s.io/`, ou`batch.amazonaws.com/`.

   1. (Facultatif) Pour les **annotations Pod**, choisissez **Ajouter des annotations**, puis entrez une paire nom-valeur. 
**Important**  
Le préfixe d'une annotation de module ne peut pas contenir `kubernetes.io/``k8s.io/`, ou`batch.amazonaws.com/`.

   1. Choisissez **Page suivante**.

   1. Dans la section **Configuration du conteneur** :

      1. Dans **Nom**, entrez un nom unique pour le conteneur. Le nom doit commencer par une lettre ou un chiffre et peut comporter jusqu'à 63 caractères. Il peut contenir des lettres majuscules et minuscules, des chiffres et des traits d'union (-).

      1. Dans **Image**, choisissez l'Dockerimage à utiliser pour votre travail. Par défaut, les images dans le registre Docker Hub sont disponibles. Vous pouvez également spécifier d'autres référentiels avec `{{repository-url}}/{{image}}:{{tag}}`. Le nom peut comporter jusqu’à 255 caractères. Il peut contenir des majuscules et des minuscules, des chiffres, des tirets (-), des traits de soulignement (\_), deux points (:), des points (.), des barres obliques (/) et des signes dièse (\#). Ce paramètre correspond `Image` à la section [Créer un conteneur](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) de l'[API Docker Remote](https://docs.docker.com/engine/api/v1.38/) et au `IMAGE` paramètre de [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/)
**Note**  
L'architecture des images Docker doit correspondre à l'architecture du processeur des ressources de calcul sur lesquelles elles sont planifiées. Par exemple, les images Docker basées sur ARM ne peuvent s'exécuter que sur des ressources de calcul basées sur ARM.
         + Les images contenues dans les référentiels publics Amazon ECR utilisent les conventions complètes `registry/repository[:tag]` ou de `registry/repository[@digest]` dénomination (par exemple,`public.ecr.aws/{{registry_alias}}/{{my-web-app}}:{{latest}}`).
         + Les images contenues dans les référentiels Amazon ECR utilisent la convention de `registry/repository[:tag]` dénomination complète (par exemple, `{{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com``/{{my-web-app}}:{{latest}}`).
         + Les images dans les référentiels officiels sur Docker Hub utilisent un nom unique (par exemple, `ubuntu` ou `mongo`).
         + Les images dans les autres référentiels sur Docker Hub sont qualifiées par un nom d'organisation (par exemple, `amazon/amazon-ecs-agent`).
         + Les images dans les autres référentiels en ligne sont qualifiées par un nom de domaine (par exemple, `quay.io/assemblyline/ubuntu`).

      1. (Facultatif) Pour la **politique d'extraction** d'images, choisissez quand les images sont extraites.

      1. (Facultatif) Dans **Commande**, entrez une JSON commande à transmettre au conteneur.

      1. (Facultatif) **Dans Arguments**, entrez les arguments à transmettre au conteneur. Si aucun argument n'est fourni, la commande container image est utilisée.

   1. (Facultatif) Vous pouvez ajouter des paramètres à la définition de tâche sous forme de mappages nom-valeur pour remplacer les valeurs par défaut de définition de tâche. Pour ajouter un paramètre :

      1. Pour **Paramètres**, entrez une paire nom-valeur, puis choisissez **Ajouter** un paramètre.
**Important**  
Si vous choisissez **Ajouter un paramètre**, vous devez configurer au moins un paramètre ou choisir **Supprimer le paramètre**

   1. Dans la section **Configuration de l'environnement** :

      1. Pour **v CPUs**, entrez le nombre de v CPUs à réserver pour le conteneur. Ce paramètre correspond à `CpuShares` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--cpu-shares` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Chaque processeur virtuel est équivalente à 1 024 parts de processeur. Vous devez spécifier au moins un vCPU.

      1. Pour **Mémoire**, entrez la limite de mémoire disponible pour le conteneur. Si votre conteneur tente de dépasser la mémoire spécifiée ici, il est arrêté. Ce paramètre correspond à `Memory` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--memory` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Vous devez spécifier au moins 4 Mio de mémoire pour une tâche.
**Note**  
Pour optimiser l'utilisation de vos ressources, donnez la priorité à la mémoire pour les tâches d'un type d'instance spécifique. Pour de plus amples informations, veuillez consulter [Gestion de la mémoire des ressources informatiques](memory-management.md).

   1. (Facultatif) Pour les **variables d'environnement**, choisissez **Ajouter une variable d'environnement** pour ajouter des variables d'environnement sous forme de paires nom-valeur. Ces variables sont transmises au conteneur.

   1. (Facultatif) Pour **le montage du volume** :

      1. Choisissez **Ajouter un montage de volume**.

      1. Entrez un **nom**, puis un **chemin de montage** dans le conteneur dans lequel le volume est monté. Entrez a **SubPath**pour spécifier un sous-chemin à l'intérieur du volume référencé au lieu de sa racine. 

      1. Choisissez **Lecture seule** pour supprimer les autorisations d'écriture sur le volume.

      1. Choisissez **Ajouter un montage de volume**.

   1. (Facultatif) Pour **Exécuter en tant qu'utilisateur**, entrez un ID utilisateur pour exécuter le processus de conteneur.
**Note**  
L'ID utilisateur doit figurer dans l'image pour que le conteneur puisse fonctionner.

   1. (Facultatif) Pour **Exécuter en tant que groupe**, entrez un ID de groupe pour exécuter le runtime du processus de conteneur.
**Note**  
L'ID de groupe doit exister dans l'image pour que le conteneur puisse fonctionner.

   1. (Facultatif) Pour accorder au conteneur de votre tâche des autorisations élevées sur l'instance hôte (comme pour l'`root`utilisateur), faites glisser le curseur **Privileged** vers la droite. Ce paramètre correspond à `Privileged` dans la section [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Créer un conteneur) de l'[API Docker à distance](https://docs.docker.com/engine/api/v1.38/) et l'option `--privileged` correspond à [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Facultatif) Activez le système de **fichiers racine en lecture seule pour supprimer l'accès en écriture au système** de fichiers racine.

   1. (Facultatif) Activez **Exécuter en tant qu'utilisateur non-root** pour exécuter les conteneurs en pod tant qu'utilisateur non-root.
**Note**  
Si l'**option Exécuter en tant que non-root** est activée, l'image est kubelet validée au moment de l'exécution pour vérifier qu'elle ne s'exécute pas avec l'UID 0. 

   1. Choisissez **Page suivante**.

1. Pour la **révision de la définition du Job**, passez en revue les étapes de configuration. Si vous devez apporter des modifications, choisissez **Modifier**. Lorsque vous avez terminé, choisissez **Créer une définition de tâche**.