

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 l'option Région AWS à utiliser.

1. Dans le volet de navigation de gauche, choisissez Définitions de ** tâches**.

1. Cliquez sur **Créer**.

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

1. Dans le ** champ Nom**, entrez un nom unique pour votre définition de poste. 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 ** Execution timeout**, entrez la valeur du timeout (en secondes). Le délai d'exécution est la durée qui s'écoule avant qu'une tâche inachevée ne soit terminée. Si une tentative dépasse le délai imparti, elle est arrêtée et passe à un `FAILED` statut. Pour plus d’informations, consultez [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 la priorité sur les valeurs inférieures.

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

1. Choisissez ** la page suivante**.

1. Dans la ** section ** des pod propriétés EKS :

   1. Dans le ** champ Nom du compte de service**, entrez un compte qui fournit une identité pour les processus qui s'exécutent dans unpod.

   1. Activez ** le réseau ** hôte pour utiliser le modèle de Kubernetes pod réseau et ouvrir 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 de 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. Donnez un ** nom ** à votre volume.

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

      1. (Facultatif) Ajoutez un ** support ** et une limite de ** taille ** pour configurer un [ Kubernetes EmptyDir. ](https://kubernetes.io/docs/concepts/storage/volumes/#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 joindre une réclamation de volume [ persistant Kubernetes ](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) au pod, et indiquez si elle est ** en lecture seule. **

   1. (Facultatif) Pour ** Image pull secret**, entrez le nom du Kubernetes secret dans l'espace de noms où la tâche pod s'exécute. Le secret contient des informations d'identification Kubernetes utilisées pour extraire des images d'un registre privé. Le nom peut comporter jusqu'à 253 caractères. Il peut contenir des lettres minuscules, des chiffres, des tirets (-) et des points (.), et doit commencer et se terminer par une lettre ou un chiffre.
**Important**  
Le secret doit exister dans le même espace de noms que celui où la tâche est pod exécutée.

   1. (Facultatif) Dans ** Namespace**, entrez l'Kubernetesespace de noms dans lequel AWS Batch place la tâche. pod Cela peut être différent de l'espace de noms de l'environnement de calcul. Si l'espace de noms fourni ici est différent de l'espace de noms de l'environnement informatique, vous devez configurer des autorisations de contrôle d'accès AWS Batch basé sur les rôles (RBAC) équivalentes dans l'espace de noms des tâches. L'espace de noms peut comporter jusqu'à 63 caractères. Il peut contenir des lettres minuscules, des chiffres et des tirets (-) et doit commencer et se terminer par une lettre ou un chiffre. L'espace de noms ne peut pas être `default` ou commencer par`kube-`. Si vous ne spécifiez pas d'espace de noms, AWS Batch utilise l'espace de noms de l'environnement de calcul.

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

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

   1. Choisissez ** la page suivante**.

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

   1. Dans ** le ** champ 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 tirets (-).

   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 ](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) Créer un conteneur de l'API [ Docker Remote ](https://docs.docker.com/engine/api/v1.38/) et au `IMAGE` paramètre de [**docker 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 ARM-based Docker ne peuvent être exécutées que sur des ressources de ARM-based calcul.
      + Les images des 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 des 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 le moment où les images sont extraites.

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

   1. (Facultatif) Dans la zone ** Arguments**, entrez les arguments à transmettre au conteneur. Si aucun argument n'est fourni, la commande image du conteneur 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 la définition de tâche. Pour ajouter un paramètre :

      1. Dans ** 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 les ** vCPU**, entrez le nombre de vCPU à 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 à [**docker 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 à [**docker 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 plus d’informations, consultez [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 support de volume**.

      1. Entrez un ** nom**, puis entrez une trajectoire de ** montage ** dans le conteneur où 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 support de volume**.

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

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

   1. (Facultatif) Pour accorder des autorisations élevées au conteneur de votre tâche 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 à [**docker run**](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Facultatif) Activez le système de fichiers ** Read-only racine ** 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 ** la page suivante**.

1. Pour la révision de la définition des ** tâches**, 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 poste**.