Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Personnalisez les modèles de lancement Amazon EKS
AWS Batch sur Amazon, EKS prend en charge les modèles de lancement. Il existe des contraintes quant à ce que peut faire votre modèle de lancement.
Important
Pour EKS AL2 AMIs, AWS Batch fonctionne
/etc/eks/bootstrap.sh
. Ne l'exécutez pas/etc/eks/bootstrap.sh
dans votre modèle ou vos cloud-init user-data scripts de lancement. Vous pouvez ajouter des paramètres supplémentaires en plus du--kubelet-extra-args
paramètre dans le fichier bootstrap.sh. Pour ce faire, définissez la AWS_BATCH_KUBELET_EXTRA_ARGS
variable dans le/etc/aws-batch/batch.config
fichier. Consultez l'exemple suivant pour plus de détails.-
Pour EKS AL2 023, AWS Batch utilise le NodeConfigSpec
depuis EKS pour que les instances rejoignent le cluster EKS. AWS Batch se ClusterDetails renseigne NodeConfigSpec pour le cluster EKS et vous n'avez pas besoin de les spécifier.
Note
Nous vous recommandons de ne définir aucun des NodeConfigSpec
Taints
Cluster Name
apiServerEndpoint
certificatAuthority
CIDR
Ne créez pas d'étiquettes avec le préfixe
batch.amazonaws.com/
Note
Si le modèle de lancement est modifié après CreateComputeEnvironmentson appel, UpdateComputeEnvironmentil doit être appelé pour évaluer la version du modèle de lancement à remplacer.
Rubriques
Ajouter kubelet
des arguments supplémentaires
AWS Batch prend en charge l'ajout d'arguments supplémentaires à la kubelet
commande. Pour la liste des paramètres pris en charge, consultez kubelet
est ajouté à la ligne de --node-labels
mylabel=helloworld
kubelet
commande.
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==--
Pour EKS AL2 023, AMIs le format de fichier est YAML. Pour la liste des paramètres pris en charge, consultez NodeConfigSpec
est ajouté à la ligne de --node-labels
mylabel=helloworld
kubelet
commande.
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==--
Configuration de l'environnement d'exécution du conteneur
Vous pouvez utiliser la variable d' AWS Batch CONTAINER_RUNTIME
environnement pour configurer le runtime du conteneur sur un nœud géré. L'exemple suivant définit le runtime du conteneur sur containerd
when bootstrap.sh
runs. Pour plus d'informations, consultez containerd
Si vous utilisez une version optimisée EKS_AL2023
ou une EKS_AL2023_NVIDIA
AMI, il n'est pas nécessaire de spécifier le runtime du conteneur car seul containerd est pris en charge.
Note
La variable d'CONTAINER_RUNTIME
environnement est équivalente à l'--container-runtime
option debootstrap.sh
. Pour plus d'informations, consultez 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==--
Monter un volume Amazon EFS
Vous pouvez utiliser des modèles de lancement pour monter des volumes sur le nœud. Dans l'exemple suivant, les runcmd
paramètres cloud-config
packages
et sont utilisés. Pour plus d'informations, consultez les exemples de configuration du cloud
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==--
Pour utiliser ce volume dans le travail, il doit être ajouté dans le paramètre EksProperties à. RegisterJobDefinition L'exemple suivant représente une grande partie de la définition de la tâche.
{ "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
" } } ] } } }
Dans le nœud, le volume Amazon EFS est monté dans le /mnt/efs
répertoire. Dans le conteneur pour la tâche Amazon EKS, le volume est monté dans le /efs
répertoire.
IPv6 soutien
AWS Batch prend en charge les clusters Amazon EKS dotés d' IPv6 adresses. Aucune personnalisation n'est requise pour le AWS Batch support. Toutefois, avant de commencer, nous vous recommandons de consulter les considérations et conditions décrites dans la section Attribuer des IPv6 adresses aux pods et aux services dans le guide de l'utilisateur Amazon EKS.