Trabajos de Amazon EKS - AWS Batch

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.

Trabajos de Amazon EKS

Un trabajo es la unidad de trabajo más pequeña de AWS Batch. Un AWS Batch trabajo en Amazon EKS implica un one-to-one mapeo a un Kubernetes pod. Una definición de AWS Batch trabajo es una plantilla para un AWS Batch trabajo. Cuando envía un AWS Batch trabajo, hace referencia a una definición de trabajo, selecciona una cola de trabajos y proporciona un nombre para el trabajo. En la definición de trabajo de un AWS Batch trabajo en Amazon EKS, el parámetro eksProperties define el conjunto de parámetros que admite un trabajo en AWS Batch Amazon EKS. En una SubmitJobsolicitud, el PropertiesOverride parámetro eks permite anular algunos parámetros comunes. De esta forma, puede utilizar plantillas de definiciones de trabajos para varios trabajos. Cuando se envía un trabajo a su clúster de Amazon EKS, lo AWS Batch transforma en un podspec (Kind: Pod). podspecUtiliza algunos AWS Batch parámetros adicionales para garantizar que los trabajos se escalen y programen correctamente. AWS Batch combina etiquetas e imprecisiones para garantizar que los trabajos se ejecuten únicamente en los nodos AWS Batch gestionados y que otros módulos no se ejecuten en esos nodos.

importante
  • Si el hostNetwork parámetro no está establecido de forma explícita en una definición de trabajo de Amazon EKS, el modo de red del pod AWS Batch pasa por defecto al modo host. Más específicamente, se aplican los siguientes ajustes: hostNetwork=true y dnsPolicy=ClusterFirstWithHostNet.

  • AWS Batch limpia los módulos de trabajos poco después de que un pod complete su trabajo. Para ver los registros de las aplicaciones del pod, configure un servicio de registro para su clúster. Para obtener más información, consulte Utilice CloudWatch Logs para supervisar AWS Batch en los trabajos de Amazon EKS.

Asigne un trabajo en ejecución a un pod y un nodo

Los podProperties de un trabajo en ejecución tienen los parámetros podName y nodeName establecidos para el intento de trabajo actual. Utilice la operación DescribeJobsde la API para ver estos parámetros.

A continuación, se muestra un ejemplo del resultado.

$ aws batch describe-jobs --job 2d044787-c663-4ce6-a6fe-f2baf7e51b04 { "jobs": [ { "status": "RUNNING", "jobArn": "arn:aws:batch:us-east-1:123456789012:job/2d044787-c663-4ce6-a6fe-f2baf7e51b04", "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/MyJobOnEks_SleepWithRequestsOnly:1", "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/My-Eks-JQ1", "jobId": "2d044787-c663-4ce6-a6fe-f2baf7e51b04", "eksProperties": { "podProperties": { "nodeName": "ip-192-168-55-175.ec2.internal", "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "resources": { "requests": { "cpu": "1", "memory": "1024Mi" } } } ], "podName": "aws-batch.b0aca953-ba8f-3791-83e2-ed13af39428c" } } } ] }

En el caso de un trabajo con los reintentos habilitados, el podName y nodeName de cada intento completado aparece en el parámetro de eksAttempts lista de la operación de DescribeJobsAPI. El podName y el nodeName del intento en ejecución actual se encuentra en el objeto podProperties.

¿Cómo hacer que un pod en ejecución vuelva a su función

Un pod tiene etiquetas que indican la dirección jobId y el entorno uuid de cómputo al que pertenece. AWS Batch inyecta variables de entorno para que el tiempo de ejecución del trabajo pueda hacer referencia a la información del trabajo. Para obtener más información, consulte AWS Batch variables de entorno laboral. Puede ver esta información al ejecutar el siguiente comando. El resultado es el siguiente.

$ kubectl describe pod aws-batch.14638eb9-d218-372d-ba5c-1c9ab9c7f2a1 -n my-aws-batch-namespace Name: aws-batch.14638eb9-d218-372d-ba5c-1c9ab9c7f2a1 Namespace: my-aws-batch-namespace Priority: 0 Node: ip-192-168-45-88.ec2.internal/192.168.45.88 Start Time: Wed, 26 Oct 2022 00:30:48 +0000 Labels: batch.amazonaws.com/compute-environment-uuid=5c19160b-d450-31c9-8454-86cf5b30548f batch.amazonaws.com/job-id=f980f2cf-6309-4c77-a2b2-d83fbba0e9f0 batch.amazonaws.com/node-uid=a4be5c1d-9881-4524-b967-587789094647 ... Status: Running IP: 192.168.45.88 IPs: IP: 192.168.45.88 Containers: default: Image: public.ecr.aws/amazonlinux/amazonlinux:2 ... Environment: AWS_BATCH_JOB_KUBERNETES_NODE_UID: a4be5c1d-9881-4524-b967-587789094647 AWS_BATCH_JOB_ID: f980f2cf-6309-4c77-a2b2-d83fbba0e9f0 AWS_BATCH_JQ_NAME: My-Eks-JQ1 AWS_BATCH_JOB_ATTEMPT: 1 AWS_BATCH_CE_NAME: My-Eks-CE1 ...
Características compatibles con AWS Batch Amazon EKS Jobs

Estas son las características AWS Batch específicas que también son comunes a los Kubernetes trabajos que se ejecutan en Amazon EKS:

KubernetesSecrets y ServiceAccounts

AWS Batch admite referencias Kubernetes Secrets y. ServiceAccounts Puede configurar los pods para utilizar los roles de IAM de Amazon EKS para las cuentas de servicio. Para obtener más información, consulte Configurar los pods para usar una cuenta de servicio de Kubernetes en la Guía del usuario de Amazon EKS.