View a markdown version of this page

Personnalisez les modèles de lancement d'Amazon EKS - AWS Batch

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 d'Amazon EKS

AWS Batch sur Amazon EKS prend en charge les modèles de lancement. Les possibilités de votre modèle de lancement sont limitées.

Important
  • Pour les AMI EKS AL2, AWS Batch pistes /etc/eks/bootstrap.sh. Ne courez pas /etc/eks/bootstrap.sh dans votre modèle de lancement ou cloud-init user-data scripts. Vous pouvez ajouter des paramètres supplémentaires en plus de --kubelet-extra-args paramètre pour bootstrap.sh. Pour ce faire, réglez AWS_BATCH_KUBELET_EXTRA_ARGS variable dans /etc/aws-batch/batch.config dossier. Consultez l'exemple suivant pour plus de détails.

  • Pour EKS AL2023, AWS Batch utilise le NodeConfigSpec depuis EKS pour que les instances rejoignent le cluster EKS. AWS Batch peuple ClusterDetails dans NodeConfigSpec pour le cluster EKS et vous n'avez pas besoin de les spécifier.

Note

Nous vous recommandons de ne définir aucune des options suivantes NodeConfigSpec paramètres dans le modèle de lancement comme AWS Batch remplacera vos valeurs. Pour plus d’informations, consultez Responsabilité partagée des Kubernetes nœuds.

  • 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 CreateComputeEnvironment s'appelle, UpdateComputeEnvironment doit être appelé pour évaluer la version du modèle de lancement à remplacer.

Ajouter kubelet arguments supplémentaires

AWS Batch prend en charge l'ajout d'arguments supplémentaires au kubelet commande. Pour la liste des paramètres pris en charge, voir kubelet dans le Kubernetes documentation. Dans l'exemple suivant pour les AMI EKS AL2, --node-labels mylabel=helloworld est ajouté au kubelet ligne de 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 les AMI EKS AL2023, le format de fichier est YAML. Pour la liste des paramètres pris en charge, voir NodeConfigSpec dans le Kubernetes documentation. Dans l'exemple suivant pour les AMI EKS AL2023, --node-labels mylabel=helloworld est ajouté au kubelet ligne de 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==--

Configurer le moteur d'exécution du conteneur

Vous pouvez utiliser AWS Batch CONTAINER_RUNTIME variable d'environnement pour configurer l'exécution du conteneur sur un nœud géré. L'exemple suivant définit le runtime du conteneur sur containerd quand bootstrap.sh courses. Pour plus d'informations, voir containerd dans le Kubernetes documentation.

Si vous utilisez une solution optimisée EKS_AL2023 ou EKS_AL2023_NVIDIA AMI, vous n'avez pas besoin de spécifier l'environnement d'exécution du conteneur comme étant uniquement conteneurisé est pris en charge.

Note

Le CONTAINER_RUNTIME la variable d'environnement est équivalente à --container-runtime option de bootstrap.sh. Pour plus d'informations, voir Options dans le Kubernetes documentation.

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, cloud-config packages et runcmd les paramètres sont utilisés. Pour plus d'informations, voir Exemples de configuration dans le cloud dans le cloud-init documentation.

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 job, il doit être ajouté dans Propriétés EKS paramètre pour RegisterJobDefinition. L'exemple suivant représente une grande partie de la définition du poste.

{ "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 /mnt/efs annuaire. Dans le conteneur destiné à la tâche Amazon EKS, le volume est monté dans le /efs annuaire.

Prise en charge d’IPv6

AWS Batch prend en charge les clusters Amazon EKS dotés d'adresses IPv6. Aucune personnalisation n'est requise pour AWS Batch soutien. Toutefois, avant de commencer, nous vous recommandons de prendre connaissance des considérations et des conditions décrites dans Attribution d'adresses IPv6 à des pods et à des services dans le Guide de l'utilisateur d'Amazon EKS.