

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á.

# Trabalhos paralelos de vários nós no Amazon EKS
<a name="mnp-eks-jobs"></a>

Você pode usar o AWS Batch Amazon Elastic Kubernetes Service para executar trabalhos paralelos de vários nós (MNP) (também conhecidos *como* agendamento de grupos) em seus clusters gerenciados. Kubernetes Essa opção é comumente usada para trabalhos grandes, de acoplamento fiirme e de alto desempenho que não podem ser executados em uma única instância do Amazon Elastic Compute Cloud. Para obter mais informações, consulte [Trabalhos em paralelo de vários nós](multi-node-parallel-jobs.md).

É possível usar esse atributo para executar aplicações de computação de alto desempenho específicos do Kubernetes gerenciado pelo Amazon EKS, treinamento de grandes modelos de linguagem e outros trabalhos de Inteligência Artificial (IA)/machine learning (ML).

**Topics**
+ [Execução de trabalhos de MNP](mnp-eks-running-mnp-jobs.md)
+ [Criar uma definição de trabalho de GPU do Amazon EKS](mnp-eks-create-eks-mnp-job-definition.md)
+ [Enviar um trabalho MNP do Amazon EKS](mnp-eks-submit-eks-mnp-job.md)
+ [Substituir uma definição de trabalho MNP do Amazon EKS](mnp-eks-override-eks-mnp-job-definition.md)

# Execução de trabalhos de MNP
<a name="mnp-eks-running-mnp-jobs"></a>

AWS Batch suporta trabalhos de MNP no Amazon Elastic Container Service e no Amazon EKS usando o Amazon EC2. Veja a seguir mais detalhes sobre os parâmetros de instância e contêiner do atributo.

## Cotas de instância para MNP no Amazon EKS
<a name="mnp-eks-instance-quotas"></a>
+ Até 1.000 instâncias podem ser usadas para um único trabalho MNP.
+ Até 5.000 instâncias podem participar de um único cluster do Amazon EKS.
+ Até 5 ambientes de computação podem ser agrupados e anexados a uma fila de trabalhos.

Por exemplo, é possível dimensionar até 5 ambientes de computação em cluster em uma fila de trabalhos e 1.000 instâncias em cada ambiente de computação.

Além dos parâmetros de instância, é importante observar que você não pode usar o Fargate para trabalhos MNP por meio de nenhum dos serviços. 

É possível usar apenas um tipo de instância em cada trabalho MNP. É possível alterar o tipo de instância ao atualizar o ambiente de computação ou ao definir um novo ambiente de computação. Também é possível especificar o tipo de instância e fornecer requisitos de vCPU e memória ao criar a definição de trabalho.

## Cotas de contêineres para MNP no Amazon EKS
<a name="mnp-eks-container-quotas"></a>
+ Um trabalho paralelo de vários nós aceita um pod por nó.
+ Até 10 contêineres (ou 10 contêineres de inicialização. Para obter mais informações, consulte [Contêineres de inicialização](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) na *documentação do Kubernetes*) em cada pod. 
+ Até 5 intervalos de nós em cada trabalho MNP.
+ Até 10 imagens de contêineres distintos em cada intervalo de nós.

Por exemplo, é possível executar até máximo de 10.000 contêineres em um único trabalho MNP com 5 intervalos de nós e um total de 50 imagens exclusivas.

## Execução de trabalhos MNP em uma Amazon VPC privado e em um cluster do Amazon EKS
<a name="mnp-eks-running-mnp-jobs-vpc"></a>

Os trabalhos MNP podem ser executados em qualquer cluster do Amazon EKS, quer ele tenha Internet pública ou não. Ao usar um cluster do Amazon EKS com apenas acesso à rede privada, certifique-se de que ele AWS Batch possa acessar o plano de controle do Amazon EKS e o servidor de Kubernetes API gerenciado. É possível conceder o acesso necessário por meio dos endpoints da Amazon Virtual Private Cloud. Para obter mais informações, consulte [Configurar um serviço de endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html).

Os pods de cluster do Amazon EKS não podem baixar uma imagem de uma fonte pública, pois a VPC privada não tem acesso à Internet. O cluster do Amazon EKS deve extrair imagens de um registro de contêiner que esteja na Amazon VPC. É possível criar um [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html) na sua Amazon VPC e copiar imagens de contêiner para ele para acesso aos seus nós. 

Também é possível criar uma regra de cache pull through com o Amazon ECR. Depois que uma regra de cache pull through é criada para um registro público externo, você pode simplesmente extrair uma imagem desse registro público externo usando o URI do registro privado do Amazon ECR. Em seguida, o Amazon ECR cria um repositório e armazena a imagem no cache. Quando uma imagem em cache é extraída usando o URI de registro privado do Amazon ECR, o Amazon ECR verifica o registro remoto para ver se há uma nova versão da imagem e atualizará seu registro privado até uma vez a cada 24 horas. Para obter mais informações, consulte [Criar uma regra de cache de pullthrough no Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache-creating-rule.html).

## Notificação de erro
<a name="mnp-eks-error-notificaton"></a>

Se suas tarefas de MNP estiverem bloqueadas, você poderá receber notificações por meio do Console de gerenciamento da AWS e da Amazon EventBridge. Por exemplo, se um trabalho MNP estiver preso no topo da fila, você poderá receber uma notificação sobre o problema, juntamente com informações sobre o que o causou, para que você possa tomar medidas imediatas para desbloquear a fila de trabalhos. Opcionalmente, é possível encerrar automaticamente o trabalho MNP se nenhuma ação for tomada em um determinado período de tempo, que pode ser definido no modelo de fila de trabalho. Para obter mais informações, consulte [Eventos bloqueados da fila de trabalhos](batch-job-queue-blocked-events.md).

# Criar uma definição de trabalho de GPU do Amazon EKS
<a name="mnp-eks-create-eks-mnp-job-definition"></a>

Para definir e executar trabalhos MNP no Amazon EKS, há novos parâmetros nas operações de API [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) e [https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html). 
+ Use [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) na seção [https://docs.aws.amazon.com/batch/latest/APIReference/API_NodeProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_NodeProperties.html) para configurar sua definição de trabalho MNP.
+ Use [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPropertiesOverride.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPropertiesOverride.html) na seção [https://docs.aws.amazon.com//batch/latest/APIReference/API_NodePropertyOverride.html](https://docs.aws.amazon.com//batch/latest/APIReference/API_NodePropertyOverride.html) para substituir os parâmetros configurados na definição do trabalho ao enviar um trabalho MNP.

Essas ações podem ser definidas por meio de operações de API e do Console de gerenciamento da AWS.

## Referência: registrar a carga útil da solicitação de definição de trabalho MNP do Amazon EKS
<a name="mnp-eks-register-eks-mnp-job-definition"></a>

O exemplo a seguir ilustra como é possível registrar uma definição de trabalho MNP do Amazon EKS com dois nós.

```
{
  "jobDefinitionName": "MyEksMnpJobDefinition",
  "type": "multinode",
  "nodeProperties": {
    "numNodes": 2,
    "mainNode": 0,
    "nodeRangeProperties": [
      {
        "targetNodes" : "0:",
        "eksProperties": {
          "podProperties": {
            "containers": [
              {
                "name": "test-eks-container-1",
                "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                "command": [
                  "sleep",
                  "60"
                ],
                "resources": {
                  "limits": {
                    "cpu": "1",
                    "memory": "1024Mi"
                  }
                },
                "securityContext":{
                  "runAsUser":1000,
                  "runAsGroup":3000,
                  "privileged":true,
                  "readOnlyRootFilesystem":true,
                  "runAsNonRoot":true
               }
              }
            ],
            "initContainers": [
               {
                  "name":"init-ekscontainer",
                  "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                  "command": [
                     "echo",
                     "helloWorld"
                   ],
                   "resources": {
                     "limits": {
                       "cpu": "1",
                       "memory": "1024Mi"
                     }
                  }
               }
            ],
            "metadata": {
               "labels": {
                  "environment" : "test"
               }
            }
          }
        }
      }
    ]
  }
}
```

Para registrar a definição de tarefa usando o AWS CLI, copie a definição em um arquivo local chamado *MyEksMnpJobDefinition.json* e execute o comando a seguir.

```
aws batch register-job-definition --cli-input-json file://MyEksMnpJobDefinition.json
```

Você receberá a seguinte resposta JSON.

```
{
    "jobDefinitionName": "MyEksMnpJobDefinition",
    "jobDefinitionArn": "arn:aws:batch:us-east-1:0123456789:job-definition/MyEksMnpJobDefinition:1",
    "revision": 1
}
```

# Enviar um trabalho MNP do Amazon EKS
<a name="mnp-eks-submit-eks-mnp-job"></a>

Para enviar um trabalho usando a definição de trabalho registrada, digite o seguinte comando. Substitua o valor de <EKS\$1JOB\$1QUEUE\$1NAME> pelo nome ou ARN de uma fila de trabalho pré-existente associada a um ambiente de computação do Amazon EKS. 

```
aws batch submit-job --job-queue <EKS_JOB_QUEUE_NAME> \
    --job-definition MyEksMnpJobDefinition \
    --job-name myFirstEksMnpJob
```

Você receberá a seguinte resposta JSON.

```
{
    "jobArn": "arn:aws:batch:region:account:job/9b979cce-9da0-446d-90e2-ffa16d52af68",
    "jobName": "myFirstEksMnpJob", 
    "jobId": "<JOB_ID>"
}
```

Você pode verificar o status do trabalho usando o jobId retornado com o seguinte comando.

```
aws batch describe-jobs --jobs <JOB_ID>
```

# Substituir uma definição de trabalho MNP do Amazon EKS
<a name="mnp-eks-override-eks-mnp-job-definition"></a>

Opcionalmente, é possível substituir os detalhes da definição do trabalho (como alterar o tamanho do trabalho MNP ou os detalhes do trabalho secundário). A seguir, um exemplo de carga útil de solicitação JSON para enviar um trabalho MNP de cinco nós e alterações no comando `test-eks-container-1` do contêiner.

```
{
  "numNodes": 5,
  "nodePropertyOverrides": [
    {
      "targetNodes": "0:",
      "eksPropertiesOverride": {
        "podProperties": {
          "containers": [
            {
              "name": "test-eks-container-1",
              "command": [
                "sleep",
                "150"
              ]
            }
          ]
        }
      }
    }
  ]
}
```

Para enviar um trabalho com essas substituições, salve o exemplo em um arquivo local, *eks-mnp-job-nodeoverride.json*, e use o AWS CLI para enviar o trabalho com as substituições.