

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Personalización de plantillas de lanzamiento de Amazon EKS
<a name="eks-launch-templates"></a>

AWS Batch en Amazon EKS admite plantillas de lanzamiento. Existen limitaciones en cuanto a lo que puede hacer su plantilla de lanzamiento.

**importante**  
Para las AMI EKS AL2, AWS Batch ejecuta`/etc/eks/bootstrap.sh`. No ejecute `/etc/eks/bootstrap.sh` en su plantilla de lanzamiento ni en sus scripts cloud-init user-data. Puede añadir parámetros adicionales además del parámetro `--kubelet-extra-args` a [bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh). Para ello, defina la variable `AWS_BATCH_KUBELET_EXTRA_ARGS` en el archivo `/etc/aws-batch/batch.config`. Consulte el ejemplo siguiente para obtener información detallada.
En el caso de EKS AL2023, AWS Batch utiliza el comando [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)from EKS para hacer que las instancias se unan al clúster de EKS. AWS Batch rellena [ClusterDetails](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#clusterdetails)el clúster [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)de EKS y no es necesario especificarlos.

**nota**  
Le recomendamos que no establezca ninguno de los siguientes [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)ajustes en la plantilla de lanzamiento, ya que AWS Batch anulará sus valores. Para obtener más información, consulte [Responsabilidad compartida de los nodos Kubernetes](eks-ce-shared-responsibility.md).  
`Taints`
`Cluster Name`
`apiServerEndpoint`
`certificatAuthority`
`CIDR`
No cree etiquetas con el prefijo `batch.amazonaws.com/`

**nota**  
Si la plantilla de lanzamiento se cambia después de [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)llamarla, [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)hay que llamarla para evaluar la versión de la plantilla de lanzamiento que se va a reemplazar.

**Topics**
+ [Adición de argumentos adicionales `kubelet`](#kubelet-extra-args)
+ [Configuración del tiempo de ejecución del contenedor](#change-container-runtime)
+ [Montaje de un volumen de Amazon EFS](#mounting-efs-volume)
+ [Compatibilidad con IPv6](#eks-ipv6-support)

## Adición de argumentos adicionales `kubelet`
<a name="kubelet-extra-args"></a>

AWS Batch admite la adición de argumentos adicionales al `kubelet` comando. Para ver una lista completa de parámetros que admite [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/), consulte la *Documentación de Kubernetes*. En el siguiente ejemplo para las AMI de EKS AL2, `{{--node-labels mylabel=helloworld}}` se agrega a la línea de comandos `kubelet`.

```
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==--
```

Para las AMI de EKS AL2023, el formato de archivo es YAML. Para ver una lista completa de parámetros que admite [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec), consulte la *Documentación de Kubernetes*. En el siguiente ejemplo para las AMI de EKS AL2023, `{{--node-labels mylabel=helloworld}}` se agrega a la línea de comandos `kubelet`.

```
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==--
```

## Configuración del tiempo de ejecución del contenedor
<a name="change-container-runtime"></a>

Puede utilizar la variable de AWS Batch `CONTAINER_RUNTIME` entorno para configurar el tiempo de ejecución del contenedor en un nodo gestionado. En el siguiente ejemplo, se establece el tiempo de ejecución del contenedor en `containerd` cuando se ejecuta `bootstrap.sh`. Para obtener más información, consulte [https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd) en la *documentación de Kubernetes*. 

Si utiliza una AMI optimizada de `EKS_AL2023` o una AMI de `EKS_AL2023_NVIDIA`, no necesita especificar el tiempo de ejecución del contenedor, ya que solo se admite **containerd**.

**nota**  
La variable de entorno de `CONTAINER_RUNTIME` equivale a la opción `--container-runtime` de `bootstrap.sh`. Para obtener más información, consulte [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options) en la *documentación de Kubernetes*.

```
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==--
```

## Montaje de un volumen de Amazon EFS
<a name="mounting-efs-volume"></a>

Puede utilizar plantillas de lanzamiento para montar los volúmenes en el nodo. En el siguiente ejemplo, se utilizan los ajustes `cloud-config` `packages` y `runcmd`. Para obtener más información, consulte [ejemplos de configuración de nube](https://cloudinit.readthedocs.io/en/latest/topics/examples.html) en la *cloud-initdocumentación*.

```
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==--
```

Para usar este volumen en el trabajo, debe añadirse al parámetro [eksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) a. [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) El siguiente ejemplo es una gran parte de la definición del trabajo.

```
{
    "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}}"
                    }
                }
            ]
        }
    }
}
```

En el nodo, el volumen de Amazon EFS está montado en el directorio `/mnt/efs`. En el contenedor del trabajo de Amazon EKS, el volumen se monta en el directorio `/efs`.

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

AWS Batch admite clústeres de Amazon EKS que tienen direcciones IPv6. No se requieren personalizaciones para obtener AWS Batch soporte. Sin embargo, antes de empezar, le recomendamos que revise las consideraciones y condiciones que se describen en la sección [Asignación de direcciones IPv6 a los pods y servicios](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) de la *Guía del usuario de Amazon EKS*.