

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.

# Personnalisez les modèles de lancement Amazon EKS
<a name="eks-launch-templates"></a>

AWS Batch sur Amazon, EKS prend en charge les modèles de lancement. Il existe des contraintes quant à ce que peut faire votre modèle de lancement.

**Important**  
Pour EKS AL2 AMIs, AWS Batch fonctionne`/etc/eks/bootstrap.sh`. Ne l'exécutez pas `/etc/eks/bootstrap.sh` dans votre modèle ou vos cloud-init user-data scripts de lancement. Vous pouvez ajouter des paramètres supplémentaires en plus du `--kubelet-extra-args` paramètre dans le [fichier bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh). Pour ce faire, définissez la `AWS_BATCH_KUBELET_EXTRA_ARGS` variable dans le `/etc/aws-batch/batch.config` fichier. Consultez l'exemple suivant pour plus de détails.
Pour EKS AL2023, AWS Batch utilise le [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)depuis EKS pour que les instances rejoignent le cluster EKS. AWS Batch se [ClusterDetails](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#clusterdetails)renseigne [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)pour le cluster EKS et vous n'avez pas besoin de les spécifier.

**Note**  
Nous vous recommandons de ne définir aucun des [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)paramètres suivants dans le modèle de lancement, car AWS Batch cela remplacerait vos valeurs. Pour de plus amples informations, veuillez consulter [Responsabilité partagée des Kubernetes nœuds](eks-ce-shared-responsibility.md).  
`Taints`
`Cluster Name`
`apiServerEndpoint`
`certificatAuthority`
`CIDR`
Ne créez pas d'étiquettes avec le préfixe `batch.amazonaws.com/`

**Note**  
Si le modèle de lancement est modifié après [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)son appel, [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)il doit être appelé pour évaluer la version du modèle de lancement à remplacer.

**Topics**
+ [Ajouter `kubelet` des arguments supplémentaires](#kubelet-extra-args)
+ [Configuration de l'environnement d'exécution du conteneur](#change-container-runtime)
+ [Monter un volume Amazon EFS](#mounting-efs-volume)
+ [IPv6 soutien](#eks-ipv6-support)

## Ajouter `kubelet` des arguments supplémentaires
<a name="kubelet-extra-args"></a>

AWS Batch prend en charge l'ajout d'arguments supplémentaires à la `kubelet` commande. Pour la liste des paramètres pris en charge, consultez [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)la *Kubernetesdocumentation*. Dans l'exemple suivant pour EKS AL2 AMIs, `--node-labels mylabel=helloworld` est ajouté à la ligne de `kubelet` commande.

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo AWS_BATCH_KUBELET_EXTRA_ARGS=\"--node-labels mylabel=helloworld\" >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

Pour EKS AL2023 AMIs , le format de fichier est YAML. Pour la liste des paramètres pris en charge, consultez [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)la *Kubernetesdocumentation*. Dans l'exemple suivant pour EKS AL2023 AMIs, `--node-labels mylabel=helloworld` est ajouté à la ligne de `kubelet` commande.

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: application/node.eks.aws

apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  kubelet:
    flags:
    - --node-labels=mylabel=helloworld

--==MYBOUNDARY==--
```

## Configuration de l'environnement d'exécution du conteneur
<a name="change-container-runtime"></a>

Vous pouvez utiliser la variable d' AWS Batch `CONTAINER_RUNTIME`environnement pour configurer le runtime du conteneur sur un nœud géré. L'exemple suivant définit le runtime du conteneur sur `containerd` when `bootstrap.sh` runs. Pour plus d'informations, consultez [https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd)la *Kubernetesdocumentation*. 

Si vous utilisez une version optimisée `EKS_AL2023` ou une `EKS_AL2023_NVIDIA` AMI, il n'est pas nécessaire de spécifier le runtime du conteneur car seul **containerd** est pris en charge.

**Note**  
La variable d'`CONTAINER_RUNTIME`environnement est équivalente à l'`--container-runtime`option de`bootstrap.sh`. Pour plus d'informations, consultez [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options)la *Kubernetesdocumentation*.

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo CONTAINER_RUNTIME=containerd >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

## Monter un volume Amazon EFS
<a name="mounting-efs-volume"></a>

Vous pouvez utiliser des modèles de lancement pour monter des volumes sur le nœud. Dans l'exemple suivant, les `runcmd` paramètres `cloud-config` `packages` et sont utilisés. Pour plus d'informations, consultez les [exemples de configuration du cloud](https://cloudinit.readthedocs.io/en/latest/topics/examples.html) dans la *cloud-initdocumentation*.

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-efs-utils

runcmd:
- file_system_id_01=fs-abcdef123
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- echo "${file_system_id_01}:/ ${efs_directory} efs _netdev,noresvport,tls,iam 0 0" >> /etc/fstab
- mount -t efs -o tls ${file_system_id_01}:/ ${efs_directory}

--==MYBOUNDARY==--
```

Pour utiliser ce volume dans le travail, il doit être ajouté dans le paramètre [EksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) à. [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) L'exemple suivant représente une grande partie de la définition de la tâche.

```
{
    "jobDefinitionName": "MyJobOnEks_EFS",
    "type": "container",
    "eksProperties": {
        "podProperties": {
            "containers": [
                {
                    "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                    "command": ["ls", "-la", "/efs"],
                    "resources": {
                        "limits": {
                            "cpu": "1",
                            "memory": "1024Mi"
                        }
                    },
                    "volumeMounts": [
                        {
                            "name": "efs-volume",
                            "mountPath": "/efs"
                        }
                    ]
                }
            ],
            "volumes": [
                {
                    "name": "efs-volume",
                    "hostPath": {
                        "path": "/mnt/efs"
                    }
                }
            ]
        }
    }
}
```

Dans le nœud, le volume Amazon EFS est monté dans le `/mnt/efs` répertoire. Dans le conteneur pour la tâche Amazon EKS, le volume est monté dans le `/efs` répertoire.

## IPv6 soutien
<a name="eks-ipv6-support"></a>

AWS Batch prend en charge les clusters Amazon EKS dotés d' IPv6 adresses. Aucune personnalisation n'est requise pour le AWS Batch support. Toutefois, avant de commencer, nous vous recommandons de consulter les considérations et conditions décrites dans la section [Attribuer des IPv6 adresses aux pods et aux services](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) dans le *guide de l'utilisateur Amazon EKS*.