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 NodeConfigSpec
de EKS para hacer que las instancias se unan al clúster de EKS. AWS Batch rellena ClusterDetails el clúster NodeConfigSpec de EKS y no es necesario especificarlos.
nota
Le recomendamos que no establezca ninguno de los siguientes NodeConfigSpec
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.
Temas
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
se agrega a la línea de --node-labels
mylabel=helloworld
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
se agrega a la --node-labels
mylabel=helloworld
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
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
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
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.