Personalización de plantillas de lanzamiento 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.

Personalización de plantillas de lanzamiento de Amazon EKS

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

importante
  • Para EKS AL2 AMIs, 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. 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 del EKS AL2 023, AWS Batch utiliza el elemento NodeConfigSpecde EKS para hacer que las instancias se unan al clúster de EKS. AWS Batch rellena ClusterDetailsel clúster NodeConfigSpecde EKS y no es necesario especificarlos.

nota

Le recomendamos que no establezca ninguno de los siguientes NodeConfigSpecajustes 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.

  • 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 CreateComputeEnvironmentllamarla, UpdateComputeEnvironmenthay que llamarla para evaluar la versión de la plantilla de lanzamiento que se va a reemplazar.

Adición de argumentos adicionales kubelet

AWS Batch admite la adición de argumentos adicionales al kubelet comando. Para ver una lista completa de parámetros que admite kubelet, consulte la Documentación de Kubernetes. En el siguiente ejemplo, para EKS AL2 AMIs, --node-labels mylabel=helloworld se agrega a la línea de kubelet comandos.

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 EKS AL2 023, AMIs el formato de archivo es YAML. Para ver una lista completa de parámetros que admite NodeConfigSpec, consulte la Documentación de Kubernetes. En el siguiente ejemplo, para el EKS AL2 023 AMIs, --node-labels mylabel=helloworld se agrega a la kubelet línea de comandos.

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

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 containerd en la documentación de Kubernetes.

Si utiliza una AMI optimizada EKS_AL2023 o una EKS_AL2023_NVIDIA AMI, 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 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

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 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 a. RegisterJobDefinition 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.

IPv6 soporte

AWS Batch admite clústeres de Amazon EKS que tienen IPv6 direcciones. 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 Asignación de IPv6 direcciones a pods y servicios de la Guía del usuario de Amazon EKS.