

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Personalize os modelos de lançamento do Amazon EKS
<a name="eks-launch-templates"></a>

AWS Batch no Amazon EKS oferece suporte a modelos de lançamento. Há restrições sobre o que seu modelo de lançamento pode fazer.

**Importante**  
Para AMIs do EKS AL2, AWS Batch é executado. `/etc/eks/bootstrap.sh` Não execute `/etc/eks/bootstrap.sh` em seu modelo de lançamento ou scripts cloud-init user-data. Você pode adicionar outros parâmetros além do parâmetro `--kubelet-extra-args` ao [bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh). Para fazer isso, defina a variável `AWS_BATCH_KUBELET_EXTRA_ARGS` no arquivo `/etc/aws-batch/batch.config`. Consulte o código a seguir para ver um exemplo.
Para o EKS AL2023, AWS Batch utiliza o do EKS para fazer com que as [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)instâncias se juntem ao cluster EKS. AWS Batch é [ClusterDetails](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#clusterdetails)preenchido [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)para o cluster EKS e você não precisa especificá-los.

**nota**  
Recomendamos que você não defina nenhuma das [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)configurações a seguir no modelo de lançamento, pois AWS Batch substituirá seus valores. Para obter mais informações, consulte [Responsabilidade compartilhada dos nós Kubernetes](eks-ce-shared-responsibility.md).  
`Taints`
`Cluster Name`
`apiServerEndpoint`
`certificatAuthority`
`CIDR`
Não crie rótulos com o prefixo `batch.amazonaws.com/`

**nota**  
Se o modelo de lançamento for alterado após [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)ser chamado, [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)deverá ser chamado para avaliar a versão do modelo de lançamento para substituição.

**Topics**
+ [Adicionar argumentos extras de `kubelet`](#kubelet-extra-args)
+ [Configurar o runtime do contêiner](#change-container-runtime)
+ [Montar um volume do Amazon EFS](#mounting-efs-volume)
+ [Suporte a IPv6](#eks-ipv6-support)

## Adicionar argumentos extras de `kubelet`
<a name="kubelet-extra-args"></a>

AWS Batch suporta a adição de argumentos extras ao `kubelet` comando. Para obter a lista completa de parâmetros compatíveis, consulte [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/) na *documentação Kubernetes*. No exemplo a seguir para AMIs EKS AL2, `{{--node-labels mylabel=helloworld}}` é adicionado à linha de comando `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 AMIs EKS AL2023, o formato do arquivo é YAML. Para obter a lista completa de parâmetros compatíveis, consulte [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec) na *documentação Kubernetes*. No exemplo a seguir para AMIs EKS AL2023, `{{--node-labels mylabel=helloworld}}` é adicionado à linha de comando `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==--
```

## Configurar o runtime do contêiner
<a name="change-container-runtime"></a>

Você pode usar a variável de AWS Batch `CONTAINER_RUNTIME` ambiente para configurar o tempo de execução do contêiner em um nó gerenciado. O exemplo a seguir define o runtime do contêiner para `containerd` quando `bootstrap.sh` for executado. Para obter mais informações, consulte [https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd) *na documentação Kubernetes*. 

Se você estiver usando uma AMI otimizada `EKS_AL2023` ou `EKS_AL2023_NVIDIA`, não precisará especificar o runtime do contêiner, pois somente **containerd** é compatível.

**nota**  
A variável de ambiente `CONTAINER_RUNTIME` é equivalente à opção `--container-runtime` de `bootstrap.sh`. Para obter mais informações, consulte [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options) *na documentação 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==--
```

## Montar um volume do Amazon EFS
<a name="mounting-efs-volume"></a>

Você pode usar modelos de execução para montar volumes no nó. No exemplo a seguir, as configurações `cloud-config` `packages` e `runcmd` são usadas. Para obter mais informações, consulte [Exemplos de configuração de Nuvem](https://cloudinit.readthedocs.io/en/latest/topics/examples.html) na *documentação cloud-init*.

```
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 esse volume na tarefa, ele deve ser adicionado ao 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) O exemplo a seguir é uma grande parte da definição do trabalho.

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

No nó, o volume do Amazon EFS é montado no diretório `/mnt/efs`. No contêiner do trabalho do Amazon EKS, o volume é montado no diretório `/efs`.

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

AWS Batch oferece suporte a clusters Amazon EKS que têm endereços IPv6. Nenhuma personalização é necessária para AWS Batch suporte. No entanto, antes de começar, recomendamos que você analise as considerações e condições descritas em [Atribuição de endereços IPv6 para pods e serviços](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) no *Guia do usuário do Amazon EKS.*